initialize_fuzzer:
  137|      1|initialize_fuzzer(void) {
  138|       |#ifdef FUZZ_VERBOSE
  139|       |	usrsctp_init(0, conn_output, debug_printf_stack);
  140|       |#else // FUZZ_VERBOSE
  141|      1|	usrsctp_init(0, conn_output, NULL);
  142|      1|#endif // FUZZ_VERBOSE
  143|       |
  144|      1|	usrsctp_enable_crc32c_offload();
  145|       |
  146|       |#ifdef SCTP_DEBUG
  147|       |	usrsctp_sysctl_set_sctp_debug_on(SCTP_DEBUG_ALL);
  148|       |#endif // SCTP_DEBUG
  149|       |
  150|      1|	usrsctp_register_address((void *)1);
  151|      1|	usrsctp_sysctl_set_sctp_pktdrop_enable(1);
  152|      1|	usrsctp_sysctl_set_sctp_nrsack_enable(1);
  153|       |
  154|      1|	fuzzer_printf("usrsctp initialized\n");
  155|      1|	return (1);
  156|      1|}
LLVMFuzzerTestOneInput:
  161|  10.1k|{
  162|  10.1k|	static int initialized;
  163|  10.1k|	char *fuzz_packet_buffer;
  164|  10.1k|	struct sockaddr_conn sconn;
  165|  10.1k|	struct socket *socket_client;
  166|  10.1k|	struct linger so_linger;
  167|  10.1k|	struct sctp_event event;
  168|  10.1k|	unsigned long i;
  169|  10.1k|	struct sctp_common_header* common_header;
  170|  10.1k|	uint16_t event_types[] = {
  171|  10.1k|		SCTP_ASSOC_CHANGE,
  ------------------
  |  |  245|  10.1k|#define SCTP_ASSOC_CHANGE                 0x0001
  ------------------
  172|  10.1k|		SCTP_PEER_ADDR_CHANGE,
  ------------------
  |  |  246|  10.1k|#define SCTP_PEER_ADDR_CHANGE             0x0002
  ------------------
  173|  10.1k|		SCTP_REMOTE_ERROR,
  ------------------
  |  |  247|  10.1k|#define SCTP_REMOTE_ERROR                 0x0003
  ------------------
  174|  10.1k|		SCTP_SEND_FAILED,
  ------------------
  |  |  248|  10.1k|#define SCTP_SEND_FAILED                  0x0004
  ------------------
  175|  10.1k|		SCTP_SHUTDOWN_EVENT,
  ------------------
  |  |  249|  10.1k|#define SCTP_SHUTDOWN_EVENT               0x0005
  ------------------
  176|  10.1k|		SCTP_ADAPTATION_INDICATION,
  ------------------
  |  |  250|  10.1k|#define SCTP_ADAPTATION_INDICATION        0x0006
  ------------------
  177|  10.1k|		SCTP_PARTIAL_DELIVERY_EVENT,
  ------------------
  |  |  251|  10.1k|#define SCTP_PARTIAL_DELIVERY_EVENT       0x0007
  ------------------
  178|  10.1k|		SCTP_AUTHENTICATION_EVENT,
  ------------------
  |  |  252|  10.1k|#define SCTP_AUTHENTICATION_EVENT         0x0008
  ------------------
  179|  10.1k|		SCTP_STREAM_RESET_EVENT,
  ------------------
  |  |  253|  10.1k|#define SCTP_STREAM_RESET_EVENT           0x0009
  ------------------
  180|  10.1k|		SCTP_SENDER_DRY_EVENT,
  ------------------
  |  |  254|  10.1k|#define SCTP_SENDER_DRY_EVENT             0x000a
  ------------------
  181|  10.1k|		SCTP_ASSOC_RESET_EVENT,
  ------------------
  |  |  256|  10.1k|#define SCTP_ASSOC_RESET_EVENT            0x000c
  ------------------
  182|  10.1k|		SCTP_STREAM_CHANGE_EVENT,
  ------------------
  |  |  257|  10.1k|#define SCTP_STREAM_CHANGE_EVENT          0x000d
  ------------------
  183|  10.1k|		SCTP_SEND_FAILED_EVENT
  ------------------
  |  |  258|  10.1k|#define SCTP_SEND_FAILED_EVENT            0x000e
  ------------------
  184|  10.1k|	};
  185|  10.1k|	int optval;
  186|  10.1k|	int result;
  187|  10.1k|	struct sctp_initmsg initmsg;
  188|  10.1k|#if defined(FUZZ_STREAM_RESET) || defined(FUZZ_INTERLEAVING)
  189|  10.1k|	struct sctp_assoc_value assoc_val;
  190|  10.1k|#endif // defined(FUZZ_STREAM_RESET) || defined(FUZZ_INTERLEAVING)
  191|       |
  192|       |	// WITH COMMON HEADER!
  193|  10.1k|	char fuzz_init_ack[] = "\x13\x89\x13\x88\x49\xa4\xac\xb2\x00\x00\x00\x00\x02\x00\x01\xb4" \
  194|  10.1k|		"\x2b\xe8\x47\x40\x00\x1c\x71\xc7\xff\xff\xff\xff\xed\x69\x58\xec" \
  195|  10.1k|		"\xc0\x06\x00\x08\x00\x00\x07\xc4\x80\x00\x00\x04\xc0\x00\x00\x04" \
  196|  10.1k|		"\x80\x08\x00\x0b\xc0\xc2\x0f\xc1\x80\x82\x40\x00\x80\x02\x00\x24" \
  197|  10.1k|		"\x40\x39\xcf\x32\xd6\x60\xcf\xfa\x3f\x2f\xa9\x52\xed\x2b\xf2\xe6" \
  198|  10.1k|		"\x2f\xb7\x81\x96\xf8\xda\xe9\xa0\x62\x01\x79\xe1\x0d\x5f\x38\xaa" \
  199|  10.1k|		"\x80\x04\x00\x08\x00\x03\x00\x01\x80\x03\x00\x06\x80\xc1\x00\x00" \
  200|  10.1k|		"\x00\x07\x01\x50\x4b\x41\x4d\x45\x2d\x42\x53\x44\x20\x31\x2e\x31" \
  201|  10.1k|		"\x00\x00\x00\x00\x64\xdb\x63\x00\x00\x00\x00\x00\xc9\x76\x03\x00" \
  202|  10.1k|		"\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
  203|  10.1k|		"\xb2\xac\xa4\x49\x2b\xe8\x47\x40\xd4\xc9\x79\x52\x00\x00\x00\x00" \
  204|  10.1k|		"\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\xd4\xc9\x79\x53" \
  205|  10.1k|		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00" \
  206|  10.1k|		"\x00\x00\x00\x00\x5a\x76\x13\x89\x01\x00\x00\x00\x00\x00\x00\x00" \
  207|  10.1k|		"\x00\x00\x00\x00\x01\x00\x00\x62\x49\xa4\xac\xb2\x00\x1c\x71\xc7" \
  208|  10.1k|		"\x00\x01\xff\xff\x82\xe6\xc8\x44\x80\x00\x00\x04\xc0\x00\x00\x04" \
  209|  10.1k|		"\x80\x08\x00\x0b\xc0\xc2\x0f\xc1\x80\x82\x40\x00\x80\x02\x00\x24" \
  210|  10.1k|		"\xb6\xbb\xb5\x7f\xbb\x4b\x0e\xb5\x42\xf6\x75\x18\x4f\x79\x0f\x24" \
  211|  10.1k|		"\x1c\x44\x0b\xd6\x62\xa9\x84\xe7\x2c\x3c\x7f\xad\x1b\x67\x81\x57" \
  212|  10.1k|		"\x80\x04\x00\x08\x00\x03\x00\x01\x80\x03\x00\x06\x80\xc1\x00\x00" \
  213|  10.1k|		"\x00\x0c\x00\x06\x00\x05\x00\x00\x02\x00\x01\xb4\x2b\xe8\x47\x40" \
  214|  10.1k|		"\x00\x1c\x71\xc7\x00\x01\xff\xff\xed\x69\x58\xec\xc0\x06\x00\x08" \
  215|  10.1k|		"\x00\x00\x07\xc4\x80\x00\x00\x04\xc0\x00\x00\x04\x80\x08\x00\x0b" \
  216|  10.1k|		"\xc0\xc2\x0f\xc1\x80\x82\x40\x00\x80\x02\x00\x24\x40\x39\xcf\x32" \
  217|  10.1k|		"\xd6\x60\xcf\xfa\x3f\x2f\xa9\x52\xed\x2b\xf2\xe6\x2f\xb7\x81\x96" \
  218|  10.1k|		"\xf8\xda\xe9\xa0\x62\x01\x79\xe1\x0d\x5f\x38\xaa\x80\x04\x00\x08" \
  219|  10.1k|		"\x00\x03\x00\x01\x80\x03\x00\x06\x80\xc1\x00\x00\x81\xe1\x1e\x81" \
  220|  10.1k|		"\xea\x41\xeb\xf0\x12\xd9\x74\xbe\x13\xfd\x4b\x6c\x5c\xa2\x8f\x00";
  221|       |
  222|       |	// WITH COMMON HEADER!
  223|  10.1k|	char fuzz_cookie_ack[] = "\x13\x89\x13\x88\x54\xc2\x7c\x46\x00\x00\x00\x00\x0b\x00\x00\x04";
  224|       |
  225|       |	// WITH COMMON HEADER!
  226|  10.1k|	char fuzz_i_data[] = "\x13\x89\x13\x88\x07\x01\x6c\xd3\x00\x00\x00\x00\x40\x03" \
  227|  10.1k|		"\x00\xdc\x2d\x2b\x46\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
  228|  10.1k|		"\x00\x27\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  229|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  230|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  231|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  232|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  233|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  234|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  235|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  236|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  237|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  238|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  239|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  240|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41";
  241|       |
  242|       |	// WITH COMMON HEADER!
  243|  10.1k|	char fuzz_data[] = "\x13\x89\x13\x88\x27\xc4\xbf\xdf\x00\x00\x00\x00\x00\x03" \
  244|  10.1k|		"\x00\xd8\x79\x64\xb7\xc1\x00\x00\x00\x00\x00\x00\x00\x27\x41\x41" \
  245|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  246|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  247|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  248|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  249|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  250|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  251|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  252|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  253|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  254|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  255|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  256|  10.1k|		"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41" \
  257|  10.1k|		"\x41\x41\x41\x41\x41\x41";
  258|       |
  259|       |
  260|  10.1k|	char fuzz_common_header[] = "\x13\x89\x13\x88\x54\xc2\x7c\x46\x00\x00\x00\x00";
  261|       |
  262|  10.1k|	fuzzer_printf("LLVMFuzzerTestOneInput()\n");
  263|       |
  264|       |#ifdef FUZZ_ALWAYS_INITIALIZE
  265|       |	initialize_fuzzer();
  266|       |#else
  267|  10.1k|	if (!initialized) {
  ------------------
  |  Branch (267:6): [True: 1, False: 10.1k]
  ------------------
  268|      1|		initialized = initialize_fuzzer();
  269|      1|	}
  270|  10.1k|#endif
  271|       |
  272|  10.1k|	if (data_size < 5 || data_size > 65535) {
  ------------------
  |  Branch (272:6): [True: 4, False: 10.1k]
  |  Branch (272:23): [True: 5, False: 10.1k]
  ------------------
  273|       |		// Skip too small and too large packets
  274|      9|		fuzzer_printf("data_size %zu makes no sense, skipping\n", data_size);
  275|      9|		return (0);
  276|      9|	}
  277|       |
  278|  10.1k|	socket_client = usrsctp_socket(AF_CONN, SOCK_STREAM, IPPROTO_SCTP, NULL, NULL, 0, 0);
  ------------------
  |  |  118|  10.1k|#define AF_CONN 123
  ------------------
  279|  10.1k|	FUZZER_ASSERT(socket_client != NULL);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  280|       |
  281|  10.1k|	usrsctp_set_non_blocking(socket_client, 1);
  282|       |
  283|       |	// all max!
  284|  10.1k|	memset(&initmsg, 1, sizeof(struct sctp_initmsg));
  285|  10.1k|	result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_INITMSG, &initmsg, sizeof(struct sctp_initmsg));
  ------------------
  |  |  524|  10.1k|#define SCTP_INITMSG                    0x00000003
  ------------------
  286|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  287|       |
  288|  10.1k|	so_linger.l_onoff = 1;
  289|  10.1k|	so_linger.l_linger = 0;
  290|  10.1k|	result = usrsctp_setsockopt(socket_client, SOL_SOCKET, SO_LINGER, &so_linger, sizeof(struct linger));
  291|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  292|       |
  293|  10.1k|	memset(&event, 0, sizeof(event));
  294|  10.1k|	event.se_on = 1;
  295|   142k|	for (i = 0; i < (sizeof(event_types) / sizeof(uint16_t)); i++) {
  ------------------
  |  Branch (295:14): [True: 132k, False: 10.1k]
  ------------------
  296|   132k|		event.se_type = event_types[i];
  297|   132k|		result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_EVENT, &event, sizeof(event));
  ------------------
  |  |  549|   132k|#define SCTP_EVENT                      0x0000001e
  ------------------
  298|   132k|		FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|   132k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 132k]
  |  |  ------------------
  ------------------
  299|   132k|	}
  300|       |
  301|  10.1k|	optval = 1;
  302|  10.1k|	result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_RECVRCVINFO, &optval, sizeof(optval));
  ------------------
  |  |  550|  10.1k|#define SCTP_RECVRCVINFO                0x0000001f
  ------------------
  303|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  304|       |
  305|  10.1k|	optval = 1;
  306|  10.1k|	result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_RECVNXTINFO, &optval, sizeof(optval));
  ------------------
  |  |  551|  10.1k|#define SCTP_RECVNXTINFO                0x00000020
  ------------------
  307|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  308|       |
  309|  10.1k|#if defined(FUZZ_STREAM_RESET)
  310|  10.1k|	assoc_val.assoc_id = SCTP_ALL_ASSOC;
  ------------------
  |  |  147|  10.1k|#define SCTP_ALL_ASSOC     2
  ------------------
  311|  10.1k|	assoc_val.assoc_value = SCTP_ENABLE_RESET_STREAM_REQ | SCTP_ENABLE_RESET_ASSOC_REQ | SCTP_ENABLE_CHANGE_ASSOC_REQ;
  ------------------
  |  |  657|  10.1k|#define SCTP_ENABLE_RESET_STREAM_REQ  0x00000001
  ------------------
              	assoc_val.assoc_value = SCTP_ENABLE_RESET_STREAM_REQ | SCTP_ENABLE_RESET_ASSOC_REQ | SCTP_ENABLE_CHANGE_ASSOC_REQ;
  ------------------
  |  |  658|  10.1k|#define SCTP_ENABLE_RESET_ASSOC_REQ   0x00000002
  ------------------
              	assoc_val.assoc_value = SCTP_ENABLE_RESET_STREAM_REQ | SCTP_ENABLE_RESET_ASSOC_REQ | SCTP_ENABLE_CHANGE_ASSOC_REQ;
  ------------------
  |  |  659|  10.1k|#define SCTP_ENABLE_CHANGE_ASSOC_REQ  0x00000004
  ------------------
  312|  10.1k|	result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_ENABLE_STREAM_RESET, &assoc_val, sizeof(struct sctp_assoc_value));
  ------------------
  |  |  565|  10.1k|#define SCTP_ENABLE_STREAM_RESET        0x00000900 /* struct sctp_assoc_value */
  ------------------
  313|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  314|  10.1k|#endif // defined(FUZZ_STREAM_RESET)
  315|       |
  316|  10.1k|#if defined(FUZZ_INTERLEAVING)
  317|  10.1k|#if !defined(SCTP_INTERLEAVING_SUPPORTED)
  318|  10.1k|#define SCTP_INTERLEAVING_SUPPORTED 0x00001206
  319|  10.1k|#endif // !defined(SCTP_INTERLEAVING_SUPPORTED)
  320|       |
  321|  10.1k|	if (data[0] & FUZZ_B_I_DATA_SUPPORT) {
  ------------------
  |  |   50|  10.1k|#define FUZZ_B_I_DATA_SUPPORT         (1 << 5)
  ------------------
  |  Branch (321:6): [True: 5.53k, False: 4.63k]
  ------------------
  322|  5.53k|		optval = 2;
  323|  5.53k|		result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_FRAGMENT_INTERLEAVE, &optval, sizeof(optval));
  ------------------
  |  |  536|  5.53k|#define SCTP_FRAGMENT_INTERLEAVE        0x00000010
  ------------------
  324|  5.53k|		FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  5.53k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 5.53k]
  |  |  ------------------
  ------------------
  325|       |
  326|  5.53k|		memset(&assoc_val, 0, sizeof(assoc_val));
  327|  5.53k|		assoc_val.assoc_value = 1;
  328|  5.53k|		result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_INTERLEAVING_SUPPORTED, &assoc_val, sizeof(assoc_val));
  ------------------
  |  |  318|  5.53k|#define SCTP_INTERLEAVING_SUPPORTED 0x00001206
  ------------------
  329|  5.53k|		FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  5.53k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 5.53k]
  |  |  ------------------
  ------------------
  330|  5.53k|	}
  331|  10.1k|#endif // defined(FUZZ_INTERLEAVING)
  332|       |
  333|  10.1k|	optval = 1;
  334|  10.1k|	result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_REUSE_PORT, &optval, sizeof(optval));
  ------------------
  |  |  547|  10.1k|#define SCTP_REUSE_PORT                 0x0000001c
  ------------------
  335|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  336|       |
  337|  10.1k|	memset(&sconn, 0, sizeof(struct sockaddr_conn));
  338|  10.1k|	sconn.sconn_family = AF_CONN;
  ------------------
  |  |  118|  10.1k|#define AF_CONN 123
  ------------------
  339|       |#ifdef HAVE_SCONN_LEN
  340|       |	sconn.sconn_len = sizeof(struct sockaddr_conn);
  341|       |#endif // HAVE_SCONN_LEN
  342|  10.1k|	sconn.sconn_port = htons(5000);
  343|  10.1k|	sconn.sconn_addr = (void *)1;
  344|       |
  345|  10.1k|	result = usrsctp_bind(socket_client, (struct sockaddr *)&sconn, sizeof(struct sockaddr_conn));
  346|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  347|       |
  348|       |	// Disable Nagle.
  349|  10.1k|	optval = 1;
  350|  10.1k|	result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_NODELAY, &optval, sizeof(optval));
  ------------------
  |  |  525|  10.1k|#define SCTP_NODELAY                    0x00000004
  ------------------
  351|  10.1k|	FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  10.1k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  352|       |
  353|  10.1k|	usrsctp_set_upcall(socket_client, handle_upcall, NULL);
  354|       |
  355|  10.1k|	memset(&sconn, 0, sizeof(struct sockaddr_conn));
  356|  10.1k|	sconn.sconn_family = AF_CONN;
  ------------------
  |  |  118|  10.1k|#define AF_CONN 123
  ------------------
  357|       |#ifdef HAVE_SCONN_LEN
  358|       |	sconn.sconn_len = sizeof(struct sockaddr_conn);
  359|       |#endif // HAVE_SCONN_LEN
  360|  10.1k|	sconn.sconn_port = htons(5001);
  361|  10.1k|	sconn.sconn_addr = (void *)1;
  362|       |
  363|  10.1k|	fuzzer_printf("Calling usrsctp_connect()\n");
  364|  10.1k|	result = usrsctp_connect(socket_client, (struct sockaddr *)&sconn, sizeof(struct sockaddr_conn));
  365|  10.1k|	FUZZER_ASSERT(result == 0 || errno == EINPROGRESS);
  ------------------
  |  |   87|  20.3k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:32): [True: 0, False: 10.1k]
  |  |  |  Branch (87:32): [True: 10.1k, False: 0]
  |  |  ------------------
  ------------------
  366|       |
  367|  10.1k|	if (data[0] & FUZZ_B_INJECT_INIT_ACK) {
  ------------------
  |  |   45|  10.1k|#define FUZZ_B_INJECT_INIT_ACK        (1 << 0)
  ------------------
  |  Branch (367:6): [True: 7.35k, False: 2.81k]
  ------------------
  368|  7.35k|		fuzzer_printf("Injecting INIT-ACK\n");
  369|       |
  370|  7.35k|		common_header = (struct sctp_common_header*) fuzz_init_ack;
  371|  7.35k|		common_header->verification_tag = assoc_vtag;
  372|       |
  373|  7.35k|		dump_packet(fuzz_init_ack, 448, SCTP_DUMP_INBOUND);
  ------------------
  |  | 1057|  7.35k|#define SCTP_DUMP_INBOUND  0
  ------------------
  374|  7.35k|		usrsctp_conninput((void *)1, fuzz_init_ack, 448, 0);
  375|  7.35k|	}
  376|       |
  377|  10.1k|	if (data[0] & FUZZ_B_INJECT_COOKIE_ACK) {
  ------------------
  |  |   46|  10.1k|#define FUZZ_B_INJECT_COOKIE_ACK      (1 << 1)
  ------------------
  |  Branch (377:6): [True: 4.43k, False: 5.74k]
  ------------------
  378|  4.43k|		fuzzer_printf("Injecting COOKIE-ACK\n");
  379|       |
  380|  4.43k|		common_header = (struct sctp_common_header*) fuzz_cookie_ack;
  381|  4.43k|		common_header->verification_tag = assoc_vtag;
  382|       |
  383|  4.43k|		dump_packet(fuzz_cookie_ack, 16, SCTP_DUMP_INBOUND);
  ------------------
  |  | 1057|  4.43k|#define SCTP_DUMP_INBOUND  0
  ------------------
  384|  4.43k|		usrsctp_conninput((void *)1, fuzz_cookie_ack, 16, 0);
  385|  4.43k|	}
  386|       |
  387|  10.1k|	if (data[0] & FUZZ_B_INJECT_INIT_ACK &&
  ------------------
  |  |   45|  20.3k|#define FUZZ_B_INJECT_INIT_ACK        (1 << 0)
  ------------------
  |  Branch (387:6): [True: 7.35k, False: 2.81k]
  ------------------
  388|  7.35k|		data[0] & FUZZ_B_INJECT_COOKIE_ACK &&
  ------------------
  |  |   46|  17.5k|#define FUZZ_B_INJECT_COOKIE_ACK      (1 << 1)
  ------------------
  |  Branch (388:3): [True: 3.24k, False: 4.11k]
  ------------------
  389|  3.24k|		data[0] & FUZZ_B_SEND_DATA) {
  ------------------
  |  |   47|  3.24k|#define FUZZ_B_SEND_DATA              (1 << 2)
  ------------------
  |  Branch (389:3): [True: 2.13k, False: 1.10k]
  ------------------
  390|  2.13k|		const char *sendbuffer = "Geologie ist keine richtige Wissenschaft!";
  391|  2.13k|		fuzzer_printf("Calling usrsctp_sendv()\n");
  392|  2.13k|		usrsctp_sendv(socket_client, sendbuffer, strlen(sendbuffer), NULL, 0, NULL, 0, SCTP_SENDV_NOINFO, 0);
  ------------------
  |  |  193|  2.13k|#define SCTP_SENDV_NOINFO   0
  ------------------
  393|  2.13k|	}
  394|       |
  395|       |	// Required: INIT-ACK and COOKIE-ACK
  396|  10.1k|	if (data[0] & FUZZ_B_INJECT_INIT_ACK &&
  ------------------
  |  |   45|  20.3k|#define FUZZ_B_INJECT_INIT_ACK        (1 << 0)
  ------------------
  |  Branch (396:6): [True: 7.35k, False: 2.81k]
  ------------------
  397|  7.35k|		data[0] & FUZZ_B_INJECT_COOKIE_ACK &&
  ------------------
  |  |   46|  17.5k|#define FUZZ_B_INJECT_COOKIE_ACK      (1 << 1)
  ------------------
  |  Branch (397:3): [True: 3.24k, False: 4.11k]
  ------------------
  398|  3.24k|		data[0] & FUZZ_B_SEND_STREAM_RESET) {
  ------------------
  |  |   48|  3.24k|#define FUZZ_B_SEND_STREAM_RESET      (1 << 3)
  ------------------
  |  Branch (398:3): [True: 2.19k, False: 1.04k]
  ------------------
  399|  2.19k|		fuzzer_printf("Sending Stream Reset for all streams\n");
  400|       |
  401|  2.19k|		struct sctp_reset_streams srs;
  402|  2.19k|		memset(&srs, 0, sizeof(struct sctp_reset_streams));
  403|  2.19k|		srs.srs_flags = SCTP_STREAM_RESET_INCOMING | SCTP_STREAM_RESET_OUTGOING;
  ------------------
  |  |  393|  2.19k|#define SCTP_STREAM_RESET_INCOMING      0x00000001
  ------------------
              		srs.srs_flags = SCTP_STREAM_RESET_INCOMING | SCTP_STREAM_RESET_OUTGOING;
  ------------------
  |  |  394|  2.19k|#define SCTP_STREAM_RESET_OUTGOING      0x00000002
  ------------------
  404|  2.19k|		result = usrsctp_setsockopt(socket_client, IPPROTO_SCTP, SCTP_RESET_STREAMS, &srs, sizeof(struct sctp_reset_streams));
  ------------------
  |  |  593|  2.19k|#define SCTP_RESET_STREAMS              0x00000901 /* struct sctp_reset_streams */
  ------------------
  405|  2.19k|		FUZZER_ASSERT(result == 0);
  ------------------
  |  |   87|  2.19k|#define FUZZER_ASSERT(x) if (!(x)) { printf("USRSCTP assertion failed: function %s, file %s, line %d.\n", __PRETTY_FUNCTION__, __FILE__, __LINE__); abort(); }
  |  |  ------------------
  |  |  |  Branch (87:30): [True: 0, False: 2.19k]
  |  |  ------------------
  ------------------
  406|  2.19k|	}
  407|       |
  408|       |	// Required: INIT-ACK and COOKIE-ACK
  409|  10.1k|	if (data[0] & FUZZ_B_INJECT_INIT_ACK &&
  ------------------
  |  |   45|  20.3k|#define FUZZ_B_INJECT_INIT_ACK        (1 << 0)
  ------------------
  |  Branch (409:6): [True: 7.35k, False: 2.81k]
  ------------------
  410|  7.35k|		data[0] & FUZZ_B_INJECT_COOKIE_ACK &&
  ------------------
  |  |   46|  17.5k|#define FUZZ_B_INJECT_COOKIE_ACK      (1 << 1)
  ------------------
  |  Branch (410:3): [True: 3.24k, False: 4.11k]
  ------------------
  411|  3.24k|		data[0] & FUZZ_B_INJECT_DATA) {
  ------------------
  |  |   49|  3.24k|#define FUZZ_B_INJECT_DATA            (1 << 4)
  ------------------
  |  Branch (411:3): [True: 1.79k, False: 1.44k]
  ------------------
  412|       |
  413|  1.79k|		if (data[0] & FUZZ_B_I_DATA_SUPPORT) {
  ------------------
  |  |   50|  1.79k|#define FUZZ_B_I_DATA_SUPPORT         (1 << 5)
  ------------------
  |  Branch (413:7): [True: 797, False: 997]
  ------------------
  414|    797|			fuzzer_printf("Injecting I-DATA\n");
  415|    797|			common_header = (struct sctp_common_header*) fuzz_i_data;
  416|    797|			common_header->verification_tag = assoc_vtag;
  417|    797|			dump_packet(fuzz_i_data, 232, SCTP_DUMP_INBOUND);
  ------------------
  |  | 1057|    797|#define SCTP_DUMP_INBOUND  0
  ------------------
  418|    797|			usrsctp_conninput((void *)1, fuzz_i_data, 232, 0);
  419|    997|		} else {
  420|    997|			fuzzer_printf("Injecting DATA\n");
  421|    997|			common_header = (struct sctp_common_header*) fuzz_data;
  422|    997|			common_header->verification_tag = assoc_vtag;
  423|    997|			dump_packet(fuzz_data, 228, SCTP_DUMP_INBOUND);
  ------------------
  |  | 1057|    997|#define SCTP_DUMP_INBOUND  0
  ------------------
  424|    997|			usrsctp_conninput((void *)1, fuzz_data, 228, 0);
  425|    997|		}
  426|  1.79k|	}
  427|       |
  428|  10.1k|	if (data[0] & FUZZ_B_I_DATA_SUPPORT &&
  ------------------
  |  |   50|  20.3k|#define FUZZ_B_I_DATA_SUPPORT         (1 << 5)
  ------------------
  |  Branch (428:6): [True: 5.53k, False: 4.63k]
  ------------------
  429|  5.53k|		data[0] & FUZZ_B_SEND_DATA_FORCE) {
  ------------------
  |  |   51|  5.53k|#define FUZZ_B_SEND_DATA_FORCE        (1 << 6)
  ------------------
  |  Branch (429:3): [True: 4.03k, False: 1.49k]
  ------------------
  430|  4.03k|			const char *sendbuffer = "Geologie ist keine richtige Wissenschaft!";
  431|  4.03k|			fuzzer_printf("Calling usrsctp_sendv()\n");
  432|  4.03k|			usrsctp_sendv(socket_client, sendbuffer, strlen(sendbuffer), NULL, 0, NULL, 0, SCTP_SENDV_NOINFO, 0);
  ------------------
  |  |  193|  4.03k|#define SCTP_SENDV_NOINFO   0
  ------------------
  433|  4.03k|		}
  434|       |	
  435|       |
  436|  10.1k|	fuzz_packet_buffer = malloc(data_size - 1 + COMMON_HEADER_SIZE);
  ------------------
  |  |   55|  10.1k|#define COMMON_HEADER_SIZE 12
  ------------------
  437|  10.1k|	memcpy(fuzz_packet_buffer, fuzz_common_header, COMMON_HEADER_SIZE); // common header
  ------------------
  |  |   55|  10.1k|#define COMMON_HEADER_SIZE 12
  ------------------
  438|  10.1k|	memcpy(fuzz_packet_buffer + COMMON_HEADER_SIZE, data + 1, data_size - 1);
  ------------------
  |  |   55|  10.1k|#define COMMON_HEADER_SIZE 12
  ------------------
  439|       |
  440|  10.1k|	common_header = (struct sctp_common_header*) fuzz_packet_buffer;
  441|  10.1k|	common_header->verification_tag = assoc_vtag;
  442|       |
  443|  10.1k|	fuzzer_printf("Injecting FUZZER-Packet\n");
  444|  10.1k|	dump_packet(fuzz_packet_buffer, data_size - 1 + COMMON_HEADER_SIZE, SCTP_DUMP_INBOUND);
  ------------------
  |  |   55|  10.1k|#define COMMON_HEADER_SIZE 12
  ------------------
              	dump_packet(fuzz_packet_buffer, data_size - 1 + COMMON_HEADER_SIZE, SCTP_DUMP_INBOUND);
  ------------------
  |  | 1057|  10.1k|#define SCTP_DUMP_INBOUND  0
  ------------------
  445|  10.1k|	usrsctp_conninput((void *)1, fuzz_packet_buffer, data_size - 1 + COMMON_HEADER_SIZE, 0);
  ------------------
  |  |   55|  10.1k|#define COMMON_HEADER_SIZE 12
  ------------------
  446|       |
  447|  10.1k|	free(fuzz_packet_buffer);
  448|       |
  449|  10.1k|	fuzzer_printf("Calling usrsctp_close()\n");
  450|  10.1k|	usrsctp_close(socket_client);
  451|       |
  452|       |#ifdef FUZZ_ALWAYS_INITIALIZE
  453|       |	fuzzer_printf("Calling usrsctp_finish()\n");
  454|       |	while (usrsctp_finish() != 0) {}
  455|       |	fuzzer_printf("Done!\n");
  456|       |#endif
  457|       |
  458|  10.1k|	return (0);
  459|  10.1k|}
fuzzer_connect.c:conn_output:
   80|  48.0k|{
   81|  48.0k|	struct sctp_init_chunk *init_chunk;
   82|  48.0k|	const char *init_chunk_first_bytes = "\x13\x88\x13\x89\x00\x00\x00\x00\x00\x00\x00\x00\x01";
   83|       |	// Looking for the outgoing VTAG.
   84|       |	// length >= (COMMON_HEADER_SIZE + 16 (min size of INIT))
   85|       |	// If the common header has no VTAG (all zero), we're assuming it carries an INIT
   86|  48.0k|	if ((length >= (COMMON_HEADER_SIZE + 16)) && (memcmp(buf, init_chunk_first_bytes, COMMON_HEADER_SIZE) == 0)) {
  ------------------
  |  |   55|  48.0k|#define COMMON_HEADER_SIZE 12
  ------------------
              	if ((length >= (COMMON_HEADER_SIZE + 16)) && (memcmp(buf, init_chunk_first_bytes, COMMON_HEADER_SIZE) == 0)) {
  ------------------
  |  |   55|  40.4k|#define COMMON_HEADER_SIZE 12
  ------------------
  |  Branch (86:6): [True: 40.4k, False: 7.51k]
  |  Branch (86:47): [True: 18.5k, False: 21.9k]
  ------------------
   87|  18.5k|		init_chunk = (struct sctp_init_chunk*) ((char *)buf + sizeof(struct sctp_common_header));
   88|  18.5k|		fuzzer_printf("Found outgoing INIT, extracting VTAG : %u\n", init_chunk->initiate_tag);
   89|  18.5k|		assoc_vtag = init_chunk->initiate_tag;
   90|  18.5k|	}
   91|       |
   92|  48.0k|	dump_packet(buf, length, SCTP_DUMP_OUTBOUND);
  ------------------
  |  | 1056|  48.0k|#define SCTP_DUMP_OUTBOUND 1
  ------------------
   93|  48.0k|	return (0);
   94|  48.0k|}
fuzzer_connect.c:handle_upcall:
   99|  12.2k|{
  100|  12.2k|	fuzzer_printf("handle_upcall()\n");
  101|  12.2k|	int events = usrsctp_get_events(sock);
  102|       |
  103|   509k|	while (events & SCTP_EVENT_READ) {
  ------------------
  |  |  149|   509k|#define SCTP_EVENT_READ    0x0001
  ------------------
  |  Branch (103:9): [True: 499k, False: 10.6k]
  ------------------
  104|   499k|		struct sctp_recvv_rn rn;
  105|   499k|		ssize_t n;
  106|   499k|		struct sockaddr_in addr;
  107|   499k|		char *buf = calloc(1, BUFFER_SIZE);
  ------------------
  |  |   54|   499k|#define BUFFER_SIZE 4096
  ------------------
  108|   499k|		int flags = 0;
  109|   499k|		socklen_t len = (socklen_t)sizeof(struct sockaddr_in);
  110|   499k|		unsigned int infotype = 0;
  111|   499k|		socklen_t infolen = sizeof(struct sctp_recvv_rn);
  112|   499k|		memset(&rn, 0, sizeof(struct sctp_recvv_rn));
  113|   499k|		n = usrsctp_recvv(sock, buf, BUFFER_SIZE, (struct sockaddr *) &addr, &len, (void *)&rn, &infolen, &infotype, &flags);
  ------------------
  |  |   54|   499k|#define BUFFER_SIZE 4096
  ------------------
  114|   499k|		fuzzer_printf("usrsctp_recvv() - returned %zd\n", n);
  115|       |
  116|   499k|		if (flags & MSG_NOTIFICATION) {
  ------------------
  |  |   53|   499k|#define MSG_NOTIFICATION 0x2000
  ------------------
  |  Branch (116:7): [True: 496k, False: 2.66k]
  ------------------
  117|   496k|			fuzzer_printf("NOTIFICATION received\n");
  118|       |#ifdef FUZZ_VERBOSE
  119|       |			handle_notification((union sctp_notification *)buf, n);
  120|       |#endif // FUZZ_VERBOSE
  121|   496k|		} else {
  122|  2.66k|			fuzzer_printf("DATA received\n");
  123|  2.66k|		}
  124|       |
  125|   499k|		free(buf);
  126|       |
  127|   499k|		if (n <= 0) {
  ------------------
  |  Branch (127:7): [True: 1.66k, False: 497k]
  ------------------
  128|  1.66k|			break;
  129|  1.66k|		}
  130|       |
  131|   497k|		events = usrsctp_get_events(sock);
  132|   497k|	}
  133|  12.2k|}
fuzzer_connect.c:dump_packet:
   67|  71.7k|{
   68|       |#ifdef FUZZ_VERBOSE
   69|       |	static char *dump_buf;
   70|       |	if ((dump_buf = usrsctp_dumppacket(buffer, bufferlen, inout)) != NULL) {
   71|       |		fprintf(stderr, "%s", dump_buf);
   72|       |		usrsctp_freedumpbuffer(dump_buf);
   73|       |	}
   74|       |#endif // FUZZ_VERBOSE
   75|  71.7k|}

sctp_handle_asconf:
  619|  9.36k|{
  620|  9.36k|	struct sctp_association *asoc;
  621|  9.36k|	uint32_t serial_num;
  622|  9.36k|	struct mbuf *n, *m_ack, *m_result, *m_tail;
  623|  9.36k|	struct sctp_asconf_ack_chunk *ack_cp;
  624|  9.36k|	struct sctp_asconf_paramhdr *aph;
  625|  9.36k|	struct sctp_ipv6addr_param *p_addr;
  626|  9.36k|	unsigned int asconf_limit, cnt;
  627|  9.36k|	int error = 0;		/* did an error occur? */
  628|       |
  629|       |	/* asconf param buffer */
  630|  9.36k|	uint8_t aparam_buf[SCTP_PARAM_BUFFER_SIZE];
  631|  9.36k|	struct sctp_asconf_ack *ack, *ack_next;
  632|       |
  633|       |	/* verify minimum length */
  634|  9.36k|	if (ntohs(cp->ch.chunk_length) < sizeof(struct sctp_asconf_chunk)) {
  ------------------
  |  Branch (634:6): [True: 2.21k, False: 7.14k]
  ------------------
  635|  2.21k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  636|  2.21k|			"handle_asconf: chunk too small = %xh\n",
  637|  2.21k|			ntohs(cp->ch.chunk_length));
  638|  2.21k|		return;
  639|  2.21k|	}
  640|  7.14k|	asoc = &stcb->asoc;
  641|  7.14k|	serial_num = ntohl(cp->serial_number);
  642|       |
  643|  7.14k|	if (SCTP_TSN_GE(asoc->asconf_seq_in, serial_num)) {
  ------------------
  |  |  890|  7.14k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  7.14k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  14.2k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 4.08k, False: 3.06k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 739, False: 3.34k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  14.2k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 2.79k, False: 3.61k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 1.87k, False: 912]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 272, False: 4.25k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  644|       |		/* got a duplicate ASCONF */
  645|  2.89k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  646|  2.89k|			"handle_asconf: got duplicate serial number = %xh\n",
  647|  2.89k|			serial_num);
  648|  2.89k|		return;
  649|  4.25k|	} else if (serial_num != (asoc->asconf_seq_in + 1)) {
  ------------------
  |  Branch (649:13): [True: 2.05k, False: 2.20k]
  ------------------
  650|  2.05k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: incorrect serial number = %xh (expected next = %xh)\n",
  651|  2.05k|			serial_num, asoc->asconf_seq_in + 1);
  652|  2.05k|		return;
  653|  2.05k|	}
  654|       |
  655|       |	/* it's the expected "next" sequence number, so process it */
  656|  2.20k|	asoc->asconf_seq_in = serial_num;	/* update sequence */
  657|       |	/* get length of all the param's in the ASCONF */
  658|  2.20k|	asconf_limit = offset + ntohs(cp->ch.chunk_length);
  659|  2.20k|	SCTPDBG(SCTP_DEBUG_ASCONF1,
  660|  2.20k|		"handle_asconf: asconf_limit=%u, sequence=%xh\n",
  661|  2.20k|		asconf_limit, serial_num);
  662|       |
  663|  2.20k|	if (first) {
  ------------------
  |  Branch (663:6): [True: 2.00k, False: 191]
  ------------------
  664|       |		/* delete old cache */
  665|  2.00k|		SCTPDBG(SCTP_DEBUG_ASCONF1,"handle_asconf: Now processing first ASCONF. Try to delete old cache\n");
  666|       |
  667|  2.00k|		TAILQ_FOREACH_SAFE(ack, &asoc->asconf_ack_sent, next, ack_next) {
  ------------------
  |  | 1129|  2.00k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  2.00k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 2.00k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  2.00k|              (var) = (tvar))
  ------------------
  668|      0|			if (ack->serial_number == serial_num)
  ------------------
  |  Branch (668:8): [True: 0, False: 0]
  ------------------
  669|      0|				break;
  670|      0|			SCTPDBG(SCTP_DEBUG_ASCONF1,"handle_asconf: delete old(%u) < first(%u)\n",
  671|      0|			    ack->serial_number, serial_num);
  672|      0|			TAILQ_REMOVE(&asoc->asconf_ack_sent, ack, next);
  ------------------
  |  Branch (672:4): [True: 0, False: 0]
  |  Branch (672:4): [Folded, False: 0]
  ------------------
  673|      0|			if (ack->data != NULL) {
  ------------------
  |  Branch (673:8): [True: 0, False: 0]
  ------------------
  674|      0|				sctp_m_freem(ack->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  675|      0|			}
  676|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asconf_ack), ack);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
  677|      0|		}
  678|  2.00k|	}
  679|       |
  680|  2.20k|	m_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_asconf_ack_chunk), 0,
  681|  2.20k|				      M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.20k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              				      M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.20k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  682|  2.20k|	if (m_ack == NULL) {
  ------------------
  |  Branch (682:6): [True: 0, False: 2.20k]
  ------------------
  683|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  684|      0|			"handle_asconf: couldn't get mbuf!\n");
  685|      0|		return;
  686|      0|	}
  687|  2.20k|	m_tail = m_ack;		/* current reply chain's tail */
  688|       |
  689|       |	/* fill in ASCONF-ACK header */
  690|  2.20k|	ack_cp = mtod(m_ack, struct sctp_asconf_ack_chunk *);
  ------------------
  |  |   96|  2.20k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.20k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  691|  2.20k|	ack_cp->ch.chunk_type = SCTP_ASCONF_ACK;
  ------------------
  |  |  477|  2.20k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  692|  2.20k|	ack_cp->ch.chunk_flags = 0;
  693|  2.20k|	ack_cp->serial_number = htonl(serial_num);
  694|       |	/* set initial lengths (eg. just an ASCONF-ACK), ntohx at the end! */
  695|  2.20k|	SCTP_BUF_LEN(m_ack) = sizeof(struct sctp_asconf_ack_chunk);
  ------------------
  |  |  801|  2.20k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.20k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  696|  2.20k|	ack_cp->ch.chunk_length = sizeof(struct sctp_asconf_ack_chunk);
  697|       |
  698|       |	/* skip the lookup address parameter */
  699|  2.20k|	offset += sizeof(struct sctp_asconf_chunk);
  700|  2.20k|	p_addr = (struct sctp_ipv6addr_param *)sctp_m_getptr(m, offset, sizeof(struct sctp_paramhdr), (uint8_t *)&aparam_buf);
  701|  2.20k|	if (p_addr == NULL) {
  ------------------
  |  Branch (701:6): [True: 6, False: 2.19k]
  ------------------
  702|      6|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  703|      6|			"handle_asconf: couldn't get lookup addr!\n");
  704|       |		/* respond with a missing/invalid mandatory parameter error */
  705|      6|		sctp_m_freem(m_ack);
  ------------------
  |  |   52|      6|#define sctp_m_freem m_freem
  ------------------
  706|      6|		return;
  707|      6|	}
  708|       |	/* skip lookup addr */
  709|  2.19k|	offset += SCTP_SIZE32(ntohs(p_addr->ph.param_length));
  ------------------
  |  |  383|  2.19k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  710|       |	/* get pointer to first asconf param in ASCONF */
  711|  2.19k|	aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, sizeof(struct sctp_asconf_paramhdr), (uint8_t *)&aparam_buf);
  712|  2.19k|	if (aph == NULL) {
  ------------------
  |  Branch (712:6): [True: 99, False: 2.09k]
  ------------------
  713|     99|		SCTPDBG(SCTP_DEBUG_ASCONF1, "Empty ASCONF received?\n");
  714|     99|		goto send_reply;
  715|     99|	}
  716|       |	/* process through all parameters */
  717|  2.09k|	cnt = 0;
  718|  94.4k|	while (aph != NULL) {
  ------------------
  |  Branch (718:9): [True: 94.3k, False: 79]
  ------------------
  719|  94.3k|		unsigned int param_length, param_type;
  720|       |
  721|  94.3k|		param_type = ntohs(aph->ph.param_type);
  722|  94.3k|		param_length = ntohs(aph->ph.param_length);
  723|  94.3k|		if (offset + param_length > asconf_limit) {
  ------------------
  |  Branch (723:7): [True: 616, False: 93.7k]
  ------------------
  724|       |			/* parameter goes beyond end of chunk! */
  725|    616|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|    616|#define sctp_m_freem m_freem
  ------------------
  726|    616|			return;
  727|    616|		}
  728|  93.7k|		m_result = NULL;
  729|       |
  730|  93.7k|		if (param_length > sizeof(aparam_buf)) {
  ------------------
  |  Branch (730:7): [True: 6, False: 93.7k]
  ------------------
  731|      6|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: param length (%u) larger than buffer size!\n", param_length);
  732|      6|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|      6|#define sctp_m_freem m_freem
  ------------------
  733|      6|			return;
  734|      6|		}
  735|  93.7k|		if (param_length < sizeof(struct sctp_asconf_paramhdr)) {
  ------------------
  |  Branch (735:7): [True: 367, False: 93.3k]
  ------------------
  736|    367|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: param length (%u) too short\n", param_length);
  737|    367|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|    367|#define sctp_m_freem m_freem
  ------------------
  738|    367|			return;
  739|    367|		}
  740|       |		/* get the entire parameter */
  741|  93.3k|		aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, param_length, aparam_buf);
  742|  93.3k|		if (aph == NULL) {
  ------------------
  |  Branch (742:7): [True: 0, False: 93.3k]
  ------------------
  743|      0|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: couldn't get entire param\n");
  744|      0|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  745|      0|			return;
  746|      0|		}
  747|  93.3k|		switch (param_type) {
  748|  55.8k|		case SCTP_ADD_IP_ADDRESS:
  ------------------
  |  |  430|  55.8k|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (748:3): [True: 55.8k, False: 37.4k]
  ------------------
  749|  55.8k|			m_result = sctp_process_asconf_add_ip(src, aph, stcb,
  750|  55.8k|			    (cnt < SCTP_BASE_SYSCTL(sctp_hb_maxburst)), error);
  ------------------
  |  |  590|  55.8k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  751|  55.8k|			cnt++;
  752|  55.8k|			break;
  753|  16.3k|		case SCTP_DEL_IP_ADDRESS:
  ------------------
  |  |  431|  16.3k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (753:3): [True: 16.3k, False: 76.9k]
  ------------------
  754|  16.3k|			m_result = sctp_process_asconf_delete_ip(src, aph, stcb,
  755|  16.3k|			    error);
  756|  16.3k|			break;
  757|    420|		case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|    420|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (757:3): [True: 420, False: 92.9k]
  ------------------
  758|       |			/* not valid in an ASCONF chunk */
  759|    420|			break;
  760|  12.5k|		case SCTP_SET_PRIM_ADDR:
  ------------------
  |  |  433|  12.5k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (760:3): [True: 12.5k, False: 80.8k]
  ------------------
  761|  12.5k|			m_result = sctp_process_asconf_set_primary(src, aph,
  762|  12.5k|			    stcb, error);
  763|  12.5k|			break;
  764|     85|		case SCTP_NAT_VTAGS:
  ------------------
  |  |  438|     85|#define SCTP_NAT_VTAGS			0xc008
  ------------------
  |  Branch (764:3): [True: 85, False: 93.2k]
  ------------------
  765|     85|		        SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: sees a NAT VTAG state parameter\n");
  766|     85|		        break;
  767|  1.06k|		case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|  1.06k|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (767:3): [True: 1.06k, False: 92.2k]
  ------------------
  768|       |			/* not valid in an ASCONF chunk */
  769|  1.06k|			break;
  770|    516|		case SCTP_ULP_ADAPTATION:
  ------------------
  |  |  435|    516|#define SCTP_ULP_ADAPTATION		0xc006
  ------------------
  |  Branch (770:3): [True: 516, False: 92.8k]
  ------------------
  771|       |			/* FIX */
  772|    516|			break;
  773|  6.52k|		default:
  ------------------
  |  Branch (773:3): [True: 6.52k, False: 86.8k]
  ------------------
  774|  6.52k|			if ((param_type & 0x8000) == 0) {
  ------------------
  |  Branch (774:8): [True: 206, False: 6.31k]
  ------------------
  775|       |				/* Been told to STOP at this param */
  776|    206|				asconf_limit = offset;
  777|       |				/*
  778|       |				 * FIX FIX - We need to call
  779|       |				 * sctp_arethere_unrecognized_parameters()
  780|       |				 * to get a operr and send it for any
  781|       |				 * param's with the 0x4000 bit set OR do it
  782|       |				 * here ourselves... note we still must STOP
  783|       |				 * if the 0x8000 bit is clear.
  784|       |				 */
  785|    206|			}
  786|       |			/* unknown/invalid param type */
  787|  6.52k|			break;
  788|  93.3k|		} /* switch */
  789|       |
  790|       |		/* add any (error) result to the reply mbuf chain */
  791|  93.3k|		if (m_result != NULL) {
  ------------------
  |  Branch (791:7): [True: 62.4k, False: 30.8k]
  ------------------
  792|  62.4k|			SCTP_BUF_NEXT(m_tail) = m_result;
  ------------------
  |  |  802|  62.4k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  62.4k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  793|  62.4k|			m_tail = m_result;
  794|  62.4k|			ack_cp->ch.chunk_length += SCTP_BUF_LEN(m_result);
  ------------------
  |  |  801|  62.4k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  62.4k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  795|       |			/* set flag to force success reports */
  796|  62.4k|			error = 1;
  797|  62.4k|		}
  798|  93.3k|		offset += SCTP_SIZE32(param_length);
  ------------------
  |  |  383|  93.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  799|       |		/* update remaining ASCONF message length to process */
  800|  93.3k|		if (offset >= asconf_limit) {
  ------------------
  |  Branch (800:7): [True: 1.02k, False: 92.3k]
  ------------------
  801|       |			/* no more data in the mbuf chain */
  802|  1.02k|			break;
  803|  1.02k|		}
  804|       |		/* get pointer to next asconf param */
  805|  92.3k|		aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset,
  806|  92.3k|		    sizeof(struct sctp_asconf_paramhdr),
  807|  92.3k|		    (uint8_t *)&aparam_buf);
  808|  92.3k|		if (aph == NULL) {
  ------------------
  |  Branch (808:7): [True: 79, False: 92.2k]
  ------------------
  809|       |			/* can't get an asconf paramhdr */
  810|     79|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: can't get asconf param hdr!\n");
  811|       |			/* FIX ME - add error here... */
  812|     79|		}
  813|  92.3k|	}
  814|       |
  815|  1.20k| send_reply:
  816|  1.20k|	ack_cp->ch.chunk_length = htons(ack_cp->ch.chunk_length);
  817|       |	/* save the ASCONF-ACK reply */
  818|  1.20k|	ack = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_asconf_ack),
  ------------------
  |  |  703|  1.20k|        (type *)malloc(zone);
  ------------------
  819|  1.20k|	    struct sctp_asconf_ack);
  820|  1.20k|	if (ack == NULL) {
  ------------------
  |  Branch (820:6): [True: 0, False: 1.20k]
  ------------------
  821|      0|		sctp_m_freem(m_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  822|      0|		return;
  823|      0|	}
  824|  1.20k|	ack->serial_number = serial_num;
  825|  1.20k|	ack->last_sent_to = NULL;
  826|  1.20k|	ack->data = m_ack;
  827|  1.20k|	ack->len = 0;
  828|  25.6k|	for (n = m_ack; n != NULL; n = SCTP_BUF_NEXT(n)) {
  ------------------
  |  |  802|  24.4k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  24.4k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (828:18): [True: 24.4k, False: 1.20k]
  ------------------
  829|  24.4k|		ack->len += SCTP_BUF_LEN(n);
  ------------------
  |  |  801|  24.4k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  24.4k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  830|  24.4k|	}
  831|  1.20k|	TAILQ_INSERT_TAIL(&stcb->asoc.asconf_ack_sent, ack, next);
  ------------------
  |  Branch (831:2): [Folded, False: 1.20k]
  ------------------
  832|       |
  833|       |	/* see if last_control_chunk_from is set properly (use IP src addr) */
  834|  1.20k|	if (stcb->asoc.last_control_chunk_from == NULL) {
  ------------------
  |  Branch (834:6): [True: 0, False: 1.20k]
  ------------------
  835|       |		/*
  836|       |		 * this could happen if the source address was just newly
  837|       |		 * added
  838|       |		 */
  839|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: looking up net for IP source address\n");
  840|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "Looking for IP source: ");
  841|      0|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
  842|       |		/* look up the from address */
  843|      0|		stcb->asoc.last_control_chunk_from = sctp_findnet(stcb, src);
  844|       |#ifdef SCTP_DEBUG
  845|       |		if (stcb->asoc.last_control_chunk_from == NULL) {
  846|       |			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: IP source address not found?!\n");
  847|       |		}
  848|       |#endif
  849|      0|	}
  850|  1.20k|}
sctp_asconf_cleanup:
  948|    415|{
  949|       |	/*
  950|       |	 * clear out any existing asconfs going out
  951|       |	 */
  952|    415|	sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  541|    415|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  953|    415|			SCTP_FROM_SCTP_ASCONF + SCTP_LOC_2);
  ------------------
  |  |  762|    415|#define SCTP_FROM_SCTP_ASCONF       0x80000000
  ------------------
              			SCTP_FROM_SCTP_ASCONF + SCTP_LOC_2);
  ------------------
  |  |  770|    415|#define SCTP_LOC_2  0x00000002
  ------------------
  954|    415|	stcb->asoc.asconf_seq_out_acked = stcb->asoc.asconf_seq_out;
  955|       |	/* remove the old ASCONF on our outbound queue */
  956|    415|	sctp_toss_old_asconf(stcb);
  957|    415|}
sctp_handle_asconf_ack:
 1694|    409|{
 1695|    409|	struct sctp_association *asoc;
 1696|    409|	uint32_t serial_num;
 1697|    409|	uint16_t ack_length;
 1698|    409|	struct sctp_asconf_paramhdr *aph;
 1699|    409|	struct sctp_asconf_addr *aa, *aa_next;
 1700|    409|	uint32_t last_error_id = 0;	/* last error correlation id */
 1701|    409|	uint32_t id;
 1702|    409|	struct sctp_asconf_addr *ap;
 1703|       |
 1704|       |	/* asconf param buffer */
 1705|    409|	uint8_t aparam_buf[SCTP_PARAM_BUFFER_SIZE];
 1706|       |
 1707|       |	/* verify minimum length */
 1708|    409|	if (ntohs(cp->ch.chunk_length) < sizeof(struct sctp_asconf_ack_chunk)) {
  ------------------
  |  Branch (1708:6): [True: 0, False: 409]
  ------------------
 1709|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
 1710|      0|			"handle_asconf_ack: chunk too small = %xh\n",
 1711|      0|			ntohs(cp->ch.chunk_length));
 1712|      0|		return;
 1713|      0|	}
 1714|    409|	asoc = &stcb->asoc;
 1715|    409|	serial_num = ntohl(cp->serial_number);
 1716|       |
 1717|       |	/*
 1718|       |	 * NOTE: we may want to handle this differently- currently, we will
 1719|       |	 * abort when we get an ack for the expected serial number + 1 (eg.
 1720|       |	 * we didn't send it), process an ack normally if it is the expected
 1721|       |	 * serial number, and re-send the previous ack for *ALL* other
 1722|       |	 * serial numbers
 1723|       |	 */
 1724|       |
 1725|       |	/*
 1726|       |	 * if the serial number is the next expected, but I didn't send it,
 1727|       |	 * abort the asoc, since someone probably just hijacked us...
 1728|       |	 */
 1729|    409|	if (serial_num == (asoc->asconf_seq_out + 1)) {
  ------------------
  |  Branch (1729:6): [True: 0, False: 409]
  ------------------
 1730|      0|		struct mbuf *op_err;
 1731|      0|		char msg[SCTP_DIAG_INFO_LEN];
 1732|       |
 1733|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf_ack: got unexpected next serial number! Aborting asoc!\n");
 1734|      0|		SCTP_SNPRINTF(msg, sizeof(msg), "Never sent serial number %8.8x", serial_num);
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1735|      0|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      0|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 1736|      0|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1737|      0|		*abort_no_unlock = 1;
 1738|      0|		return;
 1739|      0|	}
 1740|    409|	if (serial_num != asoc->asconf_seq_out_acked + 1) {
  ------------------
  |  Branch (1740:6): [True: 409, False: 0]
  ------------------
 1741|       |		/* got a duplicate/unexpected ASCONF-ACK */
 1742|    409|		SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf_ack: got duplicate/unexpected serial number = %xh (expected = %xh)\n",
 1743|    409|			serial_num, asoc->asconf_seq_out_acked + 1);
 1744|    409|		return;
 1745|    409|	}
 1746|       |
 1747|      0|	if (serial_num == asoc->asconf_seq_out - 1) {
  ------------------
  |  Branch (1747:6): [True: 0, False: 0]
  ------------------
 1748|       |		/* stop our timer */
 1749|      0|		sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
 1750|      0|				SCTP_FROM_SCTP_ASCONF + SCTP_LOC_5);
  ------------------
  |  |  762|      0|#define SCTP_FROM_SCTP_ASCONF       0x80000000
  ------------------
              				SCTP_FROM_SCTP_ASCONF + SCTP_LOC_5);
  ------------------
  |  |  773|      0|#define SCTP_LOC_5  0x00000005
  ------------------
 1751|      0|	}
 1752|       |
 1753|       |	/* process the ASCONF-ACK contents */
 1754|      0|	ack_length = ntohs(cp->ch.chunk_length) -
 1755|      0|	    sizeof(struct sctp_asconf_ack_chunk);
 1756|      0|	offset += sizeof(struct sctp_asconf_ack_chunk);
 1757|       |	/* process through all parameters */
 1758|      0|	while (ack_length >= sizeof(struct sctp_asconf_paramhdr)) {
  ------------------
  |  Branch (1758:9): [True: 0, False: 0]
  ------------------
 1759|      0|		unsigned int param_length, param_type;
 1760|       |
 1761|       |		/* get pointer to next asconf parameter */
 1762|      0|		aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset,
 1763|      0|		    sizeof(struct sctp_asconf_paramhdr), aparam_buf);
 1764|      0|		if (aph == NULL) {
  ------------------
  |  Branch (1764:7): [True: 0, False: 0]
  ------------------
 1765|       |			/* can't get an asconf paramhdr */
 1766|      0|			sctp_asconf_ack_clear(stcb);
 1767|      0|			return;
 1768|      0|		}
 1769|      0|		param_type = ntohs(aph->ph.param_type);
 1770|      0|		param_length = ntohs(aph->ph.param_length);
 1771|      0|		if (param_length > ack_length) {
  ------------------
  |  Branch (1771:7): [True: 0, False: 0]
  ------------------
 1772|      0|			sctp_asconf_ack_clear(stcb);
 1773|      0|			return;
 1774|      0|		}
 1775|      0|		if (param_length < sizeof(struct sctp_asconf_paramhdr)) {
  ------------------
  |  Branch (1775:7): [True: 0, False: 0]
  ------------------
 1776|      0|			sctp_asconf_ack_clear(stcb);
 1777|      0|			return;
 1778|      0|		}
 1779|       |		/* get the complete parameter... */
 1780|      0|		if (param_length > sizeof(aparam_buf)) {
  ------------------
  |  Branch (1780:7): [True: 0, False: 0]
  ------------------
 1781|      0|			SCTPDBG(SCTP_DEBUG_ASCONF1,
 1782|      0|				"param length (%u) larger than buffer size!\n", param_length);
 1783|      0|			sctp_asconf_ack_clear(stcb);
 1784|      0|			return;
 1785|      0|		}
 1786|      0|		aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, param_length, aparam_buf);
 1787|      0|		if (aph == NULL) {
  ------------------
  |  Branch (1787:7): [True: 0, False: 0]
  ------------------
 1788|      0|			sctp_asconf_ack_clear(stcb);
 1789|      0|			return;
 1790|      0|		}
 1791|       |		/* correlation_id is transparent to peer, no ntohl needed */
 1792|      0|		id = aph->correlation_id;
 1793|       |
 1794|      0|		switch (param_type) {
 1795|      0|		case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|      0|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (1795:3): [True: 0, False: 0]
  ------------------
 1796|      0|			last_error_id = id;
 1797|       |			/* find the corresponding asconf param in our queue */
 1798|      0|			ap = sctp_asconf_find_param(stcb, id);
 1799|      0|			if (ap == NULL) {
  ------------------
  |  Branch (1799:8): [True: 0, False: 0]
  ------------------
 1800|       |				/* hmm... can't find this in our queue! */
 1801|      0|				break;
 1802|      0|			}
 1803|       |			/* process the parameter, failed flag */
 1804|      0|			sctp_asconf_process_param_ack(stcb, ap, 0);
 1805|       |			/* process the error response */
 1806|      0|			sctp_asconf_process_error(stcb, aph);
 1807|      0|			break;
 1808|      0|		case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|      0|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (1808:3): [True: 0, False: 0]
  ------------------
 1809|       |			/* find the corresponding asconf param in our queue */
 1810|      0|			ap = sctp_asconf_find_param(stcb, id);
 1811|      0|			if (ap == NULL) {
  ------------------
  |  Branch (1811:8): [True: 0, False: 0]
  ------------------
 1812|       |				/* hmm... can't find this in our queue! */
 1813|      0|				break;
 1814|      0|			}
 1815|       |			/* process the parameter, success flag */
 1816|      0|			sctp_asconf_process_param_ack(stcb, ap, 1);
 1817|      0|			break;
 1818|      0|		default:
  ------------------
  |  Branch (1818:3): [True: 0, False: 0]
  ------------------
 1819|      0|			break;
 1820|      0|		}		/* switch */
 1821|       |
 1822|       |		/* update remaining ASCONF-ACK message length to process */
 1823|      0|		if (ack_length > SCTP_SIZE32(param_length)) {
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (1823:7): [True: 0, False: 0]
  ------------------
 1824|      0|			ack_length -= SCTP_SIZE32(param_length);
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1825|      0|		} else {
 1826|      0|			break;
 1827|      0|		}
 1828|      0|		offset += SCTP_SIZE32(param_length);
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1829|      0|	} /* while */
 1830|       |
 1831|       |	/*
 1832|       |	 * if there are any "sent" params still on the queue, these are
 1833|       |	 * implicitly "success", or "failed" (if we got an error back) ...
 1834|       |	 * so process these appropriately
 1835|       |	 *
 1836|       |	 * we assume that the correlation_id's are monotonically increasing
 1837|       |	 * beginning from 1 and that we don't have *that* many outstanding
 1838|       |	 * at any given time
 1839|       |	 */
 1840|      0|	if (last_error_id == 0)
  ------------------
  |  Branch (1840:6): [True: 0, False: 0]
  ------------------
 1841|      0|		last_error_id--;	/* set to "max" value */
 1842|      0|	TAILQ_FOREACH_SAFE(aa, &stcb->asoc.asconf_queue, next, aa_next) {
  ------------------
  |  | 1129|      0|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|      0|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 0]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|      0|              (var) = (tvar))
  ------------------
 1843|      0|		if (aa->sent == 1) {
  ------------------
  |  Branch (1843:7): [True: 0, False: 0]
  ------------------
 1844|       |			/*
 1845|       |			 * implicitly successful or failed if correlation_id
 1846|       |			 * < last_error_id, then success else, failure
 1847|       |			 */
 1848|      0|			if (aa->ap.aph.correlation_id < last_error_id)
  ------------------
  |  Branch (1848:8): [True: 0, False: 0]
  ------------------
 1849|      0|				sctp_asconf_process_param_ack(stcb, aa, 1);
 1850|      0|			else
 1851|      0|				sctp_asconf_process_param_ack(stcb, aa, 0);
 1852|      0|		} else {
 1853|       |			/*
 1854|       |			 * since we always process in order (FIFO queue) if
 1855|       |			 * we reach one that hasn't been sent, the rest
 1856|       |			 * should not have been sent either. so, we're
 1857|       |			 * done...
 1858|       |			 */
 1859|      0|			break;
 1860|      0|		}
 1861|      0|	}
 1862|       |
 1863|       |	/* update the next sequence number to use */
 1864|      0|	asoc->asconf_seq_out_acked++;
 1865|       |	/* remove the old ASCONF on our outbound queue */
 1866|      0|	sctp_toss_old_asconf(stcb);
 1867|      0|	if (!TAILQ_EMPTY(&stcb->asoc.asconf_queue)) {
  ------------------
  |  Branch (1867:6): [True: 0, False: 0]
  ------------------
 1868|       |#ifdef SCTP_TIMER_BASED_ASCONF
 1869|       |		/* we have more params, so restart our timer */
 1870|       |		sctp_timer_start(SCTP_TIMER_TYPE_ASCONF, stcb->sctp_ep,
 1871|       |				 stcb, net);
 1872|       |#else
 1873|       |		/* we have more params, so send out more */
 1874|      0|		sctp_send_asconf(stcb, net, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|      0|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 1875|      0|#endif
 1876|      0|	}
 1877|      0|}
sctp_asconf_send_nat_state_update:
 3321|    524|{
 3322|    524|	struct sctp_asconf_addr *aa_vtag, *aa_add, *aa_del;
 3323|    524|	struct sctp_ifa *sctp_ifap;
 3324|    524|	struct sctp_asconf_tag_param *vtag;
 3325|    524|#ifdef INET
 3326|    524|	struct sockaddr_in *to;
 3327|    524|#endif
 3328|    524|#ifdef INET6
 3329|    524|	struct sockaddr_in6 *to6;
 3330|    524|#endif
 3331|       |
 3332|    524|	if (net == NULL) {
  ------------------
  |  Branch (3332:6): [True: 0, False: 524]
  ------------------
 3333|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "sctp_asconf_send_nat_state_update: Missing net\n");
 3334|      0|		return;
 3335|      0|	}
 3336|    524|	if (stcb == NULL) {
  ------------------
  |  Branch (3336:6): [True: 0, False: 524]
  ------------------
 3337|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "sctp_asconf_send_nat_state_update: Missing stcb\n");
 3338|      0|		return;
 3339|      0|	}
 3340|       |	/* Need to have in the ASCONF:
 3341|       |	 * - VTAG(my_vtag/peer_vtag)
 3342|       |	 * - ADD(wildcard)
 3343|       |	 * - DEL(wildcard)
 3344|       |	 * - ADD(Any global addresses)
 3345|       |	 */
 3346|    524|	SCTP_MALLOC(aa_vtag, struct sctp_asconf_addr *, sizeof(struct sctp_asconf_addr), SCTP_M_ASC_ADDR);
  ------------------
  |  |  675|    524|	do {								\
  |  |  676|    524|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    524|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    524|    do {								\
  |  |  |  |  198|    524|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.04k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 524]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    524|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 524]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    524|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 524]
  |  |  ------------------
  ------------------
 3347|    524|	SCTP_MALLOC(aa_add, struct sctp_asconf_addr *, sizeof(struct sctp_asconf_addr), SCTP_M_ASC_ADDR);
  ------------------
  |  |  675|    524|	do {								\
  |  |  676|    524|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    524|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    524|    do {								\
  |  |  |  |  198|    524|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.04k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 524]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    524|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 524]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    524|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 524]
  |  |  ------------------
  ------------------
 3348|    524|	SCTP_MALLOC(aa_del, struct sctp_asconf_addr *, sizeof(struct sctp_asconf_addr), SCTP_M_ASC_ADDR);
  ------------------
  |  |  675|    524|	do {								\
  |  |  676|    524|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    524|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    524|    do {								\
  |  |  |  |  198|    524|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.04k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 524]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    524|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 524]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    524|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 524]
  |  |  ------------------
  ------------------
 3349|       |
 3350|    524|	if ((aa_vtag == NULL) || (aa_add == NULL) || (aa_del == NULL)) {
  ------------------
  |  Branch (3350:6): [True: 0, False: 524]
  |  Branch (3350:27): [True: 0, False: 524]
  |  Branch (3350:47): [True: 0, False: 524]
  ------------------
 3351|       |		/* Didn't get memory */
 3352|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "sctp_asconf_send_nat_state_update: failed to get memory!\n");
 3353|    524|out:
 3354|    524|		if (aa_vtag != NULL) {
  ------------------
  |  Branch (3354:7): [True: 524, False: 0]
  ------------------
 3355|    524|			SCTP_FREE(aa_vtag, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|    524|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    524|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3356|    524|		}
 3357|    524|		if (aa_add != NULL) {
  ------------------
  |  Branch (3357:7): [True: 524, False: 0]
  ------------------
 3358|    524|			SCTP_FREE(aa_add, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|    524|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    524|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3359|    524|		}
 3360|    524|		if (aa_del != NULL) {
  ------------------
  |  Branch (3360:7): [True: 524, False: 0]
  ------------------
 3361|    524|			SCTP_FREE(aa_del, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|    524|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    524|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3362|    524|		}
 3363|    524|		return;
 3364|      0|	}
 3365|    524|	memset(aa_vtag, 0, sizeof(struct sctp_asconf_addr));
 3366|    524|	aa_vtag->special_del = 0;
 3367|       |	/* Fill in ASCONF address parameter fields. */
 3368|       |	/* Top level elements are "networked" during send. */
 3369|    524|	aa_vtag->ifa = NULL;
 3370|    524|	aa_vtag->sent = 0;		/* clear sent flag */
 3371|    524|	vtag = (struct sctp_asconf_tag_param *)&aa_vtag->ap.aph;
 3372|    524|	vtag->aph.ph.param_type = SCTP_NAT_VTAGS;
  ------------------
  |  |  438|    524|#define SCTP_NAT_VTAGS			0xc008
  ------------------
 3373|    524|	vtag->aph.ph.param_length = sizeof(struct sctp_asconf_tag_param);
 3374|    524|	vtag->local_vtag = htonl(stcb->asoc.my_vtag);
 3375|    524|	vtag->remote_vtag = htonl(stcb->asoc.peer_vtag);
 3376|       |
 3377|    524|	memset(aa_add, 0, sizeof(struct sctp_asconf_addr));
 3378|    524|	memset(aa_del, 0, sizeof(struct sctp_asconf_addr));
 3379|    524|	switch (net->ro._l_addr.sa.sa_family) {
 3380|      0|#ifdef INET
 3381|      0|	case AF_INET:
  ------------------
  |  Branch (3381:2): [True: 0, False: 524]
  ------------------
 3382|      0|		aa_add->ap.aph.ph.param_type = SCTP_ADD_IP_ADDRESS;
  ------------------
  |  |  430|      0|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
 3383|      0|		aa_add->ap.aph.ph.param_length = sizeof(struct sctp_asconf_addrv4_param);
 3384|      0|		aa_add->ap.addrp.ph.param_type = SCTP_IPV4_ADDRESS;
  ------------------
  |  |  394|      0|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
 3385|      0|		aa_add->ap.addrp.ph.param_length = sizeof (struct sctp_ipv4addr_param);
 3386|       |		/* No need to fill the address, we are using 0.0.0.0 */
 3387|      0|		aa_del->ap.aph.ph.param_type = SCTP_DEL_IP_ADDRESS;
  ------------------
  |  |  431|      0|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
 3388|      0|		aa_del->ap.aph.ph.param_length = sizeof(struct sctp_asconf_addrv4_param);
 3389|      0|		aa_del->ap.addrp.ph.param_type = SCTP_IPV4_ADDRESS;
  ------------------
  |  |  394|      0|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
 3390|      0|		aa_del->ap.addrp.ph.param_length = sizeof (struct sctp_ipv4addr_param);
 3391|       |		/* No need to fill the address, we are using 0.0.0.0 */
 3392|      0|		break;
 3393|      0|#endif
 3394|      0|#ifdef INET6
 3395|      0|	case AF_INET6:
  ------------------
  |  Branch (3395:2): [True: 0, False: 524]
  ------------------
 3396|      0|		aa_add->ap.aph.ph.param_type = SCTP_ADD_IP_ADDRESS;
  ------------------
  |  |  430|      0|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
 3397|      0|		aa_add->ap.aph.ph.param_length = sizeof(struct sctp_asconf_addr_param);
 3398|      0|		aa_add->ap.addrp.ph.param_type = SCTP_IPV6_ADDRESS;
  ------------------
  |  |  395|      0|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
 3399|      0|		aa_add->ap.addrp.ph.param_length = sizeof (struct sctp_ipv6addr_param);
 3400|       |		/* No need to fill the address, we are using ::0 */
 3401|      0|		aa_del->ap.aph.ph.param_type = SCTP_DEL_IP_ADDRESS;
  ------------------
  |  |  431|      0|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
 3402|      0|		aa_del->ap.aph.ph.param_length = sizeof(struct sctp_asconf_addr_param);
 3403|      0|		aa_del->ap.addrp.ph.param_type = SCTP_IPV6_ADDRESS;
  ------------------
  |  |  395|      0|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
 3404|      0|		aa_del->ap.addrp.ph.param_length = sizeof (struct sctp_ipv6addr_param);
 3405|       |		/* No need to fill the address, we are using ::0 */
 3406|      0|		break;
 3407|      0|#endif
 3408|    524|	default:
  ------------------
  |  Branch (3408:2): [True: 524, False: 0]
  ------------------
 3409|    524|		SCTPDBG(SCTP_DEBUG_ASCONF1,
 3410|    524|		        "sctp_asconf_send_nat_state_update: unknown address family %d\n",
 3411|    524|		        net->ro._l_addr.sa.sa_family);
 3412|    524|		goto out;
 3413|    524|	}
 3414|    524|	TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa_vtag, next);
  ------------------
  |  Branch (3414:2): [Folded, False: 0]
  ------------------
 3415|      0|	TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa_add, next);
  ------------------
  |  Branch (3415:2): [Folded, False: 0]
  ------------------
 3416|      0|	TAILQ_INSERT_TAIL(&stcb->asoc.asconf_queue, aa_del, next);
  ------------------
  |  Branch (3416:2): [Folded, False: 0]
  ------------------
 3417|       |
 3418|       |	/* Now we must hunt the addresses and add all global addresses */
 3419|      0|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (3419:6): [True: 0, False: 0]
  ------------------
 3420|      0|		struct sctp_vrf *vrf = NULL;
 3421|      0|		struct sctp_ifn *sctp_ifnp;
 3422|      0|		uint32_t vrf_id;
 3423|       |
 3424|      0|		vrf_id = stcb->sctp_ep->def_vrf_id;
 3425|      0|		vrf = sctp_find_vrf(vrf_id);
 3426|      0|		if (vrf == NULL) {
  ------------------
  |  Branch (3426:7): [True: 0, False: 0]
  ------------------
 3427|      0|			goto skip_rest;
 3428|      0|		}
 3429|       |
 3430|      0|		SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|      0|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3431|      0|		LIST_FOREACH(sctp_ifnp, &vrf->ifnlist, next_ifn) {
  ------------------
  |  Branch (3431:3): [True: 0, False: 0]
  ------------------
 3432|      0|			LIST_FOREACH(sctp_ifap, &sctp_ifnp->ifalist, next_ifa) {
  ------------------
  |  Branch (3432:4): [True: 0, False: 0]
  ------------------
 3433|      0|				switch (sctp_ifap->address.sa.sa_family) {
 3434|      0|#ifdef INET
 3435|      0|				case AF_INET:
  ------------------
  |  Branch (3435:5): [True: 0, False: 0]
  ------------------
 3436|      0|					to = &sctp_ifap->address.sin;
 3437|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3438|       |					if (prison_check_ip4(stcb->sctp_ep->ip_inp.inp.inp_cred,
 3439|       |					                     &to->sin_addr) != 0) {
 3440|       |						continue;
 3441|       |					}
 3442|       |#endif
 3443|      0|					if (IN4_ISPRIVATE_ADDRESS(&to->sin_addr)) {
  ------------------
  |  |  969|      0|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 0, False: 0]
  |  |  ------------------
  |  |  970|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  971|      0|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  972|      0|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  973|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  974|      0|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3444|      0|						continue;
 3445|      0|					}
 3446|      0|					if (IN4_ISLOOPBACK_ADDRESS(&to->sin_addr)) {
  ------------------
  |  |  977|      0|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  |  |  ------------------
  |  |  |  Branch (977:5): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3447|      0|						continue;
 3448|      0|					}
 3449|      0|					break;
 3450|      0|#endif
 3451|      0|#ifdef INET6
 3452|      0|				case AF_INET6:
  ------------------
  |  Branch (3452:5): [True: 0, False: 0]
  ------------------
 3453|      0|					to6 = &sctp_ifap->address.sin6;
 3454|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3455|       |					if (prison_check_ip6(stcb->sctp_ep->ip_inp.inp.inp_cred,
 3456|       |					                     &to6->sin6_addr) != 0) {
 3457|       |						continue;
 3458|       |					}
 3459|       |#endif
 3460|      0|					if (IN6_IS_ADDR_LOOPBACK(&to6->sin6_addr)) {
  ------------------
  |  Branch (3460:10): [True: 0, False: 0]
  ------------------
 3461|      0|						continue;
 3462|      0|					}
 3463|      0|					if (IN6_IS_ADDR_LINKLOCAL(&to6->sin6_addr)) {
  ------------------
  |  Branch (3463:10): [True: 0, False: 0]
  ------------------
 3464|      0|						continue;
 3465|      0|					}
 3466|      0|					break;
 3467|      0|#endif
 3468|      0|				default:
  ------------------
  |  Branch (3468:5): [True: 0, False: 0]
  ------------------
 3469|      0|					continue;
 3470|      0|				}
 3471|      0|				sctp_asconf_queue_mgmt(stcb, sctp_ifap, SCTP_ADD_IP_ADDRESS);
  ------------------
  |  |  430|      0|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
 3472|      0|			}
 3473|      0|		}
 3474|      0|		SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3475|      0|	} else {
 3476|      0|		struct sctp_laddr *laddr;
 3477|       |
 3478|      0|		LIST_FOREACH(laddr, &stcb->sctp_ep->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (3478:3): [True: 0, False: 0]
  ------------------
 3479|      0|			if (laddr->ifa == NULL) {
  ------------------
  |  Branch (3479:8): [True: 0, False: 0]
  ------------------
 3480|      0|				continue;
 3481|      0|			}
 3482|      0|			if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED)
  ------------------
  |  |   90|      0|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (3482:8): [True: 0, False: 0]
  ------------------
 3483|       |				/* Address being deleted by the system, dont
 3484|       |				 * list.
 3485|       |				 */
 3486|      0|				continue;
 3487|      0|			if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|      0|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (3487:8): [True: 0, False: 0]
  ------------------
 3488|       |				/* Address being deleted on this ep
 3489|       |				 * don't list.
 3490|       |				 */
 3491|      0|				continue;
 3492|      0|			}
 3493|      0|			sctp_ifap = laddr->ifa;
 3494|      0|			switch (sctp_ifap->address.sa.sa_family) {
 3495|      0|#ifdef INET
 3496|      0|			case AF_INET:
  ------------------
  |  Branch (3496:4): [True: 0, False: 0]
  ------------------
 3497|      0|				to = &sctp_ifap->address.sin;
 3498|      0|				if (IN4_ISPRIVATE_ADDRESS(&to->sin_addr)) {
  ------------------
  |  |  969|      0|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 0, False: 0]
  |  |  ------------------
  |  |  970|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  971|      0|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  972|      0|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  973|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  974|      0|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3499|      0|					continue;
 3500|      0|				}
 3501|      0|				if (IN4_ISLOOPBACK_ADDRESS(&to->sin_addr)) {
  ------------------
  |  |  977|      0|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  |  |  ------------------
  |  |  |  Branch (977:5): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3502|      0|					continue;
 3503|      0|				}
 3504|      0|				break;
 3505|      0|#endif
 3506|      0|#ifdef INET6
 3507|      0|			case AF_INET6:
  ------------------
  |  Branch (3507:4): [True: 0, False: 0]
  ------------------
 3508|      0|				to6 = &sctp_ifap->address.sin6;
 3509|      0|				if (IN6_IS_ADDR_LOOPBACK(&to6->sin6_addr)) {
  ------------------
  |  Branch (3509:9): [True: 0, False: 0]
  ------------------
 3510|      0|					continue;
 3511|      0|				}
 3512|      0|				if (IN6_IS_ADDR_LINKLOCAL(&to6->sin6_addr)) {
  ------------------
  |  Branch (3512:9): [True: 0, False: 0]
  ------------------
 3513|      0|					continue;
 3514|      0|				}
 3515|      0|				break;
 3516|      0|#endif
 3517|      0|			default:
  ------------------
  |  Branch (3517:4): [True: 0, False: 0]
  ------------------
 3518|      0|				continue;
 3519|      0|			}
 3520|      0|			sctp_asconf_queue_mgmt(stcb, sctp_ifap, SCTP_ADD_IP_ADDRESS);
  ------------------
  |  |  430|      0|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
 3521|      0|		}
 3522|      0|	}
 3523|      0| skip_rest:
 3524|       |	/* Now we must send the asconf into the queue */
 3525|      0|	sctp_send_asconf(stcb, net, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|      0|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 3526|      0|}
sctp_asconf.c:sctp_process_asconf_add_ip:
  151|  55.8k|{
  152|  55.8k|	struct sctp_nets *net;
  153|  55.8k|	struct mbuf *m_reply = NULL;
  154|  55.8k|	union sctp_sockstore store;
  155|  55.8k|	struct sctp_paramhdr *ph;
  156|  55.8k|	uint16_t param_type, aparam_length;
  157|  55.8k|#if defined(INET) || defined(INET6)
  158|  55.8k|	uint16_t param_length;
  159|  55.8k|#endif
  160|  55.8k|	struct sockaddr *sa;
  161|  55.8k|	int zero_address = 0;
  162|  55.8k|	int bad_address = 0;
  163|  55.8k|#ifdef INET
  164|  55.8k|	struct sockaddr_in *sin;
  165|  55.8k|	struct sctp_ipv4addr_param *v4addr;
  166|  55.8k|#endif
  167|  55.8k|#ifdef INET6
  168|  55.8k|	struct sockaddr_in6 *sin6;
  169|  55.8k|	struct sctp_ipv6addr_param *v6addr;
  170|  55.8k|#endif
  171|       |
  172|  55.8k|	aparam_length = ntohs(aph->ph.param_length);
  173|  55.8k|	if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (173:6): [True: 1.05k, False: 54.7k]
  ------------------
  174|  1.05k|		return (NULL);
  175|  1.05k|	}
  176|  54.7k|	ph = (struct sctp_paramhdr *)(aph + 1);
  177|  54.7k|	param_type = ntohs(ph->param_type);
  178|  54.7k|#if defined(INET) || defined(INET6)
  179|  54.7k|	param_length = ntohs(ph->param_length);
  180|  54.7k|	if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) {
  ------------------
  |  Branch (180:6): [True: 6.93k, False: 47.8k]
  ------------------
  181|  6.93k|		return (NULL);
  182|  6.93k|	}
  183|  47.8k|#endif
  184|  47.8k|	sa = &store.sa;
  185|  47.8k|	switch (param_type) {
  186|      0|#ifdef INET
  187|  40.5k|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  40.5k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (187:2): [True: 40.5k, False: 7.29k]
  ------------------
  188|  40.5k|		if (param_length != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (188:7): [True: 14, False: 40.5k]
  ------------------
  189|       |			/* invalid param size */
  190|     14|			return (NULL);
  191|     14|		}
  192|  40.5k|		v4addr = (struct sctp_ipv4addr_param *)ph;
  193|  40.5k|		sin = &store.sin;
  194|  40.5k|		memset(sin, 0, sizeof(*sin));
  195|  40.5k|		sin->sin_family = AF_INET;
  196|       |#ifdef HAVE_SIN_LEN
  197|       |		sin->sin_len = sizeof(struct sockaddr_in);
  198|       |#endif
  199|  40.5k|		sin->sin_port = stcb->rport;
  200|  40.5k|		sin->sin_addr.s_addr = v4addr->addr;
  201|  40.5k|		if ((sin->sin_addr.s_addr == INADDR_BROADCAST) ||
  ------------------
  |  Branch (201:7): [True: 16, False: 40.5k]
  ------------------
  202|  40.5k|		    IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) {
  ------------------
  |  Branch (202:7): [True: 81, False: 40.4k]
  ------------------
  203|     97|			bad_address = 1;
  204|     97|		}
  205|  40.5k|		if (sin->sin_addr.s_addr == INADDR_ANY)
  ------------------
  |  Branch (205:7): [True: 669, False: 39.8k]
  ------------------
  206|    669|			zero_address = 1;
  207|  40.5k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding ");
  208|  40.5k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  209|  40.5k|		break;
  210|      0|#endif
  211|      0|#ifdef INET6
  212|  5.22k|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|  5.22k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (212:2): [True: 5.22k, False: 42.6k]
  ------------------
  213|  5.22k|		if (param_length != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (213:7): [True: 128, False: 5.09k]
  ------------------
  214|       |			/* invalid param size */
  215|    128|			return (NULL);
  216|    128|		}
  217|  5.09k|		v6addr = (struct sctp_ipv6addr_param *)ph;
  218|  5.09k|		sin6 = &store.sin6;
  219|  5.09k|		memset(sin6, 0, sizeof(*sin6));
  220|  5.09k|		sin6->sin6_family = AF_INET6;
  221|       |#ifdef HAVE_SIN6_LEN
  222|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
  223|       |#endif
  224|  5.09k|		sin6->sin6_port = stcb->rport;
  225|  5.09k|		memcpy((caddr_t)&sin6->sin6_addr, v6addr->addr,
  226|  5.09k|		    sizeof(struct in6_addr));
  227|  5.09k|		if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) {
  ------------------
  |  Branch (227:7): [True: 47, False: 5.05k]
  ------------------
  228|     47|			bad_address = 1;
  229|     47|		}
  230|  5.09k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
  ------------------
  |  Branch (230:7): [True: 13, False: 5.08k]
  ------------------
  231|     13|			zero_address = 1;
  232|  5.09k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding ");
  233|  5.09k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  234|  5.09k|		break;
  235|      0|#endif
  236|  2.07k|	default:
  ------------------
  |  Branch (236:2): [True: 2.07k, False: 45.7k]
  ------------------
  237|  2.07k|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  238|  2.07k|		    SCTP_CAUSE_INVALID_PARAM, (uint8_t *) aph,
  ------------------
  |  |  372|  2.07k|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
  239|  2.07k|		    aparam_length);
  240|  2.07k|		return (m_reply);
  241|  47.8k|	}			/* end switch */
  242|       |
  243|       |	/* if 0.0.0.0/::0, add the source address instead */
  244|  45.6k|	if (zero_address && SCTP_BASE_SYSCTL(sctp_nat_friendly)) {
  ------------------
  |  |  590|    682|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 682, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (244:6): [True: 682, False: 44.9k]
  ------------------
  245|    682|		sa = src;
  246|    682|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  247|    682|		        "process_asconf_add_ip: using source addr ");
  248|    682|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
  249|    682|	}
  250|  45.6k|	net = NULL;
  251|       |	/* add the address */
  252|  45.6k|	if (bad_address) {
  ------------------
  |  Branch (252:6): [True: 144, False: 45.5k]
  ------------------
  253|    144|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  254|    144|		    SCTP_CAUSE_INVALID_PARAM, (uint8_t *) aph,
  ------------------
  |  |  372|    144|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
  255|    144|		    aparam_length);
  256|  45.5k|	} else if (sctp_add_remote_addr(stcb, sa, &net, stcb->asoc.port,
  ------------------
  |  Branch (256:13): [True: 0, False: 45.5k]
  ------------------
  257|  45.5k|	                                SCTP_DONOT_SETSCOPE,
  ------------------
  |  |  822|  45.5k|#define SCTP_DONOT_SETSCOPE 0
  ------------------
  258|  45.5k|	                                SCTP_ADDR_DYNAMIC_ADDED) != 0) {
  ------------------
  |  |  814|  45.5k|#define SCTP_ADDR_DYNAMIC_ADDED 6
  ------------------
  259|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  260|      0|			"process_asconf_add_ip: error adding address\n");
  261|      0|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  262|      0|		    SCTP_CAUSE_RESOURCE_SHORTAGE, (uint8_t *) aph,
  ------------------
  |  |  382|      0|#define SCTP_CAUSE_RESOURCE_SHORTAGE	0x00a1
  ------------------
  263|      0|		    aparam_length);
  264|  45.5k|	} else {
  265|  45.5k|		if (response_required) {
  ------------------
  |  Branch (265:7): [True: 38.7k, False: 6.73k]
  ------------------
  266|  38.7k|			m_reply =
  267|  38.7k|			    sctp_asconf_success_response(aph->correlation_id);
  268|  38.7k|		}
  269|  45.5k|		if (net != NULL) {
  ------------------
  |  Branch (269:7): [True: 40.5k, False: 4.92k]
  ------------------
  270|       |			/* notify upper layer */
  271|  40.5k|			sctp_ulp_notify(SCTP_NOTIFY_ASCONF_ADD_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  714|  40.5k|#define SCTP_NOTIFY_ASCONF_ADD_IP               12
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_ASCONF_ADD_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  40.5k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  272|  40.5k|			sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  539|  40.5k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  273|  40.5k|			sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep,
  ------------------
  |  |  536|  40.5k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  274|  40.5k|					 stcb, net);
  275|  40.5k|			if (send_hb) {
  ------------------
  |  Branch (275:8): [True: 2.78k, False: 37.7k]
  ------------------
  276|  2.78k|				sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  2.78k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  277|  2.78k|			}
  278|  40.5k|		}
  279|  45.5k|	}
  280|  45.6k|	return (m_reply);
  281|  47.8k|}
sctp_asconf.c:sctp_asconf_error_response:
  100|  11.1k|{
  101|  11.1k|	struct mbuf *m_reply = NULL;
  102|  11.1k|	struct sctp_asconf_paramhdr *aph;
  103|  11.1k|	struct sctp_error_cause *error;
  104|  11.1k|	uint32_t buf_len;
  105|  11.1k|	uint16_t i, param_length, cause_length, padding_length;
  106|  11.1k|	uint8_t *tlv;
  107|       |
  108|  11.1k|	if (error_tlv == NULL) {
  ------------------
  |  Branch (108:6): [True: 0, False: 11.1k]
  ------------------
  109|      0|		tlv_length = 0;
  110|      0|	}
  111|  11.1k|	cause_length = sizeof(struct sctp_error_cause) + tlv_length;
  112|  11.1k|	param_length = sizeof(struct sctp_asconf_paramhdr) + cause_length;
  113|  11.1k|	padding_length = tlv_length % 4;
  114|  11.1k|	if (padding_length != 0) {
  ------------------
  |  Branch (114:6): [True: 155, False: 11.0k]
  ------------------
  115|    155|		padding_length = 4 - padding_length;
  116|    155|	}
  117|  11.1k|	buf_len = param_length + padding_length;
  118|  11.1k|	if (buf_len > MLEN) {
  ------------------
  |  |  138|  11.1k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  11.1k|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (118:6): [True: 65, False: 11.1k]
  ------------------
  119|     65|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  120|     65|			"asconf_error_response: tlv_length (%xh) too big\n",
  121|     65|			tlv_length);
  122|     65|		return (NULL);
  123|     65|	}
  124|  11.1k|	m_reply = sctp_get_mbuf_for_msg(buf_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  11.1k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_reply = sctp_get_mbuf_for_msg(buf_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  11.1k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  125|  11.1k|	if (m_reply == NULL) {
  ------------------
  |  Branch (125:6): [True: 0, False: 11.1k]
  ------------------
  126|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  127|      0|			"asconf_error_response: couldn't get mbuf!\n");
  128|      0|		return (NULL);
  129|      0|	}
  130|  11.1k|	aph = mtod(m_reply, struct sctp_asconf_paramhdr *);
  ------------------
  |  |   96|  11.1k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  11.1k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  131|  11.1k|	aph->ph.param_type = htons(SCTP_ERROR_CAUSE_IND);
  132|  11.1k|	aph->ph.param_length = htons(param_length);
  133|  11.1k|	aph->correlation_id = id;
  134|  11.1k|	error = (struct sctp_error_cause *)(aph + 1);
  135|  11.1k|	error->code = htons(cause);
  136|  11.1k|	error->length = htons(cause_length);
  137|  11.1k|	if (error_tlv != NULL) {
  ------------------
  |  Branch (137:6): [True: 11.1k, False: 0]
  ------------------
  138|  11.1k|		tlv = (uint8_t *) (error + 1);
  139|  11.1k|		memcpy(tlv, error_tlv, tlv_length);
  140|  11.3k|		for (i = 0; i < padding_length; i++) {
  ------------------
  |  Branch (140:15): [True: 184, False: 11.1k]
  ------------------
  141|    184|			tlv[tlv_length + i] = 0;
  142|    184|		}
  143|  11.1k|	}
  144|  11.1k|	SCTP_BUF_LEN(m_reply) = buf_len;
  ------------------
  |  |  801|  11.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  11.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  145|  11.1k|	return (m_reply);
  146|  11.1k|}
sctp_asconf.c:sctp_asconf_success_response:
   76|  51.3k|{
   77|  51.3k|	struct mbuf *m_reply = NULL;
   78|  51.3k|	struct sctp_asconf_paramhdr *aph;
   79|       |
   80|  51.3k|	m_reply = sctp_get_mbuf_for_msg(sizeof(struct sctp_asconf_paramhdr),
   81|  51.3k|					0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  51.3k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  51.3k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
   82|  51.3k|	if (m_reply == NULL) {
  ------------------
  |  Branch (82:6): [True: 0, False: 51.3k]
  ------------------
   83|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
   84|      0|			"asconf_success_response: couldn't get mbuf!\n");
   85|      0|		return (NULL);
   86|      0|	}
   87|  51.3k|	aph = mtod(m_reply, struct sctp_asconf_paramhdr *);
  ------------------
  |  |   96|  51.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  51.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
   88|  51.3k|	aph->correlation_id = id;
   89|  51.3k|	aph->ph.param_type = htons(SCTP_SUCCESS_REPORT);
   90|  51.3k|	aph->ph.param_length = sizeof(struct sctp_asconf_paramhdr);
   91|  51.3k|	SCTP_BUF_LEN(m_reply) = aph->ph.param_length;
  ------------------
  |  |  801|  51.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  51.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
   92|  51.3k|	aph->ph.param_length = htons(aph->ph.param_length);
   93|       |
   94|  51.3k|	return (m_reply);
   95|  51.3k|}
sctp_asconf.c:sctp_process_asconf_delete_ip:
  316|  16.3k|{
  317|  16.3k|	struct mbuf *m_reply = NULL;
  318|  16.3k|	union sctp_sockstore store;
  319|  16.3k|	struct sctp_paramhdr *ph;
  320|  16.3k|	uint16_t param_type, aparam_length;
  321|  16.3k|#if defined(INET) || defined(INET6)
  322|  16.3k|	uint16_t param_length;
  323|  16.3k|#endif
  324|  16.3k|	struct sockaddr *sa;
  325|  16.3k|	int zero_address = 0;
  326|  16.3k|	int result;
  327|  16.3k|#ifdef INET
  328|  16.3k|	struct sockaddr_in *sin;
  329|  16.3k|	struct sctp_ipv4addr_param *v4addr;
  330|  16.3k|#endif
  331|  16.3k|#ifdef INET6
  332|  16.3k|	struct sockaddr_in6 *sin6;
  333|  16.3k|	struct sctp_ipv6addr_param *v6addr;
  334|  16.3k|#endif
  335|       |
  336|  16.3k|	aparam_length = ntohs(aph->ph.param_length);
  337|  16.3k|	if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (337:6): [True: 931, False: 15.4k]
  ------------------
  338|    931|		return (NULL);
  339|    931|	}
  340|  15.4k|	ph = (struct sctp_paramhdr *)(aph + 1);
  341|  15.4k|	param_type = ntohs(ph->param_type);
  342|  15.4k|#if defined(INET) || defined(INET6)
  343|  15.4k|	param_length = ntohs(ph->param_length);
  344|  15.4k|	if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) {
  ------------------
  |  Branch (344:6): [True: 1.91k, False: 13.5k]
  ------------------
  345|  1.91k|		return (NULL);
  346|  1.91k|	}
  347|  13.5k|#endif
  348|  13.5k|	sa = &store.sa;
  349|  13.5k|	switch (param_type) {
  350|      0|#ifdef INET
  351|  11.9k|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  11.9k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (351:2): [True: 11.9k, False: 1.61k]
  ------------------
  352|  11.9k|		if (param_length != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (352:7): [True: 35, False: 11.8k]
  ------------------
  353|       |			/* invalid param size */
  354|     35|			return (NULL);
  355|     35|		}
  356|  11.8k|		v4addr = (struct sctp_ipv4addr_param *)ph;
  357|  11.8k|		sin = &store.sin;
  358|  11.8k|		memset(sin, 0, sizeof(*sin));
  359|  11.8k|		sin->sin_family = AF_INET;
  360|       |#ifdef HAVE_SIN_LEN
  361|       |		sin->sin_len = sizeof(struct sockaddr_in);
  362|       |#endif
  363|  11.8k|		sin->sin_port = stcb->rport;
  364|  11.8k|		sin->sin_addr.s_addr = v4addr->addr;
  365|  11.8k|		if (sin->sin_addr.s_addr == INADDR_ANY)
  ------------------
  |  Branch (365:7): [True: 5.54k, False: 6.34k]
  ------------------
  366|  5.54k|			zero_address = 1;
  367|  11.8k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  368|  11.8k|			"process_asconf_delete_ip: deleting ");
  369|  11.8k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  370|  11.8k|		break;
  371|      0|#endif
  372|      0|#ifdef INET6
  373|  1.08k|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|  1.08k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (373:2): [True: 1.08k, False: 12.4k]
  ------------------
  374|  1.08k|		if (param_length != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (374:7): [True: 35, False: 1.05k]
  ------------------
  375|       |			/* invalid param size */
  376|     35|			return (NULL);
  377|     35|		}
  378|  1.05k|		v6addr = (struct sctp_ipv6addr_param *)ph;
  379|  1.05k|		sin6 = &store.sin6;
  380|  1.05k|		memset(sin6, 0, sizeof(*sin6));
  381|  1.05k|		sin6->sin6_family = AF_INET6;
  382|       |#ifdef HAVE_SIN6_LEN
  383|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
  384|       |#endif
  385|  1.05k|		sin6->sin6_port = stcb->rport;
  386|  1.05k|		memcpy(&sin6->sin6_addr, v6addr->addr,
  387|  1.05k|		    sizeof(struct in6_addr));
  388|  1.05k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
  ------------------
  |  Branch (388:7): [True: 18, False: 1.03k]
  ------------------
  389|     18|			zero_address = 1;
  390|  1.05k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  391|  1.05k|			"process_asconf_delete_ip: deleting ");
  392|  1.05k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  393|  1.05k|		break;
  394|      0|#endif
  395|    529|	default:
  ------------------
  |  Branch (395:2): [True: 529, False: 13.0k]
  ------------------
  396|    529|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  397|    529|		    SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph,
  ------------------
  |  |  370|    529|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  398|    529|		    aparam_length);
  399|    529|		return (m_reply);
  400|  13.5k|	}
  401|       |
  402|       |	/* make sure the source address is not being deleted */
  403|  12.9k|	if (sctp_cmpaddr(sa, src)) {
  ------------------
  |  Branch (403:6): [True: 0, False: 12.9k]
  ------------------
  404|       |		/* trying to delete the source address! */
  405|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_delete_ip: tried to delete source addr\n");
  406|      0|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  407|      0|		    SCTP_CAUSE_DELETING_SRC_ADDR, (uint8_t *) aph,
  ------------------
  |  |  383|      0|#define SCTP_CAUSE_DELETING_SRC_ADDR	0x00a2
  ------------------
  408|      0|		    aparam_length);
  409|      0|		return (m_reply);
  410|      0|	}
  411|       |
  412|       |	/* if deleting 0.0.0.0/::0, delete all addresses except src addr */
  413|  12.9k|	if (zero_address && SCTP_BASE_SYSCTL(sctp_nat_friendly)) {
  ------------------
  |  |  590|  5.55k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 5.55k, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (413:6): [True: 5.55k, False: 7.37k]
  ------------------
  414|  5.55k|		result = sctp_asconf_del_remote_addrs_except(stcb, src);
  415|       |
  416|  5.55k|		if (result) {
  ------------------
  |  Branch (416:7): [True: 0, False: 5.55k]
  ------------------
  417|       |			/* src address did not exist? */
  418|      0|			SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_delete_ip: src addr does not exist?\n");
  419|       |			/* what error to reply with?? */
  420|      0|			m_reply =
  421|      0|			    sctp_asconf_error_response(aph->correlation_id,
  422|      0|			    SCTP_CAUSE_REQUEST_REFUSED, (uint8_t *) aph,
  ------------------
  |  |  385|      0|#define SCTP_CAUSE_REQUEST_REFUSED	0x00a4
  ------------------
  423|      0|			    aparam_length);
  424|  5.55k|		} else if (response_required) {
  ------------------
  |  Branch (424:14): [True: 5.01k, False: 543]
  ------------------
  425|  5.01k|			m_reply =
  426|  5.01k|			    sctp_asconf_success_response(aph->correlation_id);
  427|  5.01k|		}
  428|  5.55k|		return (m_reply);
  429|  5.55k|	}
  430|       |
  431|       |	/* delete the address */
  432|  7.37k|	result = sctp_del_remote_addr(stcb, sa);
  433|       |	/*
  434|       |	 * note if result == -2, the address doesn't exist in the asoc but
  435|       |	 * since it's being deleted anyways, we just ack the delete -- but
  436|       |	 * this probably means something has already gone awry
  437|       |	 */
  438|  7.37k|	if (result == -1) {
  ------------------
  |  Branch (438:6): [True: 0, False: 7.37k]
  ------------------
  439|       |		/* only one address in the asoc */
  440|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_delete_ip: tried to delete last IP addr!\n");
  441|      0|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  442|      0|		    SCTP_CAUSE_DELETING_LAST_ADDR, (uint8_t *) aph,
  ------------------
  |  |  381|      0|#define SCTP_CAUSE_DELETING_LAST_ADDR	0x00a0
  ------------------
  443|      0|		    aparam_length);
  444|  7.37k|	} else {
  445|  7.37k|		if (response_required) {
  ------------------
  |  Branch (445:7): [True: 6.31k, False: 1.06k]
  ------------------
  446|  6.31k|			m_reply = sctp_asconf_success_response(aph->correlation_id);
  447|  6.31k|		}
  448|       |		/* notify upper layer */
  449|  7.37k|		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  715|  7.37k|#define SCTP_NOTIFY_ASCONF_DELETE_IP            13
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  7.37k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  450|  7.37k|	}
  451|  7.37k|	return (m_reply);
  452|  12.9k|}
sctp_asconf.c:sctp_asconf_del_remote_addrs_except:
  285|  5.55k|{
  286|  5.55k|	struct sctp_nets *src_net, *net, *nnet;
  287|       |
  288|       |	/* make sure the source address exists as a destination net */
  289|  5.55k|	src_net = sctp_findnet(stcb, src);
  290|  5.55k|	if (src_net == NULL) {
  ------------------
  |  Branch (290:6): [True: 0, False: 5.55k]
  ------------------
  291|       |		/* not found */
  292|      0|		return (-1);
  293|      0|	}
  294|       |
  295|       |	/* delete all destination addresses except the source */
  296|  39.9k|	TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  5.55k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  45.5k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 39.9k, False: 5.55k]
  |  |  |  Branch (1130:24): [True: 39.9k, False: 0]
  |  |  ------------------
  |  | 1131|  39.9k|              (var) = (tvar))
  ------------------
  297|  39.9k|		if (net != src_net) {
  ------------------
  |  Branch (297:7): [True: 34.4k, False: 5.55k]
  ------------------
  298|       |			/* delete this address */
  299|  34.4k|			SCTPDBG(SCTP_DEBUG_ASCONF1,
  300|  34.4k|				"asconf_del_remote_addrs_except: deleting ");
  301|  34.4k|			SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1,
  302|  34.4k|				     (struct sockaddr *)&net->ro._l_addr);
  303|       |			/* notify upper layer */
  304|  34.4k|			sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0,
  ------------------
  |  |  715|  34.4k|#define SCTP_NOTIFY_ASCONF_DELETE_IP            13
  ------------------
  305|  34.4k|			    (struct sockaddr *)&net->ro._l_addr, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  34.4k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  306|  34.4k|			sctp_remove_net(stcb, net);
  307|  34.4k|		}
  308|  39.9k|	}
  309|  5.55k|	return (0);
  310|  5.55k|}
sctp_asconf.c:sctp_process_asconf_set_primary:
  458|  12.5k|{
  459|  12.5k|	struct mbuf *m_reply = NULL;
  460|  12.5k|	union sctp_sockstore store;
  461|  12.5k|	struct sctp_paramhdr *ph;
  462|  12.5k|	uint16_t param_type, aparam_length;
  463|  12.5k|#if defined(INET) || defined(INET6)
  464|  12.5k|	uint16_t param_length;
  465|  12.5k|#endif
  466|  12.5k|	struct sockaddr *sa;
  467|  12.5k|	int zero_address = 0;
  468|  12.5k|#ifdef INET
  469|  12.5k|	struct sockaddr_in *sin;
  470|  12.5k|	struct sctp_ipv4addr_param *v4addr;
  471|  12.5k|#endif
  472|  12.5k|#ifdef INET6
  473|  12.5k|	struct sockaddr_in6 *sin6;
  474|  12.5k|	struct sctp_ipv6addr_param *v6addr;
  475|  12.5k|#endif
  476|       |
  477|  12.5k|	aparam_length = ntohs(aph->ph.param_length);
  478|  12.5k|	if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (478:6): [True: 390, False: 12.1k]
  ------------------
  479|    390|		return (NULL);
  480|    390|	}
  481|  12.1k|	ph = (struct sctp_paramhdr *)(aph + 1);
  482|  12.1k|	param_type = ntohs(ph->param_type);
  483|  12.1k|#if defined(INET) || defined(INET6)
  484|  12.1k|	param_length = ntohs(ph->param_length);
  485|  12.1k|	if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) {
  ------------------
  |  Branch (485:6): [True: 1.74k, False: 10.3k]
  ------------------
  486|  1.74k|		return (NULL);
  487|  1.74k|	}
  488|  10.3k|#endif
  489|  10.3k|	sa = &store.sa;
  490|  10.3k|	switch (param_type) {
  491|      0|#ifdef INET
  492|  5.94k|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  5.94k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (492:2): [True: 5.94k, False: 4.41k]
  ------------------
  493|  5.94k|		if (param_length != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (493:7): [True: 10, False: 5.93k]
  ------------------
  494|       |			/* invalid param size */
  495|     10|			return (NULL);
  496|     10|		}
  497|  5.93k|		v4addr = (struct sctp_ipv4addr_param *)ph;
  498|  5.93k|		sin = &store.sin;
  499|  5.93k|		memset(sin, 0, sizeof(*sin));
  500|  5.93k|		sin->sin_family = AF_INET;
  501|       |#ifdef HAVE_SIN_LEN
  502|       |		sin->sin_len = sizeof(struct sockaddr_in);
  503|       |#endif
  504|  5.93k|		sin->sin_addr.s_addr = v4addr->addr;
  505|  5.93k|		if (sin->sin_addr.s_addr == INADDR_ANY)
  ------------------
  |  Branch (505:7): [True: 546, False: 5.39k]
  ------------------
  506|    546|			zero_address = 1;
  507|  5.93k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_set_primary: ");
  508|  5.93k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  509|  5.93k|		break;
  510|      0|#endif
  511|      0|#ifdef INET6
  512|  1.48k|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|  1.48k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (512:2): [True: 1.48k, False: 8.88k]
  ------------------
  513|  1.48k|		if (param_length != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (513:7): [True: 172, False: 1.31k]
  ------------------
  514|       |			/* invalid param size */
  515|    172|			return (NULL);
  516|    172|		}
  517|  1.31k|		v6addr = (struct sctp_ipv6addr_param *)ph;
  518|  1.31k|		sin6 = &store.sin6;
  519|  1.31k|		memset(sin6, 0, sizeof(*sin6));
  520|  1.31k|		sin6->sin6_family = AF_INET6;
  521|       |#ifdef HAVE_SIN6_LEN
  522|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
  523|       |#endif
  524|  1.31k|		memcpy((caddr_t)&sin6->sin6_addr, v6addr->addr,
  525|  1.31k|		    sizeof(struct in6_addr));
  526|  1.31k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
  ------------------
  |  Branch (526:7): [True: 12, False: 1.29k]
  ------------------
  527|     12|			zero_address = 1;
  528|  1.31k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_set_primary: ");
  529|  1.31k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  530|  1.31k|		break;
  531|      0|#endif
  532|  2.93k|	default:
  ------------------
  |  Branch (532:2): [True: 2.93k, False: 7.43k]
  ------------------
  533|  2.93k|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  534|  2.93k|		    SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph,
  ------------------
  |  |  370|  2.93k|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  535|  2.93k|		    aparam_length);
  536|  2.93k|		return (m_reply);
  537|  10.3k|	}
  538|       |
  539|       |	/* if 0.0.0.0/::0, use the source address instead */
  540|  7.24k|	if (zero_address && SCTP_BASE_SYSCTL(sctp_nat_friendly)) {
  ------------------
  |  |  590|    558|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 558, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (540:6): [True: 558, False: 6.69k]
  ------------------
  541|    558|		sa = src;
  542|    558|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  543|    558|			"process_asconf_set_primary: using source addr ");
  544|    558|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
  545|    558|	}
  546|       |	/* set the primary address */
  547|  7.24k|	if (sctp_set_primary_addr(stcb, sa, NULL) == 0) {
  ------------------
  |  Branch (547:6): [True: 1.74k, False: 5.50k]
  ------------------
  548|  1.74k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  549|  1.74k|			"process_asconf_set_primary: primary address set\n");
  550|       |		/* notify upper layer */
  551|  1.74k|		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_SET_PRIMARY, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  716|  1.74k|#define SCTP_NOTIFY_ASCONF_SET_PRIMARY          14
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_SET_PRIMARY, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  1.74k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  552|  1.74k|		if ((stcb->asoc.primary_destination->dest_state & SCTP_ADDR_REACHABLE) &&
  ------------------
  |  |  481|  1.74k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (552:7): [True: 1.74k, False: 0]
  ------------------
  553|  1.74k|		    ((stcb->asoc.primary_destination->dest_state & SCTP_ADDR_PF) == 0) &&
  ------------------
  |  |  490|  1.74k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (553:7): [True: 1.74k, False: 0]
  ------------------
  554|  1.74k|		    (stcb->asoc.alternate != NULL)) {
  ------------------
  |  Branch (554:7): [True: 1, False: 1.73k]
  ------------------
  555|      1|			sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      1|#define sctp_free_remote_addr(__net) { \
  |  |  229|      1|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 1, False: 0]
  |  |  ------------------
  |  |  230|      1|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      1|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      1|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      1|	} \
  |  |  245|      1|}
  ------------------
  556|      1|			stcb->asoc.alternate = NULL;
  557|      1|		}
  558|  1.74k|		if (response_required) {
  ------------------
  |  Branch (558:7): [True: 1.26k, False: 474]
  ------------------
  559|  1.26k|			m_reply = sctp_asconf_success_response(aph->correlation_id);
  560|  1.26k|		}
  561|       |		/* Mobility adaptation.
  562|       |		   Ideally, when the reception of SET PRIMARY with DELETE IP
  563|       |		   ADDRESS of the previous primary destination, unacknowledged
  564|       |		   DATA are retransmitted immediately to the new primary
  565|       |		   destination for seamless handover.
  566|       |		   If the destination is UNCONFIRMED and marked to REQ_PRIM,
  567|       |		   The retransmission occur when reception of the
  568|       |		   HEARTBEAT-ACK.  (See sctp_handle_heartbeat_ack in
  569|       |		   sctp_input.c)
  570|       |		   Also, when change of the primary destination, it is better
  571|       |		   that all subsequent new DATA containing already queued DATA
  572|       |		   are transmitted to the new primary destination. (by micchie)
  573|       |		 */
  574|  1.74k|		if ((sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  3.48k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 1.74k]
  |  |  ------------------
  ------------------
  575|  1.74k|		                                 SCTP_MOBILITY_BASE) ||
  576|  1.74k|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  1.74k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 1.74k]
  |  |  ------------------
  ------------------
  577|  1.74k|		                                SCTP_MOBILITY_FASTHANDOFF)) &&
  578|      0|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  1.74k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  579|  1.74k|		                                SCTP_MOBILITY_PRIM_DELETED) &&
  580|      0|		    (stcb->asoc.primary_destination->dest_state &
  ------------------
  |  Branch (580:7): [True: 0, False: 0]
  ------------------
  581|      0|		     SCTP_ADDR_UNCONFIRMED) == 0) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  582|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_PRIM_DELETED,
  ------------------
  |  |  548|      0|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  583|      0|			                stcb->sctp_ep, stcb, NULL,
  584|      0|			                SCTP_FROM_SCTP_ASCONF + SCTP_LOC_1);
  ------------------
  |  |  762|      0|#define SCTP_FROM_SCTP_ASCONF       0x80000000
  ------------------
              			                SCTP_FROM_SCTP_ASCONF + SCTP_LOC_1);
  ------------------
  |  |  769|      0|#define SCTP_LOC_1  0x00000001
  ------------------
  585|      0|			if (sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      0|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  586|      0|					SCTP_MOBILITY_FASTHANDOFF)) {
  587|      0|				sctp_assoc_immediate_retrans(stcb,
  588|      0|						stcb->asoc.primary_destination);
  589|      0|			}
  590|      0|			if (sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      0|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  591|      0|					SCTP_MOBILITY_BASE)) {
  592|      0|				sctp_move_chunks_from_net(stcb,
  593|      0|						stcb->asoc.deleted_primary);
  594|      0|			}
  595|      0|			sctp_delete_prim_timer(stcb->sctp_ep, stcb);
  596|      0|		}
  597|  5.50k|	} else {
  598|       |		/* couldn't set the requested primary address! */
  599|  5.50k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  600|  5.50k|			"process_asconf_set_primary: set primary failed!\n");
  601|       |		/* must have been an invalid address, so report */
  602|  5.50k|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  603|  5.50k|		    SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph,
  ------------------
  |  |  370|  5.50k|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  604|  5.50k|		    aparam_length);
  605|  5.50k|	}
  606|       |
  607|  7.24k|	return (m_reply);
  608|  7.24k|}

sctp_clear_chunklist:
   53|  27.8k|{
   54|  27.8k|	memset(chklist, 0, sizeof(*chklist));
   55|       |	/* chklist->num_chunks = 0; */
   56|  27.8k|}
sctp_alloc_chunklist:
   60|  27.8k|{
   61|  27.8k|	sctp_auth_chklist_t *chklist;
   62|       |
   63|  27.8k|	SCTP_MALLOC(chklist, sctp_auth_chklist_t *, sizeof(*chklist),
  ------------------
  |  |  675|  27.8k|	do {								\
  |  |  676|  27.8k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  27.8k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  27.8k|    do {								\
  |  |  |  |  198|  27.8k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  55.7k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 27.8k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  27.8k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 27.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  27.8k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 27.8k]
  |  |  ------------------
  ------------------
   64|  27.8k|		    SCTP_M_AUTH_CL);
   65|  27.8k|	if (chklist == NULL) {
  ------------------
  |  Branch (65:6): [True: 0, False: 27.8k]
  ------------------
   66|      0|		SCTPDBG(SCTP_DEBUG_AUTH1, "sctp_alloc_chunklist: failed to get memory!\n");
   67|  27.8k|	} else {
   68|  27.8k|		sctp_clear_chunklist(chklist);
   69|  27.8k|	}
   70|  27.8k|	return (chklist);
   71|  27.8k|}
sctp_free_chunklist:
   75|  27.8k|{
   76|  27.8k|	if (list != NULL)
  ------------------
  |  Branch (76:6): [True: 27.8k, False: 0]
  ------------------
   77|  27.8k|		SCTP_FREE(list, SCTP_M_AUTH_CL);
  ------------------
  |  |  679|  27.8k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  27.8k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
   78|  27.8k|}
sctp_copy_chunklist:
   82|  10.1k|{
   83|  10.1k|	sctp_auth_chklist_t *new_list;
   84|       |
   85|  10.1k|	if (list == NULL)
  ------------------
  |  Branch (85:6): [True: 0, False: 10.1k]
  ------------------
   86|      0|		return (NULL);
   87|       |
   88|       |	/* get a new list */
   89|  10.1k|	new_list = sctp_alloc_chunklist();
   90|  10.1k|	if (new_list == NULL)
  ------------------
  |  Branch (90:6): [True: 0, False: 10.1k]
  ------------------
   91|      0|		return (NULL);
   92|       |	/* copy it */
   93|  10.1k|	memcpy(new_list, list, sizeof(*new_list));
   94|       |
   95|  10.1k|	return (new_list);
   96|  10.1k|}
sctp_auth_add_chunk:
  103|  44.9k|{
  104|  44.9k|	if (list == NULL)
  ------------------
  |  Branch (104:6): [True: 0, False: 44.9k]
  ------------------
  105|      0|		return (-1);
  106|       |
  107|       |	/* is chunk restricted? */
  108|  44.9k|	if ((chunk == SCTP_INITIATION) ||
  ------------------
  |  |  455|  44.9k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (108:6): [True: 769, False: 44.1k]
  ------------------
  109|  44.1k|	    (chunk == SCTP_INITIATION_ACK) ||
  ------------------
  |  |  456|  44.1k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (109:6): [True: 407, False: 43.7k]
  ------------------
  110|  43.7k|	    (chunk == SCTP_SHUTDOWN_COMPLETE) ||
  ------------------
  |  |  468|  43.7k|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (110:6): [True: 258, False: 43.5k]
  ------------------
  111|  43.5k|	    (chunk == SCTP_AUTHENTICATION)) {
  ------------------
  |  |  470|  43.5k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (111:6): [True: 131, False: 43.3k]
  ------------------
  112|  1.56k|		return (-1);
  113|  1.56k|	}
  114|  43.3k|	if (list->chunks[chunk] == 0) {
  ------------------
  |  Branch (114:6): [True: 37.5k, False: 5.81k]
  ------------------
  115|  37.5k|		list->chunks[chunk] = 1;
  116|  37.5k|		list->num_chunks++;
  117|  37.5k|		SCTPDBG(SCTP_DEBUG_AUTH1,
  118|  37.5k|			"SCTP: added chunk %u (0x%02x) to Auth list\n",
  119|  37.5k|			chunk, chunk);
  120|  37.5k|	}
  121|  43.3k|	return (0);
  122|  44.9k|}
sctp_auth_get_chklist_size:
  145|  19.2k|{
  146|  19.2k|	if (list == NULL)
  ------------------
  |  Branch (146:6): [True: 0, False: 19.2k]
  ------------------
  147|      0|		return (0);
  148|  19.2k|	else
  149|  19.2k|		return (list->num_chunks);
  150|  19.2k|}
sctp_serialize_auth_chunks:
  158|  19.2k|{
  159|  19.2k|	int i, count = 0;
  160|       |
  161|  19.2k|	if (list == NULL)
  ------------------
  |  Branch (161:6): [True: 0, False: 19.2k]
  ------------------
  162|      0|		return (0);
  163|       |
  164|  4.95M|	for (i = 0; i < 256; i++) {
  ------------------
  |  Branch (164:14): [True: 4.93M, False: 19.2k]
  ------------------
  165|  4.93M|		if (list->chunks[i] != 0) {
  ------------------
  |  Branch (165:7): [True: 38.5k, False: 4.89M]
  ------------------
  166|  38.5k|			*ptr++ = i;
  167|  38.5k|			count++;
  168|  38.5k|		}
  169|  4.93M|	}
  170|  19.2k|	return (count);
  171|  19.2k|}
sctp_alloc_key:
  242|  18.8k|{
  243|  18.8k|	sctp_key_t *new_key;
  244|       |
  245|  18.8k|	SCTP_MALLOC(new_key, sctp_key_t *, sizeof(*new_key) + keylen,
  ------------------
  |  |  675|  18.8k|	do {								\
  |  |  676|  18.8k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  18.8k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  18.8k|    do {								\
  |  |  |  |  198|  18.8k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  37.6k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 18.8k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  18.8k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 18.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  18.8k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 18.8k]
  |  |  ------------------
  ------------------
  246|  18.8k|		    SCTP_M_AUTH_KY);
  247|  18.8k|	if (new_key == NULL) {
  ------------------
  |  Branch (247:6): [True: 0, False: 18.8k]
  ------------------
  248|       |		/* out of memory */
  249|      0|		return (NULL);
  250|      0|	}
  251|  18.8k|	new_key->keylen = keylen;
  252|  18.8k|	return (new_key);
  253|  18.8k|}
sctp_free_key:
  257|  50.3k|{
  258|  50.3k|	if (key != NULL)
  ------------------
  |  Branch (258:6): [True: 18.8k, False: 31.5k]
  ------------------
  259|  50.3k|		SCTP_FREE(key,SCTP_M_AUTH_KY);
  ------------------
  |  |  679|  18.8k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  18.8k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  260|  50.3k|}
sctp_compute_hashkey:
  400|    764|{
  401|    764|	uint32_t keylen;
  402|    764|	sctp_key_t *new_key;
  403|    764|	uint8_t *key_ptr;
  404|       |
  405|    764|	keylen = sctp_get_keylen(key1) + sctp_get_keylen(key2) +
  406|    764|	    sctp_get_keylen(shared);
  407|       |
  408|    764|	if (keylen > 0) {
  ------------------
  |  Branch (408:6): [True: 764, False: 0]
  ------------------
  409|       |		/* get space for the new key */
  410|    764|		new_key = sctp_alloc_key(keylen);
  411|    764|		if (new_key == NULL) {
  ------------------
  |  Branch (411:7): [True: 0, False: 764]
  ------------------
  412|       |			/* out of memory */
  413|      0|			return (NULL);
  414|      0|		}
  415|    764|		new_key->keylen = keylen;
  416|    764|		key_ptr = new_key->key;
  417|    764|	} else {
  418|       |		/* all keys empty/null?! */
  419|      0|		return (NULL);
  420|      0|	}
  421|       |
  422|       |	/* concatenate the keys */
  423|    764|	if (sctp_compare_key(key1, key2) <= 0) {
  ------------------
  |  Branch (423:6): [True: 758, False: 6]
  ------------------
  424|       |		/* key is shared + key1 + key2 */
  425|    758|		if (sctp_get_keylen(shared)) {
  ------------------
  |  Branch (425:7): [True: 0, False: 758]
  ------------------
  426|      0|			memcpy(key_ptr, shared->key, shared->keylen);
  427|      0|			key_ptr += shared->keylen;
  428|      0|		}
  429|    758|		if (sctp_get_keylen(key1)) {
  ------------------
  |  Branch (429:7): [True: 758, False: 0]
  ------------------
  430|    758|			memcpy(key_ptr, key1->key, key1->keylen);
  431|    758|			key_ptr += key1->keylen;
  432|    758|		}
  433|    758|		if (sctp_get_keylen(key2)) {
  ------------------
  |  Branch (433:7): [True: 758, False: 0]
  ------------------
  434|    758|			memcpy(key_ptr, key2->key, key2->keylen);
  435|    758|		}
  436|    758|	} else {
  437|       |		/* key is shared + key2 + key1 */
  438|      6|		if (sctp_get_keylen(shared)) {
  ------------------
  |  Branch (438:7): [True: 0, False: 6]
  ------------------
  439|      0|			memcpy(key_ptr, shared->key, shared->keylen);
  440|      0|			key_ptr += shared->keylen;
  441|      0|		}
  442|      6|		if (sctp_get_keylen(key2)) {
  ------------------
  |  Branch (442:7): [True: 6, False: 0]
  ------------------
  443|      6|			memcpy(key_ptr, key2->key, key2->keylen);
  444|      6|			key_ptr += key2->keylen;
  445|      6|		}
  446|      6|		if (sctp_get_keylen(key1)) {
  ------------------
  |  Branch (446:7): [True: 6, False: 0]
  ------------------
  447|      6|			memcpy(key_ptr, key1->key, key1->keylen);
  448|      6|		}
  449|      6|	}
  450|    764|	return (new_key);
  451|    764|}
sctp_alloc_sharedkey:
  455|  20.3k|{
  456|  20.3k|	sctp_sharedkey_t *new_key;
  457|       |
  458|  20.3k|	SCTP_MALLOC(new_key, sctp_sharedkey_t *, sizeof(*new_key),
  ------------------
  |  |  675|  20.3k|	do {								\
  |  |  676|  20.3k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  20.3k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  20.3k|    do {								\
  |  |  |  |  198|  20.3k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  40.6k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 20.3k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  20.3k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 20.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  20.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 20.3k]
  |  |  ------------------
  ------------------
  459|  20.3k|		    SCTP_M_AUTH_KY);
  460|  20.3k|	if (new_key == NULL) {
  ------------------
  |  Branch (460:6): [True: 0, False: 20.3k]
  ------------------
  461|       |		/* out of memory */
  462|      0|		return (NULL);
  463|      0|	}
  464|  20.3k|	new_key->keyid = 0;
  465|       |	new_key->key = NULL;
  466|  20.3k|	new_key->refcount = 1;
  467|  20.3k|	new_key->deactivated = 0;
  468|  20.3k|	return (new_key);
  469|  20.3k|}
sctp_free_sharedkey:
  473|  20.3k|{
  474|  20.3k|	if (skey == NULL)
  ------------------
  |  Branch (474:6): [True: 0, False: 20.3k]
  ------------------
  475|      0|		return;
  476|       |
  477|  20.3k|	if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&skey->refcount)) {
  ------------------
  |  |  115|  20.3k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  ------------------
  |  |  |  |  103|  20.3k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  ------------------
  |  |  |  Branch (115:49): [True: 20.3k, False: 0]
  |  |  ------------------
  ------------------
  478|  20.3k|		if (skey->key != NULL)
  ------------------
  |  Branch (478:7): [True: 0, False: 20.3k]
  ------------------
  479|      0|			sctp_free_key(skey->key);
  480|  20.3k|		SCTP_FREE(skey, SCTP_M_AUTH_KY);
  ------------------
  |  |  679|  20.3k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  20.3k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  481|  20.3k|	}
  482|  20.3k|}
sctp_find_sharedkey:
  486|    764|{
  487|    764|	sctp_sharedkey_t *skey;
  488|       |
  489|    764|	LIST_FOREACH(skey, shared_keys, next) {
  ------------------
  |  Branch (489:2): [True: 764, False: 0]
  ------------------
  490|    764|		if (skey->keyid == key_id)
  ------------------
  |  Branch (490:7): [True: 764, False: 0]
  ------------------
  491|    764|			return (skey);
  492|    764|	}
  493|      0|	return (NULL);
  494|    764|}
sctp_insert_sharedkey:
  499|  20.3k|{
  500|  20.3k|	sctp_sharedkey_t *skey;
  501|       |
  502|  20.3k|	if ((shared_keys == NULL) || (new_skey == NULL))
  ------------------
  |  Branch (502:6): [True: 0, False: 20.3k]
  |  Branch (502:31): [True: 0, False: 20.3k]
  ------------------
  503|      0|		return (EINVAL);
  504|       |
  505|       |	/* insert into an empty list? */
  506|  20.3k|	if (LIST_EMPTY(shared_keys)) {
  ------------------
  |  Branch (506:6): [True: 20.3k, False: 0]
  ------------------
  507|  20.3k|		LIST_INSERT_HEAD(shared_keys, new_skey, next);
  ------------------
  |  Branch (507:3): [True: 0, False: 20.3k]
  |  Branch (507:3): [Folded, False: 20.3k]
  ------------------
  508|  20.3k|		return (0);
  509|  20.3k|	}
  510|       |	/* insert into the existing list, ordered by key id */
  511|  20.3k|	LIST_FOREACH(skey, shared_keys, next) {
  ------------------
  |  Branch (511:2): [True: 0, False: 0]
  ------------------
  512|      0|		if (new_skey->keyid < skey->keyid) {
  ------------------
  |  Branch (512:7): [True: 0, False: 0]
  ------------------
  513|       |			/* insert it before here */
  514|      0|			LIST_INSERT_BEFORE(skey, new_skey, next);
  ------------------
  |  Branch (514:4): [Folded, False: 0]
  ------------------
  515|      0|			return (0);
  516|      0|		} else if (new_skey->keyid == skey->keyid) {
  ------------------
  |  Branch (516:14): [True: 0, False: 0]
  ------------------
  517|       |			/* replace the existing key */
  518|       |			/* verify this key *can* be replaced */
  519|      0|			if ((skey->deactivated) || (skey->refcount > 1)) {
  ------------------
  |  Branch (519:8): [True: 0, False: 0]
  |  Branch (519:31): [True: 0, False: 0]
  ------------------
  520|      0|				SCTPDBG(SCTP_DEBUG_AUTH1,
  521|      0|					"can't replace shared key id %u\n",
  522|      0|					new_skey->keyid);
  523|      0|				return (EBUSY);
  524|      0|			}
  525|      0|			SCTPDBG(SCTP_DEBUG_AUTH1,
  526|      0|				"replacing shared key id %u\n",
  527|      0|				new_skey->keyid);
  528|      0|			LIST_INSERT_BEFORE(skey, new_skey, next);
  ------------------
  |  Branch (528:4): [Folded, False: 0]
  ------------------
  529|      0|			LIST_REMOVE(skey, next);
  ------------------
  |  Branch (529:4): [True: 0, False: 0]
  |  Branch (529:4): [Folded, False: 0]
  ------------------
  530|      0|			sctp_free_sharedkey(skey);
  531|      0|			return (0);
  532|      0|		}
  533|      0|		if (LIST_NEXT(skey, next) == NULL) {
  ------------------
  |  Branch (533:7): [True: 0, False: 0]
  ------------------
  534|       |			/* belongs at the end of the list */
  535|      0|			LIST_INSERT_AFTER(skey, new_skey, next);
  ------------------
  |  Branch (535:4): [True: 0, False: 0]
  |  Branch (535:4): [Folded, False: 0]
  ------------------
  536|      0|			return (0);
  537|      0|		}
  538|      0|	}
  539|       |	/* shouldn't reach here */
  540|      0|	return (EINVAL);
  541|      0|}
sctp_copy_skeylist:
  607|  10.1k|{
  608|  10.1k|	sctp_sharedkey_t *skey, *new_skey;
  609|  10.1k|	int count = 0;
  610|       |
  611|  10.1k|	if ((src == NULL) || (dest == NULL))
  ------------------
  |  Branch (611:6): [True: 0, False: 10.1k]
  |  Branch (611:23): [True: 0, False: 10.1k]
  ------------------
  612|      0|		return (0);
  613|  10.1k|	LIST_FOREACH(skey, src, next) {
  ------------------
  |  Branch (613:2): [True: 10.1k, False: 10.1k]
  ------------------
  614|  10.1k|		new_skey = sctp_copy_sharedkey(skey);
  615|  10.1k|		if (new_skey != NULL) {
  ------------------
  |  Branch (615:7): [True: 10.1k, False: 0]
  ------------------
  616|  10.1k|			if (sctp_insert_sharedkey(dest, new_skey)) {
  ------------------
  |  Branch (616:8): [True: 0, False: 10.1k]
  ------------------
  617|      0|				sctp_free_sharedkey(new_skey);
  618|  10.1k|			} else {
  619|  10.1k|				count++;
  620|  10.1k|			}
  621|  10.1k|		}
  622|  10.1k|	}
  623|  10.1k|	return (count);
  624|  10.1k|}
sctp_alloc_hmaclist:
  628|  27.7k|{
  629|  27.7k|	sctp_hmaclist_t *new_list;
  630|  27.7k|	int alloc_size;
  631|       |
  632|  27.7k|	alloc_size = sizeof(*new_list) + num_hmacs * sizeof(new_list->hmac[0]);
  633|  27.7k|	SCTP_MALLOC(new_list, sctp_hmaclist_t *, alloc_size,
  ------------------
  |  |  675|  27.7k|	do {								\
  |  |  676|  27.7k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  27.7k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  27.7k|    do {								\
  |  |  |  |  198|  27.7k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  55.5k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 27.7k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  27.7k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 27.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  27.7k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 27.7k]
  |  |  ------------------
  ------------------
  634|  27.7k|		    SCTP_M_AUTH_HL);
  635|  27.7k|	if (new_list == NULL) {
  ------------------
  |  Branch (635:6): [True: 0, False: 27.7k]
  ------------------
  636|       |		/* out of memory */
  637|      0|		return (NULL);
  638|      0|	}
  639|  27.7k|	new_list->max_algo = num_hmacs;
  640|  27.7k|	new_list->num_algo = 0;
  641|  27.7k|	return (new_list);
  642|  27.7k|}
sctp_free_hmaclist:
  646|  27.7k|{
  647|  27.7k|	if (list != NULL) {
  ------------------
  |  Branch (647:6): [True: 27.7k, False: 0]
  ------------------
  648|  27.7k|		SCTP_FREE(list,SCTP_M_AUTH_HL);
  ------------------
  |  |  679|  27.7k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  27.7k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  649|  27.7k|	}
  650|  27.7k|}
sctp_auth_add_hmacid:
  654|  27.3k|{
  655|  27.3k|	int i;
  656|  27.3k|	if (list == NULL)
  ------------------
  |  Branch (656:6): [True: 0, False: 27.3k]
  ------------------
  657|      0|		return (-1);
  658|  27.3k|	if (list->num_algo == list->max_algo) {
  ------------------
  |  Branch (658:6): [True: 0, False: 27.3k]
  ------------------
  659|      0|		SCTPDBG(SCTP_DEBUG_AUTH1,
  660|      0|			"SCTP: HMAC id list full, ignoring add %u\n", hmac_id);
  661|      0|		return (-1);
  662|      0|	}
  663|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  664|       |	if ((hmac_id != SCTP_AUTH_HMAC_ID_SHA1) &&
  665|       |	    (hmac_id != SCTP_AUTH_HMAC_ID_SHA256)) {
  666|       |#else
  667|  27.3k|	if (hmac_id != SCTP_AUTH_HMAC_ID_SHA1) {
  ------------------
  |  |  691|  27.3k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (667:6): [True: 9.63k, False: 17.7k]
  ------------------
  668|  9.63k|#endif
  669|  9.63k|		return (-1);
  670|  9.63k|	}
  671|       |	/* Now is it already in the list */
  672|  17.7k|	for (i = 0; i < list->num_algo; i++) {
  ------------------
  |  Branch (672:14): [True: 95, False: 17.6k]
  ------------------
  673|     95|		if (list->hmac[i] == hmac_id) {
  ------------------
  |  Branch (673:7): [True: 95, False: 0]
  ------------------
  674|       |			/* already in list */
  675|     95|			return (-1);
  676|     95|		}
  677|     95|	}
  678|  17.6k|	SCTPDBG(SCTP_DEBUG_AUTH1, "SCTP: add HMAC id %u to list\n", hmac_id);
  679|  17.6k|	list->hmac[list->num_algo++] = hmac_id;
  680|  17.6k|	return (0);
  681|  17.7k|}
sctp_copy_hmaclist:
  685|  10.1k|{
  686|  10.1k|	sctp_hmaclist_t *new_list;
  687|  10.1k|	int i;
  688|       |
  689|  10.1k|	if (list == NULL)
  ------------------
  |  Branch (689:6): [True: 0, False: 10.1k]
  ------------------
  690|      0|		return (NULL);
  691|       |	/* get a new list */
  692|  10.1k|	new_list = sctp_alloc_hmaclist(list->max_algo);
  693|  10.1k|	if (new_list == NULL)
  ------------------
  |  Branch (693:6): [True: 0, False: 10.1k]
  ------------------
  694|      0|		return (NULL);
  695|       |	/* copy it */
  696|  10.1k|	new_list->max_algo = list->max_algo;
  697|  10.1k|	new_list->num_algo = list->num_algo;
  698|  20.3k|	for (i = 0; i < list->num_algo; i++)
  ------------------
  |  Branch (698:14): [True: 10.1k, False: 10.1k]
  ------------------
  699|  10.1k|		new_list->hmac[i] = list->hmac[i];
  700|  10.1k|	return (new_list);
  701|  10.1k|}
sctp_default_supported_hmaclist:
  705|  10.1k|{
  706|  10.1k|	sctp_hmaclist_t *new_list;
  707|       |
  708|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  709|       |	new_list = sctp_alloc_hmaclist(2);
  710|       |#else
  711|  10.1k|	new_list = sctp_alloc_hmaclist(1);
  712|  10.1k|#endif
  713|  10.1k|	if (new_list == NULL)
  ------------------
  |  Branch (713:6): [True: 0, False: 10.1k]
  ------------------
  714|      0|		return (NULL);
  715|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  716|       |	/* We prefer SHA256, so list it first */
  717|       |	(void)sctp_auth_add_hmacid(new_list, SCTP_AUTH_HMAC_ID_SHA256);
  718|       |#endif
  719|  10.1k|	(void)sctp_auth_add_hmacid(new_list, SCTP_AUTH_HMAC_ID_SHA1);
  ------------------
  |  |  691|  10.1k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  720|  10.1k|	return (new_list);
  721|  10.1k|}
sctp_negotiate_hmacid:
  729|  7.88k|{
  730|  7.88k|	int i, j;
  731|       |
  732|  7.88k|	if ((local == NULL) || (peer == NULL))
  ------------------
  |  Branch (732:6): [True: 0, False: 7.88k]
  |  Branch (732:25): [True: 462, False: 7.42k]
  ------------------
  733|    462|		return (SCTP_AUTH_HMAC_ID_RSVD);
  ------------------
  |  |  690|    462|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  734|       |
  735|  7.42k|	for (i = 0; i < peer->num_algo; i++) {
  ------------------
  |  Branch (735:14): [True: 7.42k, False: 0]
  ------------------
  736|  7.42k|		for (j = 0; j < local->num_algo; j++) {
  ------------------
  |  Branch (736:15): [True: 7.42k, False: 0]
  ------------------
  737|  7.42k|			if (peer->hmac[i] == local->hmac[j]) {
  ------------------
  |  Branch (737:8): [True: 7.42k, False: 0]
  ------------------
  738|       |				/* found the "best" one */
  739|  7.42k|				SCTPDBG(SCTP_DEBUG_AUTH1,
  740|  7.42k|					"SCTP: negotiated peer HMAC id %u\n",
  741|  7.42k|					peer->hmac[i]);
  742|  7.42k|				return (peer->hmac[i]);
  743|  7.42k|			}
  744|  7.42k|		}
  745|  7.42k|	}
  746|       |	/* didn't find one! */
  747|      0|	return (SCTP_AUTH_HMAC_ID_RSVD);
  ------------------
  |  |  690|      0|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  748|  7.42k|}
sctp_serialize_hmaclist:
  756|  29.4k|{
  757|  29.4k|	int i;
  758|  29.4k|	uint16_t hmac_id;
  759|       |
  760|  29.4k|	if (list == NULL)
  ------------------
  |  Branch (760:6): [True: 0, False: 29.4k]
  ------------------
  761|      0|		return (0);
  762|       |
  763|  58.8k|	for (i = 0; i < list->num_algo; i++) {
  ------------------
  |  Branch (763:14): [True: 29.4k, False: 29.4k]
  ------------------
  764|       |		hmac_id = htons(list->hmac[i]);
  765|  29.4k|		memcpy(ptr, &hmac_id, sizeof(hmac_id));
  766|  29.4k|		ptr += sizeof(hmac_id);
  767|  29.4k|	}
  768|  29.4k|	return (list->num_algo * sizeof(hmac_id));
  769|  29.4k|}
sctp_verify_hmac_param:
  773|  7.45k|{
  774|  7.45k|	uint32_t i;
  775|       |
  776|  15.5k|	for (i = 0; i < num_hmacs; i++) {
  ------------------
  |  Branch (776:14): [True: 15.4k, False: 21]
  ------------------
  777|  15.4k|		if (ntohs(hmacs->hmac_ids[i]) == SCTP_AUTH_HMAC_ID_SHA1) {
  ------------------
  |  |  691|  15.4k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (777:7): [True: 7.43k, False: 8.04k]
  ------------------
  778|  7.43k|			return (0);
  779|  7.43k|		}
  780|  15.4k|	}
  781|     21|	return (-1);
  782|  7.45k|}
sctp_free_authinfo:
  802|  10.1k|{
  803|  10.1k|	if (authinfo == NULL)
  ------------------
  |  Branch (803:6): [True: 0, False: 10.1k]
  ------------------
  804|      0|		return;
  805|       |
  806|  10.1k|	if (authinfo->random != NULL)
  ------------------
  |  Branch (806:6): [True: 10.1k, False: 0]
  ------------------
  807|  10.1k|		sctp_free_key(authinfo->random);
  808|  10.1k|	if (authinfo->peer_random != NULL)
  ------------------
  |  Branch (808:6): [True: 7.88k, False: 2.28k]
  ------------------
  809|  7.88k|		sctp_free_key(authinfo->peer_random);
  810|  10.1k|	if (authinfo->assoc_key != NULL)
  ------------------
  |  Branch (810:6): [True: 764, False: 9.40k]
  ------------------
  811|    764|		sctp_free_key(authinfo->assoc_key);
  812|  10.1k|	if (authinfo->recv_key != NULL)
  ------------------
  |  Branch (812:6): [True: 0, False: 10.1k]
  ------------------
  813|      0|		sctp_free_key(authinfo->recv_key);
  814|       |
  815|       |	/* We are NOT dynamically allocating authinfo's right now... */
  816|       |	/* SCTP_FREE(authinfo, SCTP_M_AUTH_??); */
  817|  10.1k|}
sctp_get_auth_chunk_len:
  821|    929|{
  822|    929|	int size;
  823|       |
  824|    929|	size = sizeof(struct sctp_auth_chunk) + sctp_get_hmac_digest_len(hmac_algo);
  825|    929|	return (SCTP_SIZE32(size));
  ------------------
  |  |  383|    929|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  826|    929|}
sctp_get_hmac_digest_len:
  830|  4.01k|{
  831|  4.01k|	switch (hmac_algo) {
  832|  3.95k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  3.95k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (832:2): [True: 3.95k, False: 66]
  ------------------
  833|  3.95k|		return (SCTP_AUTH_DIGEST_LEN_SHA1);
  ------------------
  |  |   41|  3.95k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  ------------------
  834|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  835|       |	case SCTP_AUTH_HMAC_ID_SHA256:
  836|       |		return (SCTP_AUTH_DIGEST_LEN_SHA256);
  837|       |#endif
  838|     66|	default:
  ------------------
  |  Branch (838:2): [True: 66, False: 3.95k]
  ------------------
  839|       |		/* unknown HMAC algorithm: can't do anything */
  840|     66|		return (0);
  841|  4.01k|	} /* end switch */
  842|  4.01k|}
sctp_hmac_m:
  996|    772|{
  997|    772|	uint32_t digestlen;
  998|    772|	uint32_t blocklen;
  999|    772|	sctp_hash_context_t ctx;
 1000|    772|	uint8_t ipad[128], opad[128];	/* keyed hash inner/outer pads */
 1001|    772|	uint8_t temp[SCTP_AUTH_DIGEST_LEN_MAX];
 1002|    772|	uint32_t i;
 1003|    772|	struct mbuf *m_tmp;
 1004|       |
 1005|       |	/* sanity check the material and length */
 1006|    772|	if ((key == NULL) || (keylen == 0) || (m == NULL) || (digest == NULL)) {
  ------------------
  |  Branch (1006:6): [True: 0, False: 772]
  |  Branch (1006:23): [True: 0, False: 772]
  |  Branch (1006:40): [True: 0, False: 772]
  |  Branch (1006:55): [True: 0, False: 772]
  ------------------
 1007|       |		/* can't do HMAC with empty key or text or digest store */
 1008|      0|		return (0);
 1009|      0|	}
 1010|       |	/* validate the hmac algo and get the digest length */
 1011|    772|	digestlen = sctp_get_hmac_digest_len(hmac_algo);
 1012|    772|	if (digestlen == 0)
  ------------------
  |  Branch (1012:6): [True: 0, False: 772]
  ------------------
 1013|      0|		return (0);
 1014|       |
 1015|       |	/* hash the key if it is longer than the hash block size */
 1016|    772|	blocklen = sctp_get_hmac_block_len(hmac_algo);
 1017|    772|	if (keylen > blocklen) {
  ------------------
  |  Branch (1017:6): [True: 0, False: 772]
  ------------------
 1018|      0|		sctp_hmac_init(hmac_algo, &ctx);
 1019|      0|		sctp_hmac_update(hmac_algo, &ctx, key, keylen);
 1020|      0|		sctp_hmac_final(hmac_algo, &ctx, temp);
 1021|       |		/* set the hashed key as the key */
 1022|      0|		keylen = digestlen;
 1023|      0|		key = temp;
 1024|      0|	}
 1025|       |	/* initialize the inner/outer pads with the key and "append" zeroes */
 1026|    772|	memset(ipad, 0, blocklen);
 1027|    772|	memset(opad, 0, blocklen);
 1028|    772|	memcpy(ipad, key, keylen);
 1029|    772|	memcpy(opad, key, keylen);
 1030|       |
 1031|       |	/* XOR the key with ipad and opad values */
 1032|  50.1k|	for (i = 0; i < blocklen; i++) {
  ------------------
  |  Branch (1032:14): [True: 49.4k, False: 772]
  ------------------
 1033|  49.4k|		ipad[i] ^= 0x36;
 1034|  49.4k|		opad[i] ^= 0x5c;
 1035|  49.4k|	}
 1036|       |
 1037|       |	/* perform inner hash */
 1038|    772|	sctp_hmac_init(hmac_algo, &ctx);
 1039|    772|	sctp_hmac_update(hmac_algo, &ctx, ipad, blocklen);
 1040|       |	/* find the correct starting mbuf and offset (get start of text) */
 1041|    772|	m_tmp = m;
 1042|  1.38k|	while ((m_tmp != NULL) && (m_offset >= (uint32_t) SCTP_BUF_LEN(m_tmp))) {
  ------------------
  |  |  801|  1.38k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.38k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (1042:9): [True: 1.38k, False: 0]
  |  Branch (1042:28): [True: 617, False: 772]
  ------------------
 1043|    617|		m_offset -= SCTP_BUF_LEN(m_tmp);
  ------------------
  |  |  801|    617|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    617|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1044|    617|		m_tmp = SCTP_BUF_NEXT(m_tmp);
  ------------------
  |  |  802|    617|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    617|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 1045|    617|	}
 1046|       |	/* now use the rest of the mbuf chain for the text */
 1047|  17.6k|	while (m_tmp != NULL) {
  ------------------
  |  Branch (1047:9): [True: 16.8k, False: 772]
  ------------------
 1048|  16.8k|		if ((SCTP_BUF_NEXT(m_tmp) == NULL) && trailer) {
  ------------------
  |  |  802|  16.8k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  16.8k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (1048:7): [True: 772, False: 16.1k]
  |  Branch (1048:41): [True: 0, False: 772]
  ------------------
 1049|      0|			sctp_hmac_update(hmac_algo, &ctx, mtod(m_tmp, uint8_t *) + m_offset,
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1050|      0|					 SCTP_BUF_LEN(m_tmp) - (trailer+m_offset));
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1051|  16.8k|		} else {
 1052|  16.8k|			sctp_hmac_update(hmac_algo, &ctx, mtod(m_tmp, uint8_t *) + m_offset,
  ------------------
  |  |   96|  16.8k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  16.8k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1053|  16.8k|					 SCTP_BUF_LEN(m_tmp) - m_offset);
  ------------------
  |  |  801|  16.8k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  16.8k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1054|  16.8k|		}
 1055|       |
 1056|       |		/* clear the offset since it's only for the first mbuf */
 1057|  16.8k|		m_offset = 0;
 1058|  16.8k|		m_tmp = SCTP_BUF_NEXT(m_tmp);
  ------------------
  |  |  802|  16.8k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  16.8k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 1059|  16.8k|	}
 1060|    772|	sctp_hmac_final(hmac_algo, &ctx, temp);
 1061|       |
 1062|       |	/* perform outer hash */
 1063|    772|	sctp_hmac_init(hmac_algo, &ctx);
 1064|    772|	sctp_hmac_update(hmac_algo, &ctx, opad, blocklen);
 1065|    772|	sctp_hmac_update(hmac_algo, &ctx, temp, digestlen);
 1066|    772|	sctp_hmac_final(hmac_algo, &ctx, digest);
 1067|       |
 1068|    772|	return (digestlen);
 1069|    772|}
sctp_compute_hmac_m:
 1113|    772|{
 1114|    772|	uint32_t digestlen;
 1115|    772|	uint32_t blocklen;
 1116|    772|	sctp_hash_context_t ctx;
 1117|    772|	uint8_t temp[SCTP_AUTH_DIGEST_LEN_MAX];
 1118|       |
 1119|       |	/* sanity check */
 1120|    772|	if ((key == NULL) || (m == NULL) || (digest == NULL)) {
  ------------------
  |  Branch (1120:6): [True: 0, False: 772]
  |  Branch (1120:23): [True: 0, False: 772]
  |  Branch (1120:38): [True: 0, False: 772]
  ------------------
 1121|       |		/* can't do HMAC with empty key or text or digest store */
 1122|      0|		return (0);
 1123|      0|	}
 1124|       |	/* validate the hmac algo and get the digest length */
 1125|    772|	digestlen = sctp_get_hmac_digest_len(hmac_algo);
 1126|    772|	if (digestlen == 0)
  ------------------
  |  Branch (1126:6): [True: 0, False: 772]
  ------------------
 1127|      0|		return (0);
 1128|       |
 1129|       |	/* hash the key if it is longer than the hash block size */
 1130|    772|	blocklen = sctp_get_hmac_block_len(hmac_algo);
 1131|    772|	if (key->keylen > blocklen) {
  ------------------
  |  Branch (1131:6): [True: 764, False: 8]
  ------------------
 1132|    764|		sctp_hmac_init(hmac_algo, &ctx);
 1133|    764|		sctp_hmac_update(hmac_algo, &ctx, key->key, key->keylen);
 1134|    764|		sctp_hmac_final(hmac_algo, &ctx, temp);
 1135|       |		/* save the hashed key as the new key */
 1136|    764|		key->keylen = digestlen;
 1137|    764|		memcpy(key->key, temp, key->keylen);
 1138|    764|	}
 1139|    772|	return (sctp_hmac_m(hmac_algo, key->key, key->keylen, m, m_offset, digest, 0));
 1140|    772|}
sctp_clear_cachedkeys:
 1165|  15.7k|{
 1166|  15.7k|	if (stcb == NULL)
  ------------------
  |  Branch (1166:6): [True: 0, False: 15.7k]
  ------------------
 1167|      0|		return;
 1168|       |
 1169|  15.7k|	if (keyid == stcb->asoc.authinfo.assoc_keyid) {
  ------------------
  |  Branch (1169:6): [True: 15.7k, False: 0]
  ------------------
 1170|  15.7k|		sctp_free_key(stcb->asoc.authinfo.assoc_key);
 1171|  15.7k|		stcb->asoc.authinfo.assoc_key = NULL;
 1172|  15.7k|	}
 1173|  15.7k|	if (keyid == stcb->asoc.authinfo.recv_keyid) {
  ------------------
  |  Branch (1173:6): [True: 15.7k, False: 0]
  ------------------
 1174|  15.7k|		sctp_free_key(stcb->asoc.authinfo.recv_key);
 1175|       |		stcb->asoc.authinfo.recv_key = NULL;
 1176|  15.7k|	}
 1177|  15.7k|}
sctp_fill_hmac_digest_m:
 1523|    772|{
 1524|    772|	uint32_t digestlen;
 1525|    772|	sctp_sharedkey_t *skey;
 1526|    772|	sctp_key_t *key;
 1527|       |
 1528|    772|	if ((stcb == NULL) || (auth == NULL))
  ------------------
  |  Branch (1528:6): [True: 0, False: 772]
  |  Branch (1528:24): [True: 0, False: 772]
  ------------------
 1529|      0|		return;
 1530|       |
 1531|       |	/* zero the digest + chunk padding */
 1532|    772|	digestlen = sctp_get_hmac_digest_len(stcb->asoc.peer_hmac_id);
 1533|    772|	memset(auth->hmac, 0, SCTP_SIZE32(digestlen));
  ------------------
  |  |  383|    772|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1534|       |
 1535|       |	/* is the desired key cached? */
 1536|    772|	if ((keyid != stcb->asoc.authinfo.assoc_keyid) ||
  ------------------
  |  Branch (1536:6): [True: 0, False: 772]
  ------------------
 1537|    772|	    (stcb->asoc.authinfo.assoc_key == NULL)) {
  ------------------
  |  Branch (1537:6): [True: 764, False: 8]
  ------------------
 1538|    764|		if (stcb->asoc.authinfo.assoc_key != NULL) {
  ------------------
  |  Branch (1538:7): [True: 0, False: 764]
  ------------------
 1539|       |			/* free the old cached key */
 1540|      0|			sctp_free_key(stcb->asoc.authinfo.assoc_key);
 1541|      0|		}
 1542|    764|		skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, keyid);
 1543|       |		/* the only way skey is NULL is if null key id 0 is used */
 1544|    764|		if (skey != NULL)
  ------------------
  |  Branch (1544:7): [True: 764, False: 0]
  ------------------
 1545|    764|			key = skey->key;
 1546|      0|		else
 1547|      0|			key = NULL;
 1548|       |		/* compute a new assoc key and cache it */
 1549|    764|		stcb->asoc.authinfo.assoc_key =
 1550|    764|		    sctp_compute_hashkey(stcb->asoc.authinfo.random,
 1551|    764|					 stcb->asoc.authinfo.peer_random, key);
 1552|    764|		stcb->asoc.authinfo.assoc_keyid = keyid;
 1553|    764|		SCTPDBG(SCTP_DEBUG_AUTH1, "caching key id %u\n",
 1554|    764|			stcb->asoc.authinfo.assoc_keyid);
 1555|       |#ifdef SCTP_DEBUG
 1556|       |		if (SCTP_AUTH_DEBUG)
 1557|       |			sctp_print_key(stcb->asoc.authinfo.assoc_key,
 1558|       |				       "Assoc Key");
 1559|       |#endif
 1560|    764|	}
 1561|       |
 1562|       |	/* set in the active key id */
 1563|    772|	auth->shared_key_id = htons(keyid);
 1564|       |
 1565|       |	/* compute and fill in the digest */
 1566|    772|	(void)sctp_compute_hmac_m(stcb->asoc.peer_hmac_id, stcb->asoc.authinfo.assoc_key,
 1567|    772|				  m, auth_offset, auth->hmac);
 1568|    772|}
sctp_handle_auth:
 1611|  2.37k|{
 1612|  2.37k|	uint16_t chunklen;
 1613|  2.37k|	uint16_t shared_key_id;
 1614|  2.37k|	uint16_t hmac_id;
 1615|  2.37k|	sctp_sharedkey_t *skey;
 1616|  2.37k|	uint32_t digestlen;
 1617|  2.37k|	uint8_t digest[SCTP_AUTH_DIGEST_LEN_MAX];
 1618|  2.37k|	uint8_t computed_digest[SCTP_AUTH_DIGEST_LEN_MAX];
 1619|       |
 1620|       |	/* auth is checked for NULL by caller */
 1621|  2.37k|	chunklen = ntohs(auth->ch.chunk_length);
 1622|  2.37k|	if (chunklen < sizeof(*auth)) {
  ------------------
  |  Branch (1622:6): [True: 0, False: 2.37k]
  ------------------
 1623|      0|		SCTP_STAT_INCR(sctps_recvauthfailed);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1624|      0|		return (-1);
 1625|      0|	}
 1626|  2.37k|	SCTP_STAT_INCR(sctps_recvauth);
  ------------------
  |  | 1112|  2.37k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.37k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.37k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1627|       |
 1628|       |	/* get the auth params */
 1629|  2.37k|	shared_key_id = ntohs(auth->shared_key_id);
 1630|  2.37k|	hmac_id = ntohs(auth->hmac_id);
 1631|  2.37k|	SCTPDBG(SCTP_DEBUG_AUTH1,
 1632|  2.37k|		"SCTP AUTH Chunk: shared key %u, HMAC id %u\n",
 1633|  2.37k|		shared_key_id, hmac_id);
 1634|       |
 1635|  2.37k|#if defined(__Userspace__) && defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
 1636|  2.37k|	return (0);
 1637|      0|#endif
 1638|       |	/* is the indicated HMAC supported? */
 1639|      0|	if (!sctp_auth_is_supported_hmac(stcb->asoc.local_hmacs, hmac_id)) {
  ------------------
  |  Branch (1639:6): [True: 0, False: 0]
  ------------------
 1640|      0|		struct mbuf *op_err;
 1641|      0|		struct sctp_error_auth_invalid_hmac *cause;
 1642|       |
 1643|      0|		SCTP_STAT_INCR(sctps_recvivalhmacid);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1644|      0|		SCTPDBG(SCTP_DEBUG_AUTH1,
 1645|      0|			"SCTP Auth: unsupported HMAC id %u\n",
 1646|      0|			hmac_id);
 1647|       |		/*
 1648|       |		 * report this in an Error Chunk: Unsupported HMAC
 1649|       |		 * Identifier
 1650|       |		 */
 1651|      0|		op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_error_auth_invalid_hmac),
 1652|      0|		                               0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		                               0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|      0|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 1653|      0|		if (op_err != NULL) {
  ------------------
  |  Branch (1653:7): [True: 0, False: 0]
  ------------------
 1654|       |			/* pre-reserve some space */
 1655|      0|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|      0|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1656|       |			/* fill in the error */
 1657|      0|			cause = mtod(op_err, struct sctp_error_auth_invalid_hmac *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1658|      0|			cause->cause.code = htons(SCTP_CAUSE_UNSUPPORTED_HMACID);
 1659|      0|			cause->cause.length = htons(sizeof(struct sctp_error_auth_invalid_hmac));
 1660|      0|			cause->hmac_id = ntohs(hmac_id);
 1661|      0|			SCTP_BUF_LEN(op_err) = sizeof(struct sctp_error_auth_invalid_hmac);
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1662|       |			/* queue it */
 1663|      0|			sctp_queue_op_err(stcb, op_err);
 1664|      0|		}
 1665|      0|		return (-1);
 1666|      0|	}
 1667|       |	/* get the indicated shared key, if available */
 1668|      0|	if ((stcb->asoc.authinfo.recv_key == NULL) ||
  ------------------
  |  Branch (1668:6): [True: 0, False: 0]
  ------------------
 1669|      0|	    (stcb->asoc.authinfo.recv_keyid != shared_key_id)) {
  ------------------
  |  Branch (1669:6): [True: 0, False: 0]
  ------------------
 1670|       |		/* find the shared key on the assoc first */
 1671|      0|		skey = sctp_find_sharedkey(&stcb->asoc.shared_keys,
 1672|      0|					   shared_key_id);
 1673|       |		/* if the shared key isn't found, discard the chunk */
 1674|      0|		if (skey == NULL) {
  ------------------
  |  Branch (1674:7): [True: 0, False: 0]
  ------------------
 1675|      0|			SCTP_STAT_INCR(sctps_recvivalkeyid);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1676|      0|			SCTPDBG(SCTP_DEBUG_AUTH1,
 1677|      0|				"SCTP Auth: unknown key id %u\n",
 1678|      0|				shared_key_id);
 1679|      0|			return (-1);
 1680|      0|		}
 1681|       |		/* generate a notification if this is a new key id */
 1682|      0|		if (stcb->asoc.authinfo.recv_keyid != shared_key_id) {
  ------------------
  |  Branch (1682:7): [True: 0, False: 0]
  ------------------
 1683|      0|			sctp_ulp_notify(SCTP_NOTIFY_AUTH_NEW_KEY, stcb, 0,
  ------------------
  |  |  727|      0|#define SCTP_NOTIFY_AUTH_NEW_KEY                25
  ------------------
 1684|      0|			                &shared_key_id, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1685|      0|		}
 1686|       |		/* compute a new recv assoc key and cache it */
 1687|      0|		if (stcb->asoc.authinfo.recv_key != NULL)
  ------------------
  |  Branch (1687:7): [True: 0, False: 0]
  ------------------
 1688|      0|			sctp_free_key(stcb->asoc.authinfo.recv_key);
 1689|      0|		stcb->asoc.authinfo.recv_key =
 1690|      0|		    sctp_compute_hashkey(stcb->asoc.authinfo.random,
 1691|      0|		    stcb->asoc.authinfo.peer_random, skey->key);
 1692|      0|		stcb->asoc.authinfo.recv_keyid = shared_key_id;
 1693|       |#ifdef SCTP_DEBUG
 1694|       |		if (SCTP_AUTH_DEBUG)
 1695|       |			sctp_print_key(stcb->asoc.authinfo.recv_key, "Recv Key");
 1696|       |#endif
 1697|      0|	}
 1698|       |	/* validate the digest length */
 1699|      0|	digestlen = sctp_get_hmac_digest_len(hmac_id);
 1700|      0|	if (chunklen < (sizeof(*auth) + digestlen)) {
  ------------------
  |  Branch (1700:6): [True: 0, False: 0]
  ------------------
 1701|       |		/* invalid digest length */
 1702|      0|		SCTP_STAT_INCR(sctps_recvauthfailed);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1703|      0|		SCTPDBG(SCTP_DEBUG_AUTH1,
 1704|      0|			"SCTP Auth: chunk too short for HMAC\n");
 1705|      0|		return (-1);
 1706|      0|	}
 1707|       |	/* save a copy of the digest, zero the pseudo header, and validate */
 1708|      0|	memcpy(digest, auth->hmac, digestlen);
 1709|      0|	sctp_zero_m(m, offset + sizeof(*auth), SCTP_SIZE32(digestlen));
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1710|      0|	(void)sctp_compute_hmac_m(hmac_id, stcb->asoc.authinfo.recv_key,
 1711|      0|	    m, offset, computed_digest);
 1712|       |
 1713|       |	/* compare the computed digest with the one in the AUTH chunk */
 1714|      0|	if (timingsafe_bcmp(digest, computed_digest, digestlen) != 0) {
  ------------------
  |  Branch (1714:6): [True: 0, False: 0]
  ------------------
 1715|      0|		SCTP_STAT_INCR(sctps_recvauthfailed);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1716|      0|		SCTPDBG(SCTP_DEBUG_AUTH1,
 1717|      0|			"SCTP Auth: HMAC digest check failed\n");
 1718|      0|		return (-1);
 1719|      0|	}
 1720|      0|	return (0);
 1721|      0|}
sctp_initialize_auth_params:
 1934|  10.1k|{
 1935|  10.1k|	uint16_t chunks_len = 0;
 1936|  10.1k|	uint16_t hmacs_len = 0;
 1937|  10.1k|	uint16_t random_len = SCTP_AUTH_RANDOM_SIZE_DEFAULT;
  ------------------
  |  |   46|  10.1k|#define SCTP_AUTH_RANDOM_SIZE_DEFAULT	32
  ------------------
 1938|  10.1k|	sctp_key_t *new_key;
 1939|  10.1k|	uint16_t keylen;
 1940|       |
 1941|       |	/* initialize hmac list from endpoint */
 1942|  10.1k|	stcb->asoc.local_hmacs = sctp_copy_hmaclist(inp->sctp_ep.local_hmacs);
 1943|  10.1k|	if (stcb->asoc.local_hmacs != NULL) {
  ------------------
  |  Branch (1943:6): [True: 10.1k, False: 0]
  ------------------
 1944|  10.1k|		hmacs_len = stcb->asoc.local_hmacs->num_algo *
 1945|  10.1k|		    sizeof(stcb->asoc.local_hmacs->hmac[0]);
 1946|  10.1k|	}
 1947|       |	/* initialize auth chunks list from endpoint */
 1948|  10.1k|	stcb->asoc.local_auth_chunks =
 1949|  10.1k|	    sctp_copy_chunklist(inp->sctp_ep.local_auth_chunks);
 1950|  10.1k|	if (stcb->asoc.local_auth_chunks != NULL) {
  ------------------
  |  Branch (1950:6): [True: 10.1k, False: 0]
  ------------------
 1951|  10.1k|		int i;
 1952|  2.61M|		for (i = 0; i < 256; i++) {
  ------------------
  |  Branch (1952:15): [True: 2.60M, False: 10.1k]
  ------------------
 1953|  2.60M|			if (stcb->asoc.local_auth_chunks->chunks[i])
  ------------------
  |  Branch (1953:8): [True: 20.3k, False: 2.58M]
  ------------------
 1954|  20.3k|				chunks_len++;
 1955|  2.60M|		}
 1956|  10.1k|	}
 1957|       |	/* copy defaults from the endpoint */
 1958|  10.1k|	stcb->asoc.authinfo.active_keyid = inp->sctp_ep.default_keyid;
 1959|       |
 1960|       |	/* copy out the shared key list (by reference) from the endpoint */
 1961|  10.1k|	(void)sctp_copy_skeylist(&inp->sctp_ep.shared_keys,
 1962|  10.1k|				 &stcb->asoc.shared_keys);
 1963|       |
 1964|       |	/* now set the concatenated key (random + chunks + hmacs) */
 1965|       |	/* key includes parameter headers */
 1966|  10.1k|	keylen = (3 * sizeof(struct sctp_paramhdr)) + random_len + chunks_len +
 1967|  10.1k|	    hmacs_len;
 1968|  10.1k|	new_key = sctp_alloc_key(keylen);
 1969|  10.1k|	if (new_key != NULL) {
  ------------------
  |  Branch (1969:6): [True: 10.1k, False: 0]
  ------------------
 1970|  10.1k|		struct sctp_paramhdr *ph;
 1971|  10.1k|		int plen;
 1972|       |		/* generate and copy in the RANDOM */
 1973|  10.1k|		ph = (struct sctp_paramhdr *)new_key->key;
 1974|  10.1k|		ph->param_type = htons(SCTP_RANDOM);
 1975|  10.1k|		plen = sizeof(*ph) + random_len;
 1976|  10.1k|		ph->param_length = htons(plen);
 1977|  10.1k|		SCTP_READ_RANDOM(new_key->key + sizeof(*ph), random_len);
  ------------------
  |  |  986|  10.1k|#define SCTP_READ_RANDOM(buf, len)	read_random(buf, len)
  ------------------
 1978|  10.1k|		keylen = plen;
 1979|       |
 1980|       |		/* append in the AUTH chunks */
 1981|       |		/* NOTE: currently we always have chunks to list */
 1982|  10.1k|		ph = (struct sctp_paramhdr *)(new_key->key + keylen);
 1983|  10.1k|		ph->param_type = htons(SCTP_CHUNK_LIST);
 1984|  10.1k|		plen = sizeof(*ph) + chunks_len;
 1985|  10.1k|		ph->param_length = htons(plen);
 1986|  10.1k|		keylen += sizeof(*ph);
 1987|  10.1k|		if (stcb->asoc.local_auth_chunks) {
  ------------------
  |  Branch (1987:7): [True: 10.1k, False: 0]
  ------------------
 1988|  10.1k|			int i;
 1989|  2.61M|			for (i = 0; i < 256; i++) {
  ------------------
  |  Branch (1989:16): [True: 2.60M, False: 10.1k]
  ------------------
 1990|  2.60M|				if (stcb->asoc.local_auth_chunks->chunks[i])
  ------------------
  |  Branch (1990:9): [True: 20.3k, False: 2.58M]
  ------------------
 1991|  20.3k|					new_key->key[keylen++] = i;
 1992|  2.60M|			}
 1993|  10.1k|		}
 1994|       |
 1995|       |		/* append in the HMACs */
 1996|  10.1k|		ph = (struct sctp_paramhdr *)(new_key->key + keylen);
 1997|  10.1k|		ph->param_type = htons(SCTP_HMAC_LIST);
 1998|  10.1k|		plen = sizeof(*ph) + hmacs_len;
 1999|  10.1k|		ph->param_length = htons(plen);
 2000|  10.1k|		keylen += sizeof(*ph);
 2001|  10.1k|		(void)sctp_serialize_hmaclist(stcb->asoc.local_hmacs,
 2002|  10.1k|					new_key->key + keylen);
 2003|  10.1k|	}
 2004|  10.1k|	if (stcb->asoc.authinfo.random != NULL)
  ------------------
  |  Branch (2004:6): [True: 0, False: 10.1k]
  ------------------
 2005|      0|	    sctp_free_key(stcb->asoc.authinfo.random);
 2006|  10.1k|	stcb->asoc.authinfo.random = new_key;
 2007|  10.1k|	stcb->asoc.authinfo.random_len = random_len;
 2008|  10.1k|}
sctp_auth.c:sctp_get_keylen:
  302|  6.11k|{
  303|  6.11k|	if (key != NULL)
  ------------------
  |  Branch (303:6): [True: 4.58k, False: 1.52k]
  ------------------
  304|  4.58k|		return (key->keylen);
  305|  1.52k|	else
  306|  1.52k|		return (0);
  307|  6.11k|}
sctp_auth.c:sctp_compare_key:
  349|    764|{
  350|    764|	uint32_t maxlen;
  351|    764|	uint32_t i;
  352|    764|	uint32_t key1len, key2len;
  353|    764|	uint8_t *key_1, *key_2;
  354|    764|	uint8_t val1, val2;
  355|       |
  356|       |	/* sanity/length check */
  357|    764|	key1len = sctp_get_keylen(key1);
  358|    764|	key2len = sctp_get_keylen(key2);
  359|    764|	if ((key1len == 0) && (key2len == 0))
  ------------------
  |  Branch (359:6): [True: 0, False: 764]
  |  Branch (359:24): [True: 0, False: 0]
  ------------------
  360|      0|		return (0);
  361|    764|	else if (key1len == 0)
  ------------------
  |  Branch (361:11): [True: 0, False: 764]
  ------------------
  362|      0|		return (-1);
  363|    764|	else if (key2len == 0)
  ------------------
  |  Branch (363:11): [True: 0, False: 764]
  ------------------
  364|      0|		return (1);
  365|       |
  366|    764|	if (key1len < key2len) {
  ------------------
  |  Branch (366:6): [True: 757, False: 7]
  ------------------
  367|    757|		maxlen = key2len;
  368|    757|	} else {
  369|      7|		maxlen = key1len;
  370|      7|	}
  371|    764|	key_1 = key1->key;
  372|    764|	key_2 = key2->key;
  373|       |	/* check for numeric equality */
  374|    866|	for (i = 0; i < maxlen; i++) {
  ------------------
  |  Branch (374:14): [True: 866, False: 0]
  ------------------
  375|       |		/* left-pad with zeros */
  376|    866|		val1 = (i < (maxlen - key1len)) ? 0 : *(key_1++);
  ------------------
  |  Branch (376:10): [True: 757, False: 109]
  ------------------
  377|    866|		val2 = (i < (maxlen - key2len)) ? 0 : *(key_2++);
  ------------------
  |  Branch (377:10): [True: 1, False: 865]
  ------------------
  378|    866|		if (val1 > val2) {
  ------------------
  |  Branch (378:7): [True: 6, False: 860]
  ------------------
  379|      6|			return (1);
  380|    860|		} else if (val1 < val2) {
  ------------------
  |  Branch (380:14): [True: 758, False: 102]
  ------------------
  381|    758|			return (-1);
  382|    758|		}
  383|    866|	}
  384|       |	/* keys are equal value, so check lengths */
  385|      0|	if (key1len == key2len)
  ------------------
  |  Branch (385:6): [True: 0, False: 0]
  ------------------
  386|      0|		return (0);
  387|      0|	else if (key1len < key2len)
  ------------------
  |  Branch (387:11): [True: 0, False: 0]
  ------------------
  388|      0|		return (-1);
  389|      0|	else
  390|      0|		return (1);
  391|      0|}
sctp_auth.c:sctp_copy_sharedkey:
  589|  10.1k|{
  590|  10.1k|	sctp_sharedkey_t *new_skey;
  591|       |
  592|  10.1k|	if (skey == NULL)
  ------------------
  |  Branch (592:6): [True: 0, False: 10.1k]
  ------------------
  593|      0|		return (NULL);
  594|  10.1k|	new_skey = sctp_alloc_sharedkey();
  595|  10.1k|	if (new_skey == NULL)
  ------------------
  |  Branch (595:6): [True: 0, False: 10.1k]
  ------------------
  596|      0|		return (NULL);
  597|  10.1k|	if (skey->key != NULL)
  ------------------
  |  Branch (597:6): [True: 0, False: 10.1k]
  ------------------
  598|      0|		new_skey->key = sctp_set_key(skey->key->key, skey->key->keylen);
  599|  10.1k|	else
  600|  10.1k|		new_skey->key = NULL;
  601|  10.1k|	new_skey->keyid = skey->keyid;
  602|  10.1k|	return (new_skey);
  603|  10.1k|}
sctp_auth.c:sctp_get_hmac_block_len:
  846|  1.54k|{
  847|  1.54k|	switch (hmac_algo) {
  848|  1.54k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  1.54k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (848:2): [True: 1.54k, False: 0]
  ------------------
  849|  1.54k|		return (64);
  850|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  851|       |	case SCTP_AUTH_HMAC_ID_SHA256:
  852|       |		return (64);
  853|       |#endif
  854|      0|	case SCTP_AUTH_HMAC_ID_RSVD:
  ------------------
  |  |  690|      0|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  |  Branch (854:2): [True: 0, False: 1.54k]
  ------------------
  855|      0|	default:
  ------------------
  |  Branch (855:2): [True: 0, False: 1.54k]
  ------------------
  856|       |		/* unknown HMAC algorithm: can't do anything */
  857|      0|		return (0);
  858|  1.54k|	} /* end switch */
  859|  1.54k|}
sctp_auth.c:sctp_hmac_init:
  866|  2.30k|{
  867|  2.30k|	switch (hmac_algo) {
  868|  2.30k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  2.30k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (868:2): [True: 2.30k, False: 0]
  ------------------
  869|  2.30k|		SCTP_SHA1_INIT(&ctx->sha1);
  ------------------
  |  |  989|  2.30k|#define SCTP_SHA1_INIT		sctp_sha1_init
  ------------------
  870|  2.30k|		break;
  871|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  872|       |	case SCTP_AUTH_HMAC_ID_SHA256:
  873|       |		SCTP_SHA256_INIT(&ctx->sha256);
  874|       |		break;
  875|       |#endif
  876|      0|	case SCTP_AUTH_HMAC_ID_RSVD:
  ------------------
  |  |  690|      0|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  |  Branch (876:2): [True: 0, False: 2.30k]
  ------------------
  877|      0|	default:
  ------------------
  |  Branch (877:2): [True: 0, False: 2.30k]
  ------------------
  878|       |		/* unknown HMAC algorithm: can't do anything */
  879|      0|		return;
  880|  2.30k|	} /* end switch */
  881|  2.30k|}
sctp_auth.c:sctp_hmac_update:
  886|  19.9k|{
  887|  19.9k|	switch (hmac_algo) {
  888|  19.9k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  19.9k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (888:2): [True: 19.9k, False: 0]
  ------------------
  889|  19.9k|		SCTP_SHA1_UPDATE(&ctx->sha1, text, textlen);
  ------------------
  |  |  990|  19.9k|#define SCTP_SHA1_UPDATE	sctp_sha1_update
  ------------------
  890|  19.9k|		break;
  891|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  892|       |	case SCTP_AUTH_HMAC_ID_SHA256:
  893|       |		SCTP_SHA256_UPDATE(&ctx->sha256, text, textlen);
  894|       |		break;
  895|       |#endif
  896|      0|	case SCTP_AUTH_HMAC_ID_RSVD:
  ------------------
  |  |  690|      0|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  |  Branch (896:2): [True: 0, False: 19.9k]
  ------------------
  897|      0|	default:
  ------------------
  |  Branch (897:2): [True: 0, False: 19.9k]
  ------------------
  898|       |		/* unknown HMAC algorithm: can't do anything */
  899|      0|		return;
  900|  19.9k|	} /* end switch */
  901|  19.9k|}
sctp_auth.c:sctp_hmac_final:
  906|  2.30k|{
  907|  2.30k|	switch (hmac_algo) {
  908|  2.30k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  2.30k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (908:2): [True: 2.30k, False: 0]
  ------------------
  909|  2.30k|		SCTP_SHA1_FINAL(digest, &ctx->sha1);
  ------------------
  |  |  991|  2.30k|#define SCTP_SHA1_FINAL(x,y)	sctp_sha1_final((unsigned char *)x, y)
  ------------------
  910|  2.30k|		break;
  911|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  912|       |	case SCTP_AUTH_HMAC_ID_SHA256:
  913|       |		SCTP_SHA256_FINAL(digest, &ctx->sha256);
  914|       |		break;
  915|       |#endif
  916|      0|	case SCTP_AUTH_HMAC_ID_RSVD:
  ------------------
  |  |  690|      0|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  |  Branch (916:2): [True: 0, False: 2.30k]
  ------------------
  917|      0|	default:
  ------------------
  |  Branch (917:2): [True: 0, False: 2.30k]
  ------------------
  918|       |		/* unknown HMAC algorithm: can't do anything */
  919|      0|		return;
  920|  2.30k|	} /* end switch */
  921|  2.30k|}

sctp_startup_iterator:
  174|      1|{
  175|      1|	if (sctp_it_ctl.thread_proc) {
  ------------------
  |  Branch (175:6): [True: 0, False: 1]
  ------------------
  176|       |		/* You only get one */
  177|      0|		return;
  178|      0|	}
  179|       |	/* Initialize global locks here, thus only once. */
  180|      1|	SCTP_ITERATOR_LOCK_INIT();
  ------------------
  |  |  619|      1|	(void)pthread_mutex_init(&sctp_it_ctl.it_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
  181|      1|	SCTP_IPI_ITERATOR_WQ_INIT();
  ------------------
  |  |  635|      1|	(void)pthread_mutex_init(&sctp_it_ctl.ipi_iterator_wq_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
  182|      1|	TAILQ_INIT(&sctp_it_ctl.iteratorhead);
  ------------------
  |  Branch (182:2): [Folded, False: 1]
  ------------------
  183|      1|#if defined(__Userspace__)
  184|      1|	if (sctp_userspace_thread_create(&sctp_it_ctl.thread_proc, &sctp_iterator_thread)) {
  ------------------
  |  Branch (184:6): [True: 0, False: 1]
  ------------------
  185|      0|		SCTP_PRINTF("ERROR: Creating sctp_iterator_thread failed.\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
  186|      1|	} else {
  187|      1|		SCTP_BASE_VAR(iterator_thread_started) = 1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  188|      1|	}
  189|       |#elif defined(__FreeBSD__)
  190|       |	kproc_create(sctp_iterator_thread,
  191|       |	             (void *)NULL,
  192|       |	             &sctp_it_ctl.thread_proc,
  193|       |	             0,
  194|       |	             SCTP_KTHREAD_PAGES,
  195|       |	             SCTP_KTRHEAD_NAME);
  196|       |#elif defined(__APPLE__)
  197|       |	kernel_thread_start((thread_continue_t)sctp_iterator_thread, NULL, &sctp_it_ctl.thread_proc);
  198|       |#endif
  199|      1|}
sctp_init_vrf_list:
  637|      1|{
  638|      1|	if (vrfid > SCTP_MAX_VRF_ID)
  ------------------
  |  |  647|      1|#define SCTP_MAX_VRF_ID		0
  ------------------
  |  Branch (638:6): [True: 0, False: 1]
  ------------------
  639|       |		/* can't do that */
  640|      0|		return;
  641|       |
  642|       |	/* Don't care about return here */
  643|      1|	(void)sctp_allocate_vrf(vrfid);
  644|       |
  645|       |	/* Now we need to build all the ifn's
  646|       |	 * for this vrf and there addresses
  647|       |	 */
  648|      1|	sctp_init_ifns_for_vrf(vrfid);
  649|      1|}
sctp_get_mbuf_for_msg:
  767|   923k|{
  768|   923k|	struct mbuf *m = NULL;
  769|   923k|#if defined(__FreeBSD__) || defined(__Userspace__)
  770|   923k|#if defined(__Userspace__)
  771|   923k|	m = m_getm2(NULL, space_needed, how, type, want_header ? M_PKTHDR : 0, allonebuf);
  ------------------
  |  |  234|  94.0k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (771:45): [True: 94.0k, False: 828k]
  ------------------
  772|       |#else
  773|       |	m = m_getm2(NULL, space_needed, how, type, want_header ? M_PKTHDR : 0);
  774|       |#endif
  775|   923k|	if (m == NULL) {
  ------------------
  |  Branch (775:6): [True: 0, False: 923k]
  ------------------
  776|       |		/* bad, no memory */
  777|      0|		return (m);
  778|      0|	}
  779|       |#if !defined(__Userspace__)
  780|       |	if (allonebuf) {
  781|       |		if (SCTP_BUF_SIZE(m) < space_needed) {
  782|       |			m_freem(m);
  783|       |			return (NULL);
  784|       |		}
  785|       |		KASSERT(SCTP_BUF_NEXT(m) == NULL, ("%s: no chain allowed", __func__));
  786|       |	}
  787|       |#endif
  788|       |#ifdef SCTP_MBUF_LOGGING
  789|       |	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
  790|       |		sctp_log_mb(m, SCTP_MBUF_IALLOC);
  791|       |	}
  792|       |#endif
  793|       |#else
  794|       |	int mbuf_threshold;
  795|       |	unsigned int size;
  796|       |
  797|       |	if (want_header) {
  798|       |		MGETHDR(m, how, type);
  799|       |		size = MHLEN;
  800|       |	} else {
  801|       |		MGET(m, how, type);
  802|       |		size = MLEN;
  803|       |	}
  804|       |	if (m == NULL) {
  805|       |		return (NULL);
  806|       |	}
  807|       |	if (allonebuf == 0) {
  808|       |		mbuf_threshold = SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count);
  809|       |	} else {
  810|       |		mbuf_threshold = 1;
  811|       |	}
  812|       |
  813|       |	if (space_needed > (unsigned int)(((mbuf_threshold - 1) * MLEN) + MHLEN)) {
  814|       |		MCLGET(m, how);
  815|       |		if (m == NULL) {
  816|       |			return (NULL);
  817|       |		}
  818|       |		if (SCTP_BUF_IS_EXTENDED(m) == 0) {
  819|       |			sctp_m_freem(m);
  820|       |			return (NULL);
  821|       |		}
  822|       |		size = SCTP_BUF_EXTEND_SIZE(m);
  823|       |	}
  824|       |	if (allonebuf != 0 && size < space_needed) {
  825|       |		m_freem(m);
  826|       |		return (NULL);
  827|       |	}
  828|       |	SCTP_BUF_LEN(m) = 0;
  829|       |	SCTP_BUF_NEXT(m) = SCTP_BUF_NEXT_PKT(m) = NULL;
  830|       |#ifdef SCTP_MBUF_LOGGING
  831|       |	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
  832|       |		sctp_log_mb(m, SCTP_MBUF_IALLOC);
  833|       |	}
  834|       |#endif
  835|       |#endif
  836|   923k|	return (m);
  837|   923k|}
sctp_bsd_addr.c:sctp_iterator_thread:
  121|      1|{
  122|      1|#if defined(__Userspace__)
  123|      1|	sctp_userspace_set_threadname("SCTP iterator");
  124|      1|#endif
  125|      1|	SCTP_IPI_ITERATOR_WQ_LOCK();
  ------------------
  |  |  640|      1|	KASSERT(pthread_mutex_lock(&sctp_it_ctl.ipi_iterator_wq_mtx) == 0, ("%s:%d: ipi_iterator_wq_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      1|	do {                         \
  |  |  |  |  113|      1|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      1|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  126|       |	/* In FreeBSD this thread never terminates. */
  127|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  128|       |	for (;;) {
  129|       |#else
  130|      2|	while ((sctp_it_ctl.iterator_flags & SCTP_ITERATOR_MUST_EXIT) == 0) {
  ------------------
  |  |  233|      2|#define SCTP_ITERATOR_MUST_EXIT		0x00000001
  ------------------
  |  Branch (130:9): [True: 1, False: 1]
  ------------------
  131|      1|#endif
  132|       |#if !defined(__Userspace__)
  133|       |		msleep(&sctp_it_ctl.iterator_running,
  134|       |#if defined(__FreeBSD__)
  135|       |		       &sctp_it_ctl.ipi_iterator_wq_mtx,
  136|       |#elif defined(__APPLE__)
  137|       |		       sctp_it_ctl.ipi_iterator_wq_mtx,
  138|       |#endif
  139|       |		       0, "waiting_for_work", 0);
  140|       |#else
  141|       |#if defined(_WIN32)
  142|       |		SleepConditionVariableCS(&sctp_it_ctl.iterator_wakeup, &sctp_it_ctl.ipi_iterator_wq_mtx, INFINITE);
  143|       |#else
  144|      1|		pthread_cond_wait(&sctp_it_ctl.iterator_wakeup, &sctp_it_ctl.ipi_iterator_wq_mtx);
  145|      1|#endif
  146|      1|#endif
  147|      1|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
  148|      1|		if (sctp_it_ctl.iterator_flags & SCTP_ITERATOR_MUST_EXIT) {
  ------------------
  |  |  233|      1|#define SCTP_ITERATOR_MUST_EXIT		0x00000001
  ------------------
  |  Branch (148:7): [True: 0, False: 1]
  ------------------
  149|      0|			break;
  150|      0|		}
  151|      1|#endif
  152|      1|		sctp_iterator_worker();
  153|      1|	}
  154|      1|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
  155|       |	/* Now this thread needs to be terminated */
  156|      1|	sctp_cleanup_itqueue();
  157|      1|	sctp_it_ctl.iterator_flags |= SCTP_ITERATOR_EXITED;
  ------------------
  |  |  234|      1|#define SCTP_ITERATOR_EXITED		0x00000002
  ------------------
  158|      1|	SCTP_IPI_ITERATOR_WQ_UNLOCK();
  ------------------
  |  |  642|      1|	KASSERT(pthread_mutex_unlock(&sctp_it_ctl.ipi_iterator_wq_mtx) == 0, ("%s:%d: ipi_iterator_wq_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      1|	do {                         \
  |  |  |  |  113|      1|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      1|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|      1|#if defined(__Userspace__)
  160|      1|	sctp_wakeup_iterator();
  161|      1|	return (NULL);
  162|       |#else
  163|       |	wakeup(&sctp_it_ctl.iterator_flags);
  164|       |	thread_terminate(current_thread());
  165|       |#ifdef INVARIANTS
  166|       |	panic("Hmm. thread_terminate() continues...");
  167|       |#endif
  168|       |#endif
  169|      1|#endif
  170|      1|}
sctp_bsd_addr.c:sctp_init_ifns_for_vrf:
  412|      1|{
  413|      1|#if defined(INET) || defined(INET6)
  414|      1|	int rc;
  415|      1|	struct ifaddrs *ifa, *ifas;
  416|      1|	struct sctp_ifa *sctp_ifa;
  417|      1|	uint32_t ifa_flags;
  418|       |
  419|      1|	rc = getifaddrs(&ifas);
  420|      1|	if (rc != 0) {
  ------------------
  |  Branch (420:6): [True: 0, False: 1]
  ------------------
  421|      0|		return;
  422|      0|	}
  423|      5|	for (ifa = ifas; ifa; ifa = ifa->ifa_next) {
  ------------------
  |  Branch (423:19): [True: 4, False: 1]
  ------------------
  424|      4|		if (ifa->ifa_addr == NULL) {
  ------------------
  |  Branch (424:7): [True: 0, False: 4]
  ------------------
  425|      0|			continue;
  426|      0|		}
  427|       |#if !defined(INET)
  428|       |		if (ifa->ifa_addr->sa_family != AF_INET6) {
  429|       |			/* non inet6 skip */
  430|       |			continue;
  431|       |		}
  432|       |#elif !defined(INET6)
  433|       |		if (ifa->ifa_addr->sa_family != AF_INET) {
  434|       |			/* non inet skip */
  435|       |			continue;
  436|       |		}
  437|       |#else
  438|      4|		if ((ifa->ifa_addr->sa_family != AF_INET) && (ifa->ifa_addr->sa_family != AF_INET6)) {
  ------------------
  |  Branch (438:7): [True: 2, False: 2]
  |  Branch (438:48): [True: 2, False: 0]
  ------------------
  439|       |			/* non inet/inet6 skip */
  440|      2|			continue;
  441|      2|		}
  442|      2|#endif
  443|      2|#if defined(INET6)
  444|      2|		if ((ifa->ifa_addr->sa_family == AF_INET6) &&
  ------------------
  |  Branch (444:7): [True: 0, False: 2]
  ------------------
  445|      2|		    IN6_IS_ADDR_UNSPECIFIED(&((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr)) {
  ------------------
  |  Branch (445:7): [True: 0, False: 0]
  ------------------
  446|       |			/* skip unspecified addresses */
  447|      0|			continue;
  448|      0|		}
  449|      2|#endif
  450|      2|#if defined(INET)
  451|      2|		if (ifa->ifa_addr->sa_family == AF_INET &&
  ------------------
  |  Branch (451:7): [True: 2, False: 0]
  ------------------
  452|      2|		    ((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr == 0) {
  ------------------
  |  Branch (452:7): [True: 0, False: 2]
  ------------------
  453|      0|			continue;
  454|      0|		}
  455|      2|#endif
  456|      2|		ifa_flags = 0;
  457|      2|		sctp_ifa = sctp_add_addr_to_vrf(vrfid,
  458|      2|		                                NULL,
  459|      2|		                                if_nametoindex(ifa->ifa_name),
  460|      2|		                                0,
  461|      2|		                                ifa->ifa_name,
  462|      2|		                                NULL,
  463|      2|		                                ifa->ifa_addr,
  464|      2|		                                ifa_flags,
  465|      2|		                                0);
  466|      2|		if (sctp_ifa) {
  ------------------
  |  Branch (466:7): [True: 2, False: 0]
  ------------------
  467|      2|			sctp_ifa->localifa_flags &= ~SCTP_ADDR_DEFER_USE;
  ------------------
  |  |   97|      2|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  468|      2|		}
  469|      2|	}
  470|      1|	freeifaddrs(ifas);
  471|      1|#endif
  472|      1|}

sctp_get_tick_count:
   68|   136k|uint32_t sctp_get_tick_count(void) {
   69|   136k|	uint32_t ret;
   70|       |
   71|   136k|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|   136k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   136k|	do {                         \
  |  |  |  |  113|   136k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 136k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   136k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 136k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   72|   136k|	ret = ticks;
   73|   136k|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   136k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   136k|	do {                         \
  |  |  |  |  113|   136k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 136k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   136k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 136k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   74|   136k|	return ret;
   75|   136k|}
sctp_os_timer_init:
   86|   223k|{
   87|   223k|	memset(c, 0, sizeof(*c));
   88|   223k|}
sctp_os_timer_start:
   93|   136k|{
   94|   136k|	int ret = 0;
   95|       |
   96|       |	/* paranoia */
   97|   136k|	if ((c == NULL) || (ftn == NULL))
  ------------------
  |  Branch (97:6): [True: 0, False: 136k]
  |  Branch (97:21): [True: 0, False: 136k]
  ------------------
   98|      0|		return (ret);
   99|       |
  100|   136k|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|   136k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   136k|	do {                         \
  |  |  |  |  113|   136k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 136k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   136k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 136k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|       |	/* check to see if we're rescheduling a timer */
  102|   136k|	if (c->c_flags & SCTP_CALLOUT_PENDING) {
  ------------------
  |  |   83|   136k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  |  Branch (102:6): [True: 0, False: 136k]
  ------------------
  103|      0|		ret = 1;
  104|      0|		if (c == sctp_os_timer_next) {
  ------------------
  |  Branch (104:7): [True: 0, False: 0]
  ------------------
  105|      0|			sctp_os_timer_next = TAILQ_NEXT(c, tqe);
  106|      0|		}
  107|      0|		TAILQ_REMOVE(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (107:3): [True: 0, False: 0]
  |  Branch (107:3): [Folded, False: 0]
  ------------------
  108|       |		/*
  109|       |		 * part of the normal "stop a pending callout" process
  110|       |		 * is to clear the CALLOUT_ACTIVE and CALLOUT_PENDING
  111|       |		 * flags.  We don't bother since we are setting these
  112|       |		 * below and we still hold the lock.
  113|       |		 */
  114|      0|	}
  115|       |
  116|       |	/*
  117|       |	 * We could unlock/splx here and lock/spl at the TAILQ_INSERT_TAIL,
  118|       |	 * but there's no point since doing this setup doesn't take much time.
  119|       |	 */
  120|   136k|	if (to_ticks == 0)
  ------------------
  |  Branch (120:6): [True: 0, False: 136k]
  ------------------
  121|      0|		to_ticks = 1;
  122|       |
  123|   136k|	c->c_arg = arg;
  124|   136k|	c->c_flags = (SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   82|   136k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  ------------------
              	c->c_flags = (SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   83|   136k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  125|   136k|	c->c_func = ftn;
  126|   136k|	c->c_time = ticks + to_ticks;
  127|   136k|	TAILQ_INSERT_TAIL(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (127:2): [Folded, False: 136k]
  ------------------
  128|   136k|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   136k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   136k|	do {                         \
  |  |  |  |  113|   136k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 136k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   136k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 136k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  129|   136k|	return (ret);
  130|   136k|}
sctp_os_timer_stop:
  134|   382k|{
  135|   382k|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|   382k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   382k|	do {                         \
  |  |  |  |  113|   382k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 382k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   382k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 382k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  136|       |	/*
  137|       |	 * Don't attempt to delete a callout that's not on the queue.
  138|       |	 */
  139|   382k|	if ((c->c_flags & SCTP_CALLOUT_PENDING) == 0) {
  ------------------
  |  |   83|   382k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  |  Branch (139:6): [True: 248k, False: 134k]
  ------------------
  140|   248k|		c->c_flags &= ~SCTP_CALLOUT_ACTIVE;
  ------------------
  |  |   82|   248k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  ------------------
  141|   248k|		SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   248k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   248k|	do {                         \
  |  |  |  |  113|   248k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 248k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   248k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 248k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  142|   248k|		return (0);
  143|   248k|	}
  144|   134k|	c->c_flags &= ~(SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   82|   134k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  ------------------
              	c->c_flags &= ~(SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   83|   134k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  145|   134k|	if (c == sctp_os_timer_next) {
  ------------------
  |  Branch (145:6): [True: 1, False: 134k]
  ------------------
  146|      1|		sctp_os_timer_next = TAILQ_NEXT(c, tqe);
  147|      1|	}
  148|   134k|	TAILQ_REMOVE(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (148:2): [True: 88.8k, False: 45.3k]
  |  Branch (148:2): [Folded, False: 134k]
  ------------------
  149|   134k|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   134k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   134k|	do {                         \
  |  |  |  |  113|   134k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 134k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   134k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 134k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  150|   134k|	return (1);
  151|   134k|}
sctp_handle_tick:
  155|    525|{
  156|    525|	sctp_os_timer_t *c;
  157|    525|	void (*c_func)(void *);
  158|    525|	void *c_arg;
  159|       |
  160|    525|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|    525|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|    525|	do {                         \
  |  |  |  |  113|    525|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 525]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    525|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 525]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  161|       |	/* update our tick count */
  162|    525|	ticks += elapsed_ticks;
  163|    525|	c = TAILQ_FIRST(&SCTP_BASE_INFO(callqueue));
  164|  8.66k|	while (c) {
  ------------------
  |  Branch (164:9): [True: 8.13k, False: 525]
  ------------------
  165|  8.13k|		if (SCTP_UINT32_GE(ticks, c->c_time)) {
  ------------------
  |  |  885|  8.13k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  ------------------
  |  |  |  |  883|  16.2k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 5.69k, False: 2.44k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 5.69k]
  |  |  |  |  ------------------
  |  |  |  |  884|  16.2k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 8.13k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (885:55): [True: 2.44k, False: 5.69k]
  |  |  ------------------
  ------------------
  166|  2.44k|			sctp_os_timer_next = TAILQ_NEXT(c, tqe);
  167|  2.44k|			TAILQ_REMOVE(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (167:4): [True: 2.43k, False: 12]
  |  Branch (167:4): [Folded, False: 2.44k]
  ------------------
  168|  2.44k|			c_func = c->c_func;
  169|  2.44k|			c_arg = c->c_arg;
  170|  2.44k|			c->c_flags &= ~SCTP_CALLOUT_PENDING;
  ------------------
  |  |   83|  2.44k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  171|  2.44k|			SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|  2.44k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  2.44k|	do {                         \
  |  |  |  |  113|  2.44k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.44k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.44k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.44k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  172|  2.44k|			c_func(c_arg);
  173|  2.44k|			SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|  2.44k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  2.44k|	do {                         \
  |  |  |  |  113|  2.44k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.44k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.44k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.44k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  174|  2.44k|			c = sctp_os_timer_next;
  175|  5.69k|		} else {
  176|  5.69k|			c = TAILQ_NEXT(c, tqe);
  177|  5.69k|		}
  178|  8.13k|	}
  179|    525|	sctp_os_timer_next = NULL;
  180|    525|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|    525|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|    525|	do {                         \
  |  |  |  |  113|    525|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 525]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    525|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 525]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  181|    525|}
user_sctp_timer_iterate:
  197|      1|{
  198|      1|	sctp_userspace_set_threadname("SCTP timer");
  199|    526|	for (;;) {
  200|       |#if defined(_WIN32)
  201|       |		Sleep(TIMEOUT_INTERVAL);
  202|       |#else
  203|    526|		struct timespec amount, remaining;
  204|       |
  205|    526|		remaining.tv_sec = 0;
  206|    526|		remaining.tv_nsec = TIMEOUT_INTERVAL * 1000 * 1000;
  ------------------
  |  |  193|    526|#define TIMEOUT_INTERVAL 10
  ------------------
  207|    526|		do {
  208|    526|			amount = remaining;
  209|    526|		} while (nanosleep(&amount, &remaining) == -1);
  ------------------
  |  Branch (209:12): [True: 0, False: 526]
  ------------------
  210|    526|#endif
  211|    526|		if (atomic_cmpset_int(&SCTP_BASE_VAR(timer_thread_should_exit), 1, 1)) {
  ------------------
  |  |  113|    526|#define atomic_cmpset_int(dst, exp, src) __sync_bool_compare_and_swap(dst, exp, src)
  |  |  ------------------
  |  |  |  Branch (113:42): [True: 0, False: 526]
  |  |  ------------------
  ------------------
  212|      0|			break;
  213|      0|		}
  214|    526|		sctp_handle_tick(sctp_msecs_to_ticks(TIMEOUT_INTERVAL));
  ------------------
  |  |  193|    526|#define TIMEOUT_INTERVAL 10
  ------------------
  215|    526|	}
  216|       |	return (NULL);
  217|      1|}
sctp_start_timer_thread:
  221|      1|{
  222|       |	/*
  223|       |	 * No need to do SCTP_TIMERQ_LOCK_INIT();
  224|       |	 * here, it is being done in sctp_pcb_init()
  225|       |	 */
  226|      1|	int rc;
  227|       |
  228|      1|	rc = sctp_userspace_thread_create(&SCTP_BASE_VAR(timer_thread), user_sctp_timer_iterate);
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  229|      1|	if (rc) {
  ------------------
  |  Branch (229:6): [True: 0, False: 1]
  ------------------
  230|      0|		SCTP_PRINTF("ERROR; return code from sctp_thread_create() is %d\n", rc);
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
  231|      1|	} else {
  232|      1|		SCTP_BASE_VAR(timer_thread_started) = 1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  233|      1|	}
  234|      1|}

sctp_cc_functions.c:sctp_set_initial_cc_param:
   81|  50.7k|{
   82|  50.7k|	struct sctp_association *assoc;
   83|  50.7k|	uint32_t cwnd_in_mtu;
   84|       |
   85|  50.7k|	assoc = &stcb->asoc;
   86|  50.7k|	cwnd_in_mtu = SCTP_BASE_SYSCTL(sctp_initial_cwnd);
  ------------------
  |  |  590|  50.7k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
   87|  50.7k|	if (cwnd_in_mtu == 0) {
  ------------------
  |  Branch (87:6): [True: 0, False: 50.7k]
  ------------------
   88|       |		/* Using 0 means that the value of RFC 4960 is used. */
   89|      0|		net->cwnd = min((net->mtu * 4), max((2 * net->mtu), SCTP_INITIAL_CWND));
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  |  Branch (66:25): [True: 0, False: 0]
  |  |  |  Branch (66:30): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   90|  50.7k|	} else {
   91|       |		/*
   92|       |		 * We take the minimum of the burst limit and the
   93|       |		 * initial congestion window.
   94|       |		 */
   95|  50.7k|		if ((assoc->max_burst > 0) && (cwnd_in_mtu > assoc->max_burst))
  ------------------
  |  Branch (95:7): [True: 50.7k, False: 0]
  |  Branch (95:33): [True: 0, False: 50.7k]
  ------------------
   96|      0|			cwnd_in_mtu = assoc->max_burst;
   97|  50.7k|		net->cwnd = (net->mtu - sizeof(struct sctphdr)) * cwnd_in_mtu;
   98|  50.7k|	}
   99|  50.7k|	if ((stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV1) ||
  ------------------
  |  |  313|  50.7k|#define SCTP_CMT_RPV1           2
  ------------------
  |  Branch (99:6): [True: 0, False: 50.7k]
  ------------------
  100|  50.7k|	    (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV2)) {
  ------------------
  |  |  314|  50.7k|#define SCTP_CMT_RPV2           3
  ------------------
  |  Branch (100:6): [True: 0, False: 50.7k]
  ------------------
  101|       |		/* In case of resource pooling initialize appropriately */
  102|      0|		net->cwnd /= assoc->numnets;
  103|      0|		if (net->cwnd < (net->mtu - sizeof(struct sctphdr))) {
  ------------------
  |  Branch (103:7): [True: 0, False: 0]
  ------------------
  104|      0|			net->cwnd = net->mtu - sizeof(struct sctphdr);
  105|      0|		}
  106|      0|	}
  107|  50.7k|	sctp_enforce_cwnd_limit(assoc, net);
  108|  50.7k|	net->ssthresh = assoc->peers_rwnd;
  109|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  110|       |	SDT_PROBE5(sctp, cwnd, net, init,
  111|       |	           stcb->asoc.my_vtag, ((stcb->sctp_ep->sctp_lport << 16) | (stcb->rport)), net,
  112|       |	           0, net->cwnd);
  113|       |#endif
  114|  50.7k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) &
  ------------------
  |  |  590|  50.7k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (114:6): [True: 0, False: 50.7k]
  ------------------
  115|  50.7k|	    (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  644|  50.7k|#define SCTP_CWND_MONITOR_ENABLE			0x00000002
  ------------------
              	    (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  645|  50.7k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  116|      0|		sctp_log_cwnd(stcb, net, 0, SCTP_CWND_INITIALIZATION);
  ------------------
  |  |  166|      0|#define SCTP_CWND_INITIALIZATION    62
  ------------------
  117|      0|	}
  118|  50.7k|}
sctp_cc_functions.c:sctp_enforce_cwnd_limit:
   68|  50.7k|{
   69|  50.7k|	if ((assoc->max_cwnd > 0) &&
  ------------------
  |  Branch (69:6): [True: 0, False: 50.7k]
  ------------------
   70|      0|	    (net->cwnd > assoc->max_cwnd) &&
  ------------------
  |  Branch (70:6): [True: 0, False: 0]
  ------------------
   71|      0|	    (net->cwnd > (net->mtu - sizeof(struct sctphdr)))) {
  ------------------
  |  Branch (71:6): [True: 0, False: 0]
  ------------------
   72|      0|		net->cwnd = assoc->max_cwnd;
   73|      0|		if (net->cwnd < (net->mtu - sizeof(struct sctphdr))) {
  ------------------
  |  Branch (73:7): [True: 0, False: 0]
  ------------------
   74|      0|			net->cwnd = net->mtu - sizeof(struct sctphdr);
   75|      0|		}
   76|      0|	}
   77|  50.7k|}

sctp_set_rwnd:
   77|  17.1k|{
   78|  17.1k|	asoc->my_rwnd = sctp_calc_rwnd(stcb, asoc);
   79|  17.1k|}
sctp_calc_rwnd:
   84|  23.3k|{
   85|  23.3k|	uint32_t calc = 0;
   86|       |
   87|       |	/*
   88|       |	 * This is really set wrong with respect to a 1-2-m socket. Since
   89|       |	 * the sb_cc is the count that everyone as put up. When we re-write
   90|       |	 * sctp_soreceive then we will fix this so that ONLY this
   91|       |	 * associations data is taken into account.
   92|       |	 */
   93|  23.3k|	if (stcb->sctp_socket == NULL) {
  ------------------
  |  Branch (93:6): [True: 0, False: 23.3k]
  ------------------
   94|      0|		return (calc);
   95|      0|	}
   96|       |
   97|  23.3k|	KASSERT(asoc->cnt_on_reasm_queue > 0 || asoc->size_on_reasm_queue == 0,
  ------------------
  |  |  112|  23.3k|	do {                         \
  |  |  113|  44.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.54k, False: 20.8k]
  |  |  |  Branch (113:9): [True: 20.8k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  23.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 23.3k]
  |  |  ------------------
  ------------------
   98|  23.3k|	        ("size_on_reasm_queue is %u", asoc->size_on_reasm_queue));
   99|  23.3k|	KASSERT(asoc->cnt_on_all_streams > 0 || asoc->size_on_all_streams == 0,
  ------------------
  |  |  112|  23.3k|	do {                         \
  |  |  113|  45.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 1.59k, False: 21.7k]
  |  |  |  Branch (113:9): [True: 21.7k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  23.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 23.3k]
  |  |  ------------------
  ------------------
  100|  23.3k|	        ("size_on_all_streams is %u", asoc->size_on_all_streams));
  101|  23.3k|	if (stcb->asoc.sb_cc == 0 &&
  ------------------
  |  Branch (101:6): [True: 8.80k, False: 14.5k]
  ------------------
  102|  8.80k|	    asoc->cnt_on_reasm_queue == 0 &&
  ------------------
  |  Branch (102:6): [True: 8.46k, False: 334]
  ------------------
  103|  8.46k|	    asoc->cnt_on_all_streams == 0) {
  ------------------
  |  Branch (103:6): [True: 8.36k, False: 104]
  ------------------
  104|       |		/* Full rwnd granted */
  105|  8.36k|		calc = max(SCTP_SB_LIMIT_RCV(stcb->sctp_socket), SCTP_MINIMAL_RWND);
  ------------------
  |  |   67|  8.36k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 8.36k, False: 0]
  |  |  ------------------
  ------------------
  106|  8.36k|		return (calc);
  107|  8.36k|	}
  108|       |	/* get actual space */
  109|  14.9k|	calc = (uint32_t) sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv);
  ------------------
  |  |   89|  14.9k|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|  14.9k|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|  14.9k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 14.9k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|  14.4k|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|  14.4k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 14.4k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 14.4k, False: 537]
  |  |  ------------------
  ------------------
  110|       |	/*
  111|       |	 * take out what has NOT been put on socket queue and we yet hold
  112|       |	 * for putting up.
  113|       |	 */
  114|  14.9k|	calc = sctp_sbspace_sub(calc, (uint32_t)(asoc->size_on_reasm_queue +
  ------------------
  |  |   93|  14.9k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 14.4k, False: 549]
  |  |  ------------------
  ------------------
  115|  14.9k|	                                         asoc->cnt_on_reasm_queue * MSIZE));
  116|  14.9k|	calc = sctp_sbspace_sub(calc, (uint32_t)(asoc->size_on_all_streams +
  ------------------
  |  |   93|  14.9k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 14.4k, False: 552]
  |  |  ------------------
  ------------------
  117|  14.9k|	                                         asoc->cnt_on_all_streams * MSIZE));
  118|  14.9k|	if (calc == 0) {
  ------------------
  |  Branch (118:6): [True: 552, False: 14.4k]
  ------------------
  119|       |		/* out of space */
  120|    552|		return (calc);
  121|    552|	}
  122|       |
  123|       |	/* what is the overhead of all these rwnd's */
  124|  14.4k|	calc = sctp_sbspace_sub(calc, stcb->asoc.my_rwnd_control_len);
  ------------------
  |  |   93|  14.4k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 10.2k, False: 4.15k]
  |  |  ------------------
  ------------------
  125|       |	/* If the window gets too small due to ctrl-stuff, reduce it
  126|       |	 * to 1, even it is 0. SWS engaged
  127|       |	 */
  128|  14.4k|	if (calc < stcb->asoc.my_rwnd_control_len) {
  ------------------
  |  Branch (128:6): [True: 5.41k, False: 9.02k]
  ------------------
  129|  5.41k|		calc = 1;
  130|  5.41k|	}
  131|  14.4k|	return (calc);
  132|  14.9k|}
sctp_build_readq_entry:
  144|   496k|{
  145|   496k|	struct sctp_queued_to_read *read_queue_e = NULL;
  146|       |
  147|   496k|	sctp_alloc_a_readq(stcb, read_queue_e);
  ------------------
  |  |  118|   496k|#define sctp_alloc_a_readq(_stcb, _readq) { \
  |  |  119|   496k|	(_readq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_readq), struct sctp_queued_to_read); \
  |  |  ------------------
  |  |  |  |  703|   496k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  120|   496k|	if ((_readq)) { \
  |  |  ------------------
  |  |  |  Branch (120:6): [True: 496k, False: 0]
  |  |  ------------------
  |  |  121|   496k|	     SCTP_INCR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  682|   496k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|   496k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  122|   496k|	} \
  |  |  123|   496k|}
  ------------------
  148|   496k|	if (read_queue_e == NULL) {
  ------------------
  |  Branch (148:6): [True: 0, False: 496k]
  ------------------
  149|      0|		goto failed_build;
  150|      0|	}
  151|   496k|	memset(read_queue_e, 0, sizeof(struct sctp_queued_to_read));
  152|   496k|	read_queue_e->sinfo_stream = sid;
  153|   496k|	read_queue_e->sinfo_flags = (flags << 8);
  154|   496k|	read_queue_e->sinfo_ppid = ppid;
  155|   496k|	read_queue_e->sinfo_context = context;
  156|   496k|	read_queue_e->sinfo_tsn = tsn;
  157|   496k|	read_queue_e->sinfo_cumtsn = tsn;
  158|   496k|	read_queue_e->sinfo_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|   496k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
  159|   496k|	read_queue_e->mid = mid;
  160|   496k|	read_queue_e->top_fsn = read_queue_e->fsn_included = 0xffffffff;
  161|   496k|	TAILQ_INIT(&read_queue_e->reasm);
  ------------------
  |  Branch (161:2): [Folded, False: 496k]
  ------------------
  162|   496k|	read_queue_e->whoFrom = net;
  163|   496k|	atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|   496k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  164|   496k|	read_queue_e->data = dm;
  165|   496k|	read_queue_e->stcb = stcb;
  166|   496k|	read_queue_e->port_from = stcb->rport;
  167|   496k|	if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|   496k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (167:6): [True: 0, False: 496k]
  ------------------
  168|      0|		read_queue_e->do_not_ref_stcb = 1;
  169|      0|	}
  170|   496k|failed_build:
  171|   496k|	return (read_queue_e);
  172|   496k|}
sctp_slide_mapping_arrays:
 2403|  18.4k|{
 2404|       |	/*
 2405|       |	 * Now we also need to check the mapping array in a couple of ways.
 2406|       |	 * 1) Did we move the cum-ack point?
 2407|       |	 *
 2408|       |	 * When you first glance at this you might think
 2409|       |	 * that all entries that make up the position
 2410|       |	 * of the cum-ack would be in the nr-mapping array
 2411|       |	 * only.. i.e. things up to the cum-ack are always
 2412|       |	 * deliverable. Thats true with one exception, when
 2413|       |	 * its a fragmented message we may not deliver the data
 2414|       |	 * until some threshold (or all of it) is in place. So
 2415|       |	 * we must OR the nr_mapping_array and mapping_array to
 2416|       |	 * get a true picture of the cum-ack.
 2417|       |	 */
 2418|  18.4k|	struct sctp_association *asoc;
 2419|  18.4k|	int at;
 2420|  18.4k|	uint8_t val;
 2421|  18.4k|	int slide_from, slide_end, lgap, distance;
 2422|  18.4k|	uint32_t old_cumack, old_base, old_highest, highest_tsn;
 2423|       |
 2424|  18.4k|	asoc = &stcb->asoc;
 2425|       |
 2426|  18.4k|	old_cumack = asoc->cumulative_tsn;
 2427|  18.4k|	old_base = asoc->mapping_array_base_tsn;
 2428|  18.4k|	old_highest = asoc->highest_tsn_inside_map;
 2429|       |	/*
 2430|       |	 * We could probably improve this a small bit by calculating the
 2431|       |	 * offset of the current cum-ack as the starting point.
 2432|       |	 */
 2433|  18.4k|	at = 0;
 2434|  20.0k|	for (slide_from = 0; slide_from < stcb->asoc.mapping_array_size; slide_from++) {
  ------------------
  |  Branch (2434:23): [True: 20.0k, False: 13]
  ------------------
 2435|  20.0k|		val = asoc->nr_mapping_array[slide_from] | asoc->mapping_array[slide_from];
 2436|  20.0k|		if (val == 0xff) {
  ------------------
  |  Branch (2436:7): [True: 1.59k, False: 18.4k]
  ------------------
 2437|  1.59k|			at += 8;
 2438|  18.4k|		} else {
 2439|       |			/* there is a 0 bit */
 2440|  18.4k|			at += sctp_map_lookup_tab[val];
 2441|  18.4k|			break;
 2442|  18.4k|		}
 2443|  20.0k|	}
 2444|  18.4k|	asoc->cumulative_tsn = asoc->mapping_array_base_tsn + (at-1);
 2445|       |
 2446|  18.4k|	if (SCTP_TSN_GT(asoc->cumulative_tsn, asoc->highest_tsn_inside_map) &&
  ------------------
  |  |  889|  18.4k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  36.8k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 2.49k, False: 15.9k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 2.49k]
  |  |  |  |  ------------------
  |  |  |  |  884|  36.8k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 5.91k, False: 12.5k]
  |  |  |  |  |  Branch (884:43): [True: 4.39k, False: 1.51k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2447|  4.39k|            SCTP_TSN_GT(asoc->cumulative_tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  4.39k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.39k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 58, False: 4.34k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 58]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.39k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 4.39k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2448|      0|#ifdef INVARIANTS
 2449|      0|		panic("huh, cumack 0x%x greater than high-tsn 0x%x in map",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2450|      0|		      asoc->cumulative_tsn, asoc->highest_tsn_inside_map);
 2451|       |#else
 2452|       |		SCTP_PRINTF("huh, cumack 0x%x greater than high-tsn 0x%x in map - should panic?\n",
 2453|       |			    asoc->cumulative_tsn, asoc->highest_tsn_inside_map);
 2454|       |		sctp_print_mapping_array(asoc);
 2455|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
 2456|       |			sctp_log_map(0, 6, asoc->highest_tsn_inside_map, SCTP_MAP_SLIDE_RESULT);
 2457|       |		}
 2458|       |		asoc->highest_tsn_inside_map = asoc->cumulative_tsn;
 2459|       |		asoc->highest_tsn_inside_nr_map = asoc->cumulative_tsn;
 2460|       |#endif
 2461|      0|	}
 2462|  18.4k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  18.4k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  18.4k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.94k, False: 16.4k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 1.94k]
  |  |  |  |  ------------------
  |  |  |  |  884|  18.4k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 5.97k, False: 12.4k]
  |  |  |  |  |  Branch (884:43): [True: 5.97k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2463|  5.97k|		highest_tsn = asoc->highest_tsn_inside_nr_map;
 2464|  12.4k|	} else {
 2465|  12.4k|		highest_tsn = asoc->highest_tsn_inside_map;
 2466|  12.4k|	}
 2467|  18.4k|	if ((asoc->cumulative_tsn == highest_tsn) && (at >= 8)) {
  ------------------
  |  Branch (2467:6): [True: 13.4k, False: 5.03k]
  |  Branch (2467:47): [True: 289, False: 13.1k]
  ------------------
 2468|       |		/* The complete array was completed by a single FR */
 2469|       |		/* highest becomes the cum-ack */
 2470|    289|		int clr;
 2471|    289|#ifdef INVARIANTS
 2472|    289|		unsigned int i;
 2473|    289|#endif
 2474|       |
 2475|       |		/* clear the array */
 2476|    289|		clr = ((at+7) >> 3);
 2477|    289|		if (clr > asoc->mapping_array_size) {
  ------------------
  |  Branch (2477:7): [True: 0, False: 289]
  ------------------
 2478|      0|			clr = asoc->mapping_array_size;
 2479|      0|		}
 2480|    289|		memset(asoc->mapping_array, 0, clr);
 2481|    289|		memset(asoc->nr_mapping_array, 0, clr);
 2482|    289|#ifdef INVARIANTS
 2483|  4.91k|		for (i = 0; i < asoc->mapping_array_size; i++) {
  ------------------
  |  Branch (2483:15): [True: 4.62k, False: 289]
  ------------------
 2484|  4.62k|			if ((asoc->mapping_array[i]) || (asoc->nr_mapping_array[i])) {
  ------------------
  |  Branch (2484:8): [True: 0, False: 4.62k]
  |  Branch (2484:36): [True: 0, False: 4.62k]
  ------------------
 2485|      0|				SCTP_PRINTF("Error Mapping array's not clean at clear\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 2486|      0|				sctp_print_mapping_array(asoc);
 2487|      0|			}
 2488|  4.62k|		}
 2489|    289|#endif
 2490|    289|		asoc->mapping_array_base_tsn = asoc->cumulative_tsn + 1;
 2491|    289|		asoc->highest_tsn_inside_nr_map = asoc->highest_tsn_inside_map = asoc->cumulative_tsn;
 2492|  18.1k|	} else if (at >= 8) {
  ------------------
  |  Branch (2492:13): [True: 17, False: 18.1k]
  ------------------
 2493|       |		/* we can slide the mapping array down */
 2494|       |		/* slide_from holds where we hit the first NON 0xff byte */
 2495|       |
 2496|       |		/*
 2497|       |		 * now calculate the ceiling of the move using our highest
 2498|       |		 * TSN value
 2499|       |		 */
 2500|     17|		SCTP_CALC_TSN_TO_GAP(lgap, highest_tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|     17|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|     17|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 17, False: 0]
  |  |  ------------------
  |  |  901|     17|						gap = tsn - mapping_tsn; \
  |  |  902|     17|					} else { \
  |  |  903|      0|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|      0|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|      0|					} \
  |  |  905|     17|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 17]
  |  |  ------------------
  ------------------
 2501|     17|		slide_end = (lgap >> 3);
 2502|     17|		if (slide_end < slide_from) {
  ------------------
  |  Branch (2502:7): [True: 0, False: 17]
  ------------------
 2503|      0|			sctp_print_mapping_array(asoc);
 2504|      0|#ifdef INVARIANTS
 2505|      0|			panic("impossible slide");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2506|       |#else
 2507|       |			SCTP_PRINTF("impossible slide lgap: %x slide_end: %x slide_from: %x? at: %d\n",
 2508|       |			            lgap, slide_end, slide_from, at);
 2509|       |			return;
 2510|       |#endif
 2511|      0|		}
 2512|     17|		if (slide_end > asoc->mapping_array_size) {
  ------------------
  |  Branch (2512:7): [True: 0, False: 17]
  ------------------
 2513|      0|#ifdef INVARIANTS
 2514|      0|			panic("would overrun buffer");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2515|       |#else
 2516|       |			SCTP_PRINTF("Gak, would have overrun map end: %d slide_end: %d\n",
 2517|       |			            asoc->mapping_array_size, slide_end);
 2518|       |			slide_end = asoc->mapping_array_size;
 2519|       |#endif
 2520|      0|		}
 2521|     17|		distance = (slide_end - slide_from) + 1;
 2522|     17|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|     17|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|     17|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (2522:7): [True: 0, False: 17]
  ------------------
 2523|      0|			sctp_log_map(old_base, old_cumack, old_highest,
 2524|      0|				     SCTP_MAP_PREPARE_SLIDE);
  ------------------
  |  |  126|      0|#define SCTP_MAP_PREPARE_SLIDE      21
  ------------------
 2525|      0|			sctp_log_map((uint32_t) slide_from, (uint32_t) slide_end,
 2526|      0|				     (uint32_t) lgap, SCTP_MAP_SLIDE_FROM);
  ------------------
  |  |  127|      0|#define SCTP_MAP_SLIDE_FROM         22
  ------------------
 2527|      0|		}
 2528|     17|		if (distance + slide_from > asoc->mapping_array_size ||
  ------------------
  |  Branch (2528:7): [True: 0, False: 17]
  ------------------
 2529|     17|		    distance < 0) {
  ------------------
  |  Branch (2529:7): [True: 0, False: 17]
  ------------------
 2530|       |			/*
 2531|       |			 * Here we do NOT slide forward the array so that
 2532|       |			 * hopefully when more data comes in to fill it up
 2533|       |			 * we will be able to slide it forward. Really I
 2534|       |			 * don't think this should happen :-0
 2535|       |			 */
 2536|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|      0|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (2536:8): [True: 0, False: 0]
  ------------------
 2537|      0|				sctp_log_map((uint32_t) distance, (uint32_t) slide_from,
 2538|      0|					     (uint32_t) asoc->mapping_array_size,
 2539|      0|					     SCTP_MAP_SLIDE_NONE);
  ------------------
  |  |  130|      0|#define SCTP_MAP_SLIDE_NONE         25
  ------------------
 2540|      0|			}
 2541|     17|		} else {
 2542|     17|			int ii;
 2543|       |
 2544|  1.78k|			for (ii = 0; ii < distance; ii++) {
  ------------------
  |  Branch (2544:17): [True: 1.77k, False: 17]
  ------------------
 2545|  1.77k|				asoc->mapping_array[ii] = asoc->mapping_array[slide_from + ii];
 2546|  1.77k|				asoc->nr_mapping_array[ii] = asoc->nr_mapping_array[slide_from + ii];
 2547|  1.77k|			}
 2548|    553|			for (ii = distance; ii < asoc->mapping_array_size; ii++) {
  ------------------
  |  Branch (2548:24): [True: 536, False: 17]
  ------------------
 2549|    536|				asoc->mapping_array[ii] = 0;
 2550|    536|				asoc->nr_mapping_array[ii] = 0;
 2551|    536|			}
 2552|     17|			if (asoc->highest_tsn_inside_map + 1 == asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (2552:8): [True: 11, False: 6]
  ------------------
 2553|     11|				asoc->highest_tsn_inside_map += (slide_from << 3);
 2554|     11|			}
 2555|     17|			if (asoc->highest_tsn_inside_nr_map + 1 == asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (2555:8): [True: 0, False: 17]
  ------------------
 2556|      0|				asoc->highest_tsn_inside_nr_map += (slide_from << 3);
 2557|      0|			}
 2558|     17|			asoc->mapping_array_base_tsn += (slide_from << 3);
 2559|     17|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|     17|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|     17|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (2559:8): [True: 0, False: 17]
  ------------------
 2560|      0|				sctp_log_map(asoc->mapping_array_base_tsn,
 2561|      0|					     asoc->cumulative_tsn, asoc->highest_tsn_inside_map,
 2562|      0|					     SCTP_MAP_SLIDE_RESULT);
  ------------------
  |  |  128|      0|#define SCTP_MAP_SLIDE_RESULT       23
  ------------------
 2563|      0|			}
 2564|     17|		}
 2565|     17|	}
 2566|  18.4k|}
sctp_sack_check:
 2570|  4.83k|{
 2571|  4.83k|	struct sctp_association *asoc;
 2572|  4.83k|	uint32_t highest_tsn;
 2573|  4.83k|	int is_a_gap;
 2574|       |
 2575|  4.83k|	sctp_slide_mapping_arrays(stcb);
 2576|  4.83k|	asoc = &stcb->asoc;
 2577|  4.83k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  4.83k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.83k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 940, False: 3.89k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 940]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.83k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 884, False: 3.94k]
  |  |  |  |  |  Branch (884:43): [True: 884, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2578|    884|		highest_tsn = asoc->highest_tsn_inside_nr_map;
 2579|  3.94k|	} else {
 2580|  3.94k|		highest_tsn = asoc->highest_tsn_inside_map;
 2581|  3.94k|	}
 2582|       |	/* Is there a gap now? */
 2583|  4.83k|	is_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn);
  ------------------
  |  |  889|  4.83k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.83k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 88, False: 4.74k]
  |  |  |  |  |  Branch (883:43): [True: 88, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.83k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.59k, False: 3.15k]
  |  |  |  |  |  Branch (884:43): [True: 1.59k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2584|       |
 2585|       |	/*
 2586|       |	 * Now we need to see if we need to queue a sack or just start the
 2587|       |	 * timer (if allowed).
 2588|       |	 */
 2589|  4.83k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  472|  4.83k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  4.83k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  460|  4.83k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (2589:6): [True: 0, False: 4.83k]
  ------------------
 2590|       |		/*
 2591|       |		 * Ok special case, in SHUTDOWN-SENT case. here we
 2592|       |		 * maker sure SACK timer is off and instead send a
 2593|       |		 * SHUTDOWN and a SACK
 2594|       |		 */
 2595|      0|		if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 2596|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 2597|      0|			                stcb->sctp_ep, stcb, NULL,
 2598|      0|			                SCTP_FROM_SCTP_INDATA + SCTP_LOC_19);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			                SCTP_FROM_SCTP_INDATA + SCTP_LOC_19);
  ------------------
  |  |  787|      0|#define SCTP_LOC_19 0x00000013
  ------------------
 2599|      0|		}
 2600|      0|		sctp_send_shutdown(stcb,
 2601|      0|		                   ((stcb->asoc.alternate) ? stcb->asoc.alternate : stcb->asoc.primary_destination));
  ------------------
  |  Branch (2601:23): [True: 0, False: 0]
  ------------------
 2602|      0|		if (is_a_gap) {
  ------------------
  |  Branch (2602:7): [True: 0, False: 0]
  ------------------
 2603|      0|			sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2604|      0|		}
 2605|  4.83k|	} else {
 2606|       |		/*
 2607|       |		 * CMT DAC algorithm: increase number of packets
 2608|       |		 * received since last ack
 2609|       |		 */
 2610|  4.83k|		stcb->asoc.cmt_dac_pkts_rcvd++;
 2611|       |
 2612|  4.83k|		if ((stcb->asoc.send_sack == 1) ||      /* We need to send a SACK */
  ------------------
  |  Branch (2612:7): [True: 4.60k, False: 226]
  ------------------
 2613|    226|		    ((was_a_gap) && (is_a_gap == 0)) ||	/* was a gap, but no
  ------------------
  |  Branch (2613:8): [True: 0, False: 226]
  |  Branch (2613:23): [True: 0, False: 0]
  ------------------
 2614|       |		                                         * longer is one */
 2615|    226|		    (stcb->asoc.numduptsns) ||          /* we have dup's */
  ------------------
  |  Branch (2615:7): [True: 0, False: 226]
  ------------------
 2616|    226|		    (is_a_gap) ||                       /* is still a gap */
  ------------------
  |  Branch (2616:7): [True: 130, False: 96]
  ------------------
 2617|     96|		    (stcb->asoc.delayed_ack == 0) ||    /* Delayed sack disabled */
  ------------------
  |  Branch (2617:7): [True: 0, False: 96]
  ------------------
 2618|  4.73k|		    (stcb->asoc.data_pkts_seen >= stcb->asoc.sack_freq)) {	/* hit limit of pkts */
  ------------------
  |  Branch (2618:7): [True: 0, False: 96]
  ------------------
 2619|  4.73k|			if ((stcb->asoc.sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (2619:8): [True: 0, False: 4.73k]
  ------------------
 2620|      0|			    (SCTP_BASE_SYSCTL(sctp_cmt_use_dac)) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (2620:8): [True: 0, False: 0]
  ------------------
 2621|      0|			    (stcb->asoc.send_sack == 0) &&
  ------------------
  |  Branch (2621:8): [True: 0, False: 0]
  ------------------
 2622|      0|			    (stcb->asoc.numduptsns == 0) &&
  ------------------
  |  Branch (2622:8): [True: 0, False: 0]
  ------------------
 2623|      0|			    (stcb->asoc.delayed_ack) &&
  ------------------
  |  Branch (2623:8): [True: 0, False: 0]
  ------------------
 2624|      0|			    (!SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer))) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (2624:8): [True: 0, False: 0]
  ------------------
 2625|       |				/*
 2626|       |				 * CMT DAC algorithm: With CMT,
 2627|       |				 * delay acks even in the face of
 2628|       |				 * reordering. Therefore, if acks
 2629|       |				 * that do not have to be sent
 2630|       |				 * because of the above reasons,
 2631|       |				 * will be delayed. That is, acks
 2632|       |				 * that would have been sent due to
 2633|       |				 * gap reports will be delayed with
 2634|       |				 * DAC. Start the delayed ack timer.
 2635|       |				 */
 2636|      0|				sctp_timer_start(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 2637|      0|				                 stcb->sctp_ep, stcb, NULL);
 2638|  4.73k|			} else {
 2639|       |				/*
 2640|       |				 * Ok we must build a SACK since the
 2641|       |				 * timer is pending, we got our
 2642|       |				 * first packet OR there are gaps or
 2643|       |				 * duplicates.
 2644|       |				 */
 2645|  4.73k|				sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|  4.73k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 2646|  4.73k|				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_20);
  ------------------
  |  |  757|  4.73k|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_20);
  ------------------
  |  |  788|  4.73k|#define SCTP_LOC_20 0x00000014
  ------------------
 2647|  4.73k|				sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  4.73k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2648|  4.73k|			}
 2649|  4.73k|		} else {
 2650|     96|			if (!SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|     96|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|     96|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (2650:8): [True: 96, False: 0]
  ------------------
 2651|     96|				sctp_timer_start(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|     96|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 2652|       |				                 stcb->sctp_ep, stcb, NULL);
 2653|     96|			}
 2654|     96|		}
 2655|  4.83k|	}
 2656|  4.83k|}
sctp_process_data:
 2662|  4.82k|{
 2663|  4.82k|	struct sctp_chunkhdr *ch, chunk_buf;
 2664|  4.82k|	struct sctp_association *asoc;
 2665|  4.82k|	int num_chunks = 0;	/* number of control chunks processed */
 2666|  4.82k|	int stop_proc = 0;
 2667|  4.82k|	int break_flag, last_chunk;
 2668|  4.82k|	int abort_flag = 0, was_a_gap;
 2669|  4.82k|	struct mbuf *m;
 2670|  4.82k|	uint32_t highest_tsn;
 2671|  4.82k|	uint16_t chk_length;
 2672|       |
 2673|       |	/* set the rwnd */
 2674|  4.82k|	sctp_set_rwnd(stcb, &stcb->asoc);
 2675|       |
 2676|  4.82k|	m = *mm;
 2677|  4.82k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  4.82k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  4.82k|	do {                         \
  |  |  |  |  113|  4.82k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4.82k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  4.82k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4.82k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2678|  4.82k|	asoc = &stcb->asoc;
 2679|  4.82k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  4.82k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.82k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 4.82k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.82k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 53, False: 4.77k]
  |  |  |  |  |  Branch (884:43): [True: 53, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2680|     53|		highest_tsn = asoc->highest_tsn_inside_nr_map;
 2681|  4.77k|	} else {
 2682|  4.77k|		highest_tsn = asoc->highest_tsn_inside_map;
 2683|  4.77k|	}
 2684|  4.82k|	was_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn);
  ------------------
  |  |  889|  4.82k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.82k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 4.82k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.82k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 4.82k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2685|       |	/*
 2686|       |	 * setup where we got the last DATA packet from for any SACK that
 2687|       |	 * may need to go out. Don't bump the net. This is done ONLY when a
 2688|       |	 * chunk is assigned.
 2689|       |	 */
 2690|  4.82k|	asoc->last_data_chunk_from = net;
 2691|       |
 2692|       |	/*-
 2693|       |	 * Now before we proceed we must figure out if this is a wasted
 2694|       |	 * cluster... i.e. it is a small packet sent in and yet the driver
 2695|       |	 * underneath allocated a full cluster for it. If so we must copy it
 2696|       |	 * to a smaller mbuf and free up the cluster mbuf. This will help
 2697|       |	 * with cluster starvation.
 2698|       |	 */
 2699|  4.82k|	if (SCTP_BUF_LEN(m) < (long)MLEN && SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  801|  4.82k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  4.82k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              	if (SCTP_BUF_LEN(m) < (long)MLEN && SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  138|  9.65k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  4.82k|#define MSIZE 256
  |  |  ------------------
  ------------------
              	if (SCTP_BUF_LEN(m) < (long)MLEN && SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  4.41k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  4.41k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2699:6): [True: 4.41k, False: 416]
  |  Branch (2699:38): [True: 2.11k, False: 2.29k]
  ------------------
 2700|       |		/* we only handle mbufs that are singletons.. not chains */
 2701|  2.11k|		m = sctp_get_mbuf_for_msg(SCTP_BUF_LEN(m), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  801|  2.11k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.11k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              		m = sctp_get_mbuf_for_msg(SCTP_BUF_LEN(m), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.11k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m = sctp_get_mbuf_for_msg(SCTP_BUF_LEN(m), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.11k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 2702|  2.11k|		if (m) {
  ------------------
  |  Branch (2702:7): [True: 2.11k, False: 0]
  ------------------
 2703|       |			/* ok lets see if we can copy the data up */
 2704|  2.11k|			caddr_t *from, *to;
 2705|       |			/* get the pointers and copy */
 2706|  2.11k|			to = mtod(m, caddr_t *);
  ------------------
  |  |   96|  2.11k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.11k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2707|  2.11k|			from = mtod((*mm), caddr_t *);
  ------------------
  |  |   96|  2.11k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.11k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2708|  2.11k|			memcpy(to, from, SCTP_BUF_LEN((*mm)));
  ------------------
  |  |  801|  2.11k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.11k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2709|       |			/* copy the length and free up the old */
 2710|  2.11k|			SCTP_BUF_LEN(m) = SCTP_BUF_LEN((*mm));
  ------------------
  |  |  801|  2.11k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.11k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              			SCTP_BUF_LEN(m) = SCTP_BUF_LEN((*mm));
  ------------------
  |  |  801|  2.11k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.11k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2711|  2.11k|			sctp_m_freem(*mm);
  ------------------
  |  |   52|  2.11k|#define sctp_m_freem m_freem
  ------------------
 2712|       |			/* success, back copy */
 2713|  2.11k|			*mm = m;
 2714|  2.11k|		} else {
 2715|       |			/* We are in trouble in the mbuf world .. yikes */
 2716|      0|			m = *mm;
 2717|      0|		}
 2718|  2.11k|	}
 2719|       |	/* get pointer to the first chunk header */
 2720|  4.82k|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 2721|  4.82k|	                                           sizeof(struct sctp_chunkhdr),
 2722|  4.82k|	                                           (uint8_t *)&chunk_buf);
 2723|  4.82k|	if (ch == NULL) {
  ------------------
  |  Branch (2723:6): [True: 0, False: 4.82k]
  ------------------
 2724|      0|		return (1);
 2725|      0|	}
 2726|       |	/*
 2727|       |	 * process all DATA chunks...
 2728|       |	 */
 2729|  4.82k|	*high_tsn = asoc->cumulative_tsn;
 2730|  4.82k|	break_flag = 0;
 2731|  4.82k|	asoc->data_pkts_seen++;
 2732|  21.0k|	while (stop_proc == 0) {
  ------------------
  |  Branch (2732:9): [True: 16.9k, False: 4.02k]
  ------------------
 2733|       |		/* validate chunk length */
 2734|  16.9k|		chk_length = ntohs(ch->chunk_length);
 2735|  16.9k|		if (length - *offset < chk_length) {
  ------------------
  |  Branch (2735:7): [True: 612, False: 16.3k]
  ------------------
 2736|       |			/* all done, mutulated chunk */
 2737|    612|			stop_proc = 1;
 2738|    612|			continue;
 2739|    612|		}
 2740|  16.3k|		if ((asoc->idata_supported == 1) &&
  ------------------
  |  Branch (2740:7): [True: 6.65k, False: 9.73k]
  ------------------
 2741|  6.65k|		    (ch->chunk_type == SCTP_DATA)) {
  ------------------
  |  |  454|  6.65k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (2741:7): [True: 178, False: 6.47k]
  ------------------
 2742|    178|			struct mbuf *op_err;
 2743|    178|			char msg[SCTP_DIAG_INFO_LEN];
 2744|       |
 2745|    178|			SCTP_SNPRINTF(msg, sizeof(msg), "%s", "DATA chunk received when I-DATA was negotiated");
  ------------------
  |  |  820|    178|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 178]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2746|    178|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    178|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2747|    178|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21;
  ------------------
  |  |  757|    178|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21;
  ------------------
  |  |  789|    178|#define SCTP_LOC_21 0x00000015
  ------------------
 2748|    178|			sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    178|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2749|    178|			return (2);
 2750|    178|		}
 2751|  16.2k|		if ((asoc->idata_supported == 0) &&
  ------------------
  |  Branch (2751:7): [True: 9.73k, False: 6.47k]
  ------------------
 2752|  9.73k|		    (ch->chunk_type == SCTP_IDATA)) {
  ------------------
  |  |  474|  9.73k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2752:7): [True: 3, False: 9.72k]
  ------------------
 2753|      3|			struct mbuf *op_err;
 2754|      3|			char msg[SCTP_DIAG_INFO_LEN];
 2755|       |
 2756|      3|			SCTP_SNPRINTF(msg, sizeof(msg), "%s", "I-DATA chunk received when DATA was negotiated");
  ------------------
  |  |  820|      3|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 3]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2757|      3|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      3|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2758|      3|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_22;
  ------------------
  |  |  757|      3|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_22;
  ------------------
  |  |  790|      3|#define SCTP_LOC_22 0x00000016
  ------------------
 2759|      3|			sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      3|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2760|      3|			return (2);
 2761|      3|		}
 2762|  16.2k|		if ((ch->chunk_type == SCTP_DATA) ||
  ------------------
  |  |  454|  16.2k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (2762:7): [True: 9.02k, False: 7.18k]
  ------------------
 2763|  13.2k|		    (ch->chunk_type == SCTP_IDATA)) {
  ------------------
  |  |  474|  7.18k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2763:7): [True: 4.17k, False: 3.00k]
  ------------------
 2764|  13.2k|			uint16_t clen;
 2765|       |
 2766|  13.2k|			if (ch->chunk_type == SCTP_DATA) {
  ------------------
  |  |  454|  13.2k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (2766:8): [True: 9.02k, False: 4.17k]
  ------------------
 2767|  9.02k|				clen = sizeof(struct sctp_data_chunk);
 2768|  9.02k|			} else {
 2769|  4.17k|				clen = sizeof(struct sctp_idata_chunk);
 2770|  4.17k|			}
 2771|  13.2k|			if (chk_length < clen) {
  ------------------
  |  Branch (2771:8): [True: 101, False: 13.0k]
  ------------------
 2772|       |				/*
 2773|       |				 * Need to send an abort since we had a
 2774|       |				 * invalid data chunk.
 2775|       |				 */
 2776|    101|				struct mbuf *op_err;
 2777|    101|				char msg[SCTP_DIAG_INFO_LEN];
 2778|       |
 2779|    101|				SCTP_SNPRINTF(msg, sizeof(msg), "%s chunk of length %u",
  ------------------
  |  |  820|    202|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 101]
  |  |  |  Branch (820:21): [True: 87, False: 14]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2780|    101|				              ch->chunk_type == SCTP_DATA ? "DATA" : "I-DATA",
 2781|    101|				              chk_length);
 2782|    101|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    101|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2783|    101|				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_23;
  ------------------
  |  |  757|    101|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_23;
  ------------------
  |  |  791|    101|#define SCTP_LOC_23 0x00000017
  ------------------
 2784|    101|				sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    101|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2785|    101|				return (2);
 2786|    101|			}
 2787|       |#ifdef SCTP_AUDITING_ENABLED
 2788|       |			sctp_audit_log(0xB1, 0);
 2789|       |#endif
 2790|  13.0k|			if (SCTP_SIZE32(chk_length) == (length - *offset)) {
  ------------------
  |  |  383|  13.0k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (2790:8): [True: 1.97k, False: 11.1k]
  ------------------
 2791|  1.97k|				last_chunk = 1;
 2792|  11.1k|			} else {
 2793|  11.1k|				last_chunk = 0;
 2794|  11.1k|			}
 2795|  13.0k|			if (sctp_process_a_data_chunk(stcb, asoc, mm, *offset,
  ------------------
  |  Branch (2795:8): [True: 6.04k, False: 7.05k]
  ------------------
 2796|  13.0k|						      chk_length, net, high_tsn, &abort_flag, &break_flag,
 2797|  13.0k|						      last_chunk, ch->chunk_type)) {
 2798|  6.04k|				num_chunks++;
 2799|  6.04k|			}
 2800|  13.0k|			if (abort_flag)
  ------------------
  |  Branch (2800:8): [True: 436, False: 12.6k]
  ------------------
 2801|    436|				return (2);
 2802|       |
 2803|  12.6k|			if (break_flag) {
  ------------------
  |  Branch (2803:8): [True: 14, False: 12.6k]
  ------------------
 2804|       |				/*
 2805|       |				 * Set because of out of rwnd space and no
 2806|       |				 * drop rep space left.
 2807|       |				 */
 2808|     14|				stop_proc = 1;
 2809|     14|				continue;
 2810|     14|			}
 2811|  12.6k|		} else {
 2812|       |			/* not a data chunk in the data region */
 2813|  3.00k|			switch (ch->chunk_type) {
 2814|      3|			case SCTP_INITIATION:
  ------------------
  |  |  455|      3|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (2814:4): [True: 3, False: 3.00k]
  ------------------
 2815|      5|			case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|      5|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (2815:4): [True: 2, False: 3.00k]
  ------------------
 2816|      6|			case SCTP_SELECTIVE_ACK:
  ------------------
  |  |  457|      6|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (2816:4): [True: 1, False: 3.00k]
  ------------------
 2817|      9|			case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|      9|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (2817:4): [True: 3, False: 3.00k]
  ------------------
 2818|     19|			case SCTP_HEARTBEAT_REQUEST:
  ------------------
  |  |  458|     19|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (2818:4): [True: 10, False: 2.99k]
  ------------------
 2819|     21|			case SCTP_HEARTBEAT_ACK:
  ------------------
  |  |  459|     21|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (2819:4): [True: 2, False: 3.00k]
  ------------------
 2820|     22|			case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|     22|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (2820:4): [True: 1, False: 3.00k]
  ------------------
 2821|     24|			case SCTP_SHUTDOWN:
  ------------------
  |  |  461|     24|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (2821:4): [True: 2, False: 3.00k]
  ------------------
 2822|     28|			case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|     28|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (2822:4): [True: 4, False: 3.00k]
  ------------------
 2823|     38|			case SCTP_OPERATION_ERROR:
  ------------------
  |  |  463|     38|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (2823:4): [True: 10, False: 2.99k]
  ------------------
 2824|     39|			case SCTP_COOKIE_ECHO:
  ------------------
  |  |  464|     39|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (2824:4): [True: 1, False: 3.00k]
  ------------------
 2825|     41|			case SCTP_COOKIE_ACK:
  ------------------
  |  |  465|     41|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (2825:4): [True: 2, False: 3.00k]
  ------------------
 2826|     43|			case SCTP_ECN_ECHO:
  ------------------
  |  |  466|     43|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (2826:4): [True: 2, False: 3.00k]
  ------------------
 2827|     44|			case SCTP_ECN_CWR:
  ------------------
  |  |  467|     44|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (2827:4): [True: 1, False: 3.00k]
  ------------------
 2828|     48|			case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|     48|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (2828:4): [True: 4, False: 3.00k]
  ------------------
 2829|     50|			case SCTP_AUTHENTICATION:
  ------------------
  |  |  470|     50|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (2829:4): [True: 2, False: 3.00k]
  ------------------
 2830|     52|			case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|     52|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (2830:4): [True: 2, False: 3.00k]
  ------------------
 2831|     53|			case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|     53|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (2831:4): [True: 1, False: 3.00k]
  ------------------
 2832|     54|			case SCTP_STREAM_RESET:
  ------------------
  |  |  481|     54|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (2832:4): [True: 1, False: 3.00k]
  ------------------
 2833|     58|			case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|     58|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (2833:4): [True: 4, False: 3.00k]
  ------------------
 2834|     59|			case SCTP_ASCONF:
  ------------------
  |  |  489|     59|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (2834:4): [True: 1, False: 3.00k]
  ------------------
 2835|     59|			{
 2836|       |				/*
 2837|       |				 * Now, what do we do with KNOWN chunks that
 2838|       |				 * are NOT in the right place?
 2839|       |				 *
 2840|       |				 * For now, I do nothing but ignore them. We
 2841|       |				 * may later want to add sysctl stuff to
 2842|       |				 * switch out and do either an ABORT() or
 2843|       |				 * possibly process them.
 2844|       |				 */
 2845|     59|				struct mbuf *op_err;
 2846|     59|				char msg[SCTP_DIAG_INFO_LEN];
 2847|       |
 2848|     59|				SCTP_SNPRINTF(msg, sizeof(msg), "DATA chunk followed by chunk of type %2.2x",
  ------------------
  |  |  820|     59|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 59]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2849|     59|				              ch->chunk_type);
 2850|     59|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     59|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2851|     59|				sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     59|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2852|     59|				return (2);
 2853|     58|			}
 2854|  2.94k|			default:
  ------------------
  |  Branch (2854:4): [True: 2.94k, False: 59]
  ------------------
 2855|       |				/*
 2856|       |				 * Unknown chunk type: use bit rules after
 2857|       |				 * checking length
 2858|       |				 */
 2859|  2.94k|				if (chk_length < sizeof(struct sctp_chunkhdr)) {
  ------------------
  |  Branch (2859:9): [True: 23, False: 2.92k]
  ------------------
 2860|       |					/*
 2861|       |					 * Need to send an abort since we had a
 2862|       |					 * invalid chunk.
 2863|       |					 */
 2864|     23|					struct mbuf *op_err;
 2865|     23|					char msg[SCTP_DIAG_INFO_LEN];
 2866|       |
 2867|     23|					SCTP_SNPRINTF(msg, sizeof(msg), "Chunk of length %u", chk_length);
  ------------------
  |  |  820|     23|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 23]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2868|     23|					op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     23|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2869|     23|					stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24;
  ------------------
  |  |  757|     23|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              					stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24;
  ------------------
  |  |  792|     23|#define SCTP_LOC_24 0x00000018
  ------------------
 2870|     23|					sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     23|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2871|     23|					return (2);
 2872|     23|				}
 2873|  2.92k|				if (ch->chunk_type & 0x40) {
  ------------------
  |  Branch (2873:9): [True: 2.78k, False: 138]
  ------------------
 2874|       |					/* Add a error report to the queue */
 2875|  2.78k|					struct mbuf *op_err;
 2876|  2.78k|					struct sctp_gen_error_cause *cause;
 2877|       |
 2878|  2.78k|					op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_gen_error_cause),
 2879|  2.78k|					                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.78k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.78k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 2880|  2.78k|					if (op_err != NULL) {
  ------------------
  |  Branch (2880:10): [True: 2.78k, False: 0]
  ------------------
 2881|  2.78k|						cause  = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|  2.78k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.78k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2882|  2.78k|						cause->code = htons(SCTP_CAUSE_UNRECOG_CHUNK);
 2883|  2.78k|						cause->length = htons((uint16_t)(chk_length + sizeof(struct sctp_gen_error_cause)));
 2884|  2.78k|						SCTP_BUF_LEN(op_err) = sizeof(struct sctp_gen_error_cause);
  ------------------
  |  |  801|  2.78k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.78k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2885|  2.78k|						SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
  ------------------
  |  |  802|  2.78k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.78k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              						SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
  ------------------
  |  |  770|  2.78k|#define SCTP_M_COPYM	m_copym
  ------------------
              						SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
  ------------------
  |  |   60|  2.78k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2886|  2.78k|						if (SCTP_BUF_NEXT(op_err) != NULL) {
  ------------------
  |  |  802|  2.78k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.78k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2886:11): [True: 2.78k, False: 0]
  ------------------
 2887|  2.78k|							sctp_queue_op_err(stcb, op_err);
 2888|  2.78k|						} else {
 2889|      0|							sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 2890|      0|						}
 2891|  2.78k|					}
 2892|  2.78k|				}
 2893|  2.92k|				if ((ch->chunk_type & 0x80) == 0) {
  ------------------
  |  Branch (2893:9): [True: 12, False: 2.91k]
  ------------------
 2894|       |					/* discard the rest of this packet */
 2895|     12|					stop_proc = 1;
 2896|     12|				}	/* else skip this bad chunk and
 2897|       |					 * continue... */
 2898|  2.92k|				break;
 2899|  3.00k|			}	/* switch of chunk type */
 2900|  3.00k|		}
 2901|  15.5k|		*offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|  15.5k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 2902|  15.5k|		if ((*offset >= length) || stop_proc) {
  ------------------
  |  Branch (2902:7): [True: 3.28k, False: 12.2k]
  |  Branch (2902:30): [True: 7, False: 12.2k]
  ------------------
 2903|       |			/* no more data left in the mbuf chain */
 2904|  3.29k|			stop_proc = 1;
 2905|  3.29k|			continue;
 2906|  3.29k|		}
 2907|  12.2k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 2908|  12.2k|		                                           sizeof(struct sctp_chunkhdr),
 2909|  12.2k|		                                           (uint8_t *)&chunk_buf);
 2910|  12.2k|		if (ch == NULL) {
  ------------------
  |  Branch (2910:7): [True: 107, False: 12.1k]
  ------------------
 2911|    107|			*offset = length;
 2912|    107|			stop_proc = 1;
 2913|    107|			continue;
 2914|    107|		}
 2915|  12.2k|	}
 2916|  4.02k|	if (break_flag) {
  ------------------
  |  Branch (2916:6): [True: 14, False: 4.01k]
  ------------------
 2917|       |		/*
 2918|       |		 * we need to report rwnd overrun drops.
 2919|       |		 */
 2920|     14|		sctp_send_packet_dropped(stcb, net, *mm, length, iphlen, 0);
 2921|     14|	}
 2922|  4.02k|	if (num_chunks) {
  ------------------
  |  Branch (2922:6): [True: 1.56k, False: 2.46k]
  ------------------
 2923|       |		/*
 2924|       |		 * Did we get data, if so update the time for auto-close and
 2925|       |		 * give peer credit for being alive.
 2926|       |		 */
 2927|  1.56k|		SCTP_STAT_INCR(sctps_recvpktwithdata);
  ------------------
  |  | 1112|  1.56k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.56k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.56k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2928|  1.56k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  1.56k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  1.56k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (2928:7): [True: 0, False: 1.56k]
  ------------------
 2929|      0|			sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
 2930|      0|				       stcb->asoc.overall_error_count,
 2931|      0|				       0,
 2932|      0|				       SCTP_FROM_SCTP_INDATA,
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
 2933|      0|				       __LINE__);
 2934|      0|		}
 2935|  1.56k|		stcb->asoc.overall_error_count = 0;
 2936|  1.56k|		(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_last_rcvd);
  ------------------
  |  |  991|  1.56k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 2937|  1.56k|	}
 2938|       |	/* now service all of the reassm queue if needed */
 2939|  4.02k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  472|  4.02k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  4.02k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  460|  4.02k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (2939:6): [True: 0, False: 4.02k]
  ------------------
 2940|       |		/* Assure that we ack right away */
 2941|      0|		stcb->asoc.send_sack = 1;
 2942|      0|	}
 2943|       |	/* Start a sack timer or QUEUE a SACK for sending */
 2944|  4.02k|	sctp_sack_check(stcb, was_a_gap);
 2945|  4.02k|	return (0);
 2946|  4.82k|}
sctp_express_handle_sack:
 3913|  1.08k|{
 3914|  1.08k|	struct sctp_nets *net;
 3915|  1.08k|	struct sctp_association *asoc;
 3916|  1.08k|	struct sctp_tmit_chunk *tp1, *tp2;
 3917|  1.08k|	uint32_t old_rwnd;
 3918|  1.08k|	int win_probe_recovery = 0;
 3919|  1.08k|	int win_probe_recovered = 0;
 3920|  1.08k|	int j, done_once = 0;
 3921|  1.08k|	int rto_ok = 1;
 3922|  1.08k|	uint32_t send_s;
 3923|       |
 3924|  1.08k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  590|  1.08k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  662|  1.08k|#define SCTP_LOG_SACK_ARRIVALS_ENABLE			0x00200000
  ------------------
  |  Branch (3924:6): [True: 0, False: 1.08k]
  ------------------
 3925|      0|		sctp_misc_ints(SCTP_SACK_LOG_EXPRESS, cumack,
  ------------------
  |  |  222|      0|#define SCTP_SACK_LOG_EXPRESS	   118
  ------------------
 3926|      0|		               rwnd, stcb->asoc.last_acked_seq, stcb->asoc.peers_rwnd);
 3927|      0|	}
 3928|  1.08k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.08k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.08k|	do {                         \
  |  |  |  |  113|  1.08k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.08k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.08k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.08k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3929|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 3930|       |	stcb->asoc.cumack_log[stcb->asoc.cumack_log_at] = cumack;
 3931|       |	stcb->asoc.cumack_log_at++;
 3932|       |	if (stcb->asoc.cumack_log_at > SCTP_TSN_LOG_SIZE) {
 3933|       |		stcb->asoc.cumack_log_at = 0;
 3934|       |	}
 3935|       |#endif
 3936|  1.08k|	asoc = &stcb->asoc;
 3937|  1.08k|	old_rwnd = asoc->peers_rwnd;
 3938|  1.08k|	if (SCTP_TSN_GT(asoc->last_acked_seq, cumack)) {
  ------------------
  |  |  889|  1.08k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.08k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 374, False: 706]
  |  |  |  |  |  Branch (883:43): [True: 274, False: 100]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.08k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 706, False: 100]
  |  |  |  |  |  Branch (884:43): [True: 670, False: 36]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3939|       |		/* old ack */
 3940|    944|		return;
 3941|    944|	} else if (asoc->last_acked_seq == cumack) {
  ------------------
  |  Branch (3941:13): [True: 0, False: 136]
  ------------------
 3942|       |		/* Window update sack */
 3943|      0|		asoc->peers_rwnd = sctp_sbspace_sub(rwnd,
  ------------------
  |  |   93|      0|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3944|      0|						    (uint32_t) (asoc->total_flight + (asoc->total_flight_count * SCTP_BASE_SYSCTL(sctp_peer_chunk_oh))));
 3945|      0|		if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (3945:7): [True: 0, False: 0]
  ------------------
 3946|       |			/* SWS sender side engages */
 3947|      0|			asoc->peers_rwnd = 0;
 3948|      0|		}
 3949|      0|		if (asoc->peers_rwnd > old_rwnd) {
  ------------------
  |  Branch (3949:7): [True: 0, False: 0]
  ------------------
 3950|      0|			goto again;
 3951|      0|		}
 3952|      0|		return;
 3953|      0|	}
 3954|       |
 3955|       |	/* First setup for CC stuff */
 3956|  1.08k|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (3956:2): [True: 361, False: 136]
  ------------------
 3957|    361|		if (SCTP_TSN_GT(cumack, net->cwr_window_tsn)) {
  ------------------
  |  |  889|    361|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    361|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 155, False: 206]
  |  |  |  |  |  Branch (883:43): [True: 155, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    361|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 206, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 206, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3958|       |			/* Drag along the window_tsn for cwr's */
 3959|    361|			net->cwr_window_tsn = cumack;
 3960|    361|		}
 3961|    361|		net->prev_cwnd = net->cwnd;
 3962|    361|		net->net_ack = 0;
 3963|    361|		net->net_ack2 = 0;
 3964|       |
 3965|       |		/*
 3966|       |		 * CMT: Reset CUC and Fast recovery algo variables before
 3967|       |		 * SACK processing
 3968|       |		 */
 3969|    361|		net->new_pseudo_cumack = 0;
 3970|    361|		net->will_exit_fast_recovery = 0;
 3971|    361|		if (stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) {
  ------------------
  |  Branch (3971:7): [True: 0, False: 361]
  ------------------
 3972|      0|			(*stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack)(stcb, net);
 3973|      0|		}
 3974|    361|	}
 3975|    136|	if (!TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (3975:6): [True: 72, False: 64]
  ------------------
 3976|     72|		tp1 = TAILQ_LAST(&asoc->sent_queue,
 3977|     72|				 sctpchunk_listhead);
 3978|     72|		send_s = tp1->rec.data.tsn + 1;
 3979|     72|	} else {
 3980|     64|		send_s = asoc->sending_seq;
 3981|     64|	}
 3982|    136|	if (SCTP_TSN_GE(cumack, send_s)) {
  ------------------
  |  |  890|    136|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    136|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|    272|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 36, False: 100]
  |  |  |  |  |  |  |  Branch (883:43): [True: 36, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|    272|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 100, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 100, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3983|    136|		struct mbuf *op_err;
 3984|    136|		char msg[SCTP_DIAG_INFO_LEN];
 3985|       |
 3986|    136|		*abort_now = 1;
 3987|       |		/* XXX */
 3988|    136|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|    136|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 136]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 3989|    136|		              "Cum ack %8.8x greater or equal than TSN %8.8x",
 3990|    136|		              cumack, send_s);
 3991|    136|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    136|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 3992|    136|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_25;
  ------------------
  |  |  757|    136|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_25;
  ------------------
  |  |  793|    136|#define SCTP_LOC_25 0x00000019
  ------------------
 3993|    136|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    136|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3994|    136|		return;
 3995|    136|	}
 3996|      0|	asoc->this_sack_highest_gap = cumack;
 3997|      0|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|      0|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (3997:6): [True: 0, False: 0]
  ------------------
 3998|      0|		sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
 3999|      0|			       stcb->asoc.overall_error_count,
 4000|      0|			       0,
 4001|      0|			       SCTP_FROM_SCTP_INDATA,
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
 4002|      0|			       __LINE__);
 4003|      0|	}
 4004|      0|	stcb->asoc.overall_error_count = 0;
 4005|      0|	if (SCTP_TSN_GT(cumack, asoc->last_acked_seq)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4006|       |		/* process the new consecutive TSN first */
 4007|      0|		TAILQ_FOREACH_SAFE(tp1, &asoc->sent_queue, sctp_next, tp2) {
  ------------------
  |  | 1129|      0|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|      0|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 0]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|      0|              (var) = (tvar))
  ------------------
 4008|      0|			if (SCTP_TSN_GE(cumack, tp1->rec.data.tsn)) {
  ------------------
  |  |  890|      0|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4009|      0|				if (tp1->sent == SCTP_DATAGRAM_UNSENT) {
  ------------------
  |  |  348|      0|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (4009:9): [True: 0, False: 0]
  ------------------
 4010|      0|					SCTP_PRINTF("Warning, an unsent is now acked?\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 4011|      0|				}
 4012|      0|				if (tp1->sent < SCTP_DATAGRAM_ACKED) {
  ------------------
  |  |  355|      0|#define SCTP_DATAGRAM_ACKED		10010
  ------------------
  |  Branch (4012:9): [True: 0, False: 0]
  ------------------
 4013|       |					/*
 4014|       |					 * If it is less than ACKED, it is
 4015|       |					 * now no-longer in flight. Higher
 4016|       |					 * values may occur during marking
 4017|       |					 */
 4018|      0|					if (tp1->sent < SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (4018:10): [True: 0, False: 0]
  ------------------
 4019|      0|						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  646|      0|#define SCTP_FLIGHT_LOGGING_ENABLE			0x00000020
  ------------------
  |  Branch (4019:11): [True: 0, False: 0]
  ------------------
 4020|      0|							sctp_misc_ints(SCTP_FLIGHT_LOG_DOWN_CA,
  ------------------
  |  |  211|      0|#define SCTP_FLIGHT_LOG_DOWN_CA    107
  ------------------
 4021|      0|								       tp1->whoTo->flight_size,
 4022|      0|								       tp1->book_size,
 4023|      0|								       (uint32_t)(uintptr_t)tp1->whoTo,
 4024|      0|								       tp1->rec.data.tsn);
 4025|      0|						}
 4026|      0|						sctp_flight_size_decrease(tp1);
  ------------------
  |  |  289|      0|#define sctp_flight_size_decrease(tp1) do { \
  |  |  290|      0|	if (tp1->whoTo->flight_size >= tp1->book_size) \
  |  |  ------------------
  |  |  |  Branch (290:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  291|      0|		tp1->whoTo->flight_size -= tp1->book_size; \
  |  |  292|      0|	else \
  |  |  293|      0|		tp1->whoTo->flight_size = 0; \
  |  |  294|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (294:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4027|      0|						if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) {
  ------------------
  |  Branch (4027:11): [True: 0, False: 0]
  ------------------
 4028|      0|							(*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged)(tp1->whoTo,
 4029|      0|														     tp1);
 4030|      0|						}
 4031|       |						/* sa_ignore NO_NULL_CHK */
 4032|      0|						sctp_total_flight_decrease(stcb, tp1);
  ------------------
  |  |  338|      0|#define sctp_total_flight_decrease(stcb, tp1) do { \
  |  |  339|      0|	tp1->window_probe = 0; \
  |  |  340|      0|	if (stcb->asoc.total_flight >= tp1->book_size) { \
  |  |  ------------------
  |  |  |  Branch (340:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  341|      0|		stcb->asoc.total_flight -= tp1->book_size; \
  |  |  342|      0|		if (stcb->asoc.total_flight_count > 0) \
  |  |  ------------------
  |  |  |  Branch (342:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  343|      0|			stcb->asoc.total_flight_count--; \
  |  |  344|      0|	} else { \
  |  |  345|      0|		stcb->asoc.total_flight = 0; \
  |  |  346|      0|		stcb->asoc.total_flight_count = 0; \
  |  |  347|      0|	} \
  |  |  348|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (348:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4033|      0|					}
 4034|      0|					tp1->whoTo->net_ack += tp1->send_size;
 4035|      0|					if (tp1->snd_count < 2) {
  ------------------
  |  Branch (4035:10): [True: 0, False: 0]
  ------------------
 4036|       |						/*
 4037|       |						 * True non-retransmitted
 4038|       |						 * chunk
 4039|       |						 */
 4040|      0|						tp1->whoTo->net_ack2 +=
 4041|      0|							tp1->send_size;
 4042|       |
 4043|       |						/* update RTO too? */
 4044|      0|						if (tp1->do_rtt) {
  ------------------
  |  Branch (4044:11): [True: 0, False: 0]
  ------------------
 4045|      0|							if (rto_ok &&
  ------------------
  |  Branch (4045:12): [True: 0, False: 0]
  ------------------
 4046|      0|							    sctp_calculate_rto(stcb,
  ------------------
  |  Branch (4046:12): [True: 0, False: 0]
  ------------------
 4047|      0|									       &stcb->asoc,
 4048|      0|									       tp1->whoTo,
 4049|      0|									       &tp1->sent_rcv_time,
 4050|      0|									       SCTP_RTT_FROM_DATA)) {
  ------------------
  |  |  341|      0|#define SCTP_RTT_FROM_DATA     1
  ------------------
 4051|      0|								rto_ok = 0;
 4052|      0|							}
 4053|      0|							if (tp1->whoTo->rto_needed == 0) {
  ------------------
  |  Branch (4053:12): [True: 0, False: 0]
  ------------------
 4054|      0|								tp1->whoTo->rto_needed = 1;
 4055|      0|							}
 4056|      0|							tp1->do_rtt = 0;
 4057|      0|						}
 4058|      0|					}
 4059|       |					/*
 4060|       |					 * CMT: CUCv2 algorithm. From the
 4061|       |					 * cumack'd TSNs, for each TSN being
 4062|       |					 * acked for the first time, set the
 4063|       |					 * following variables for the
 4064|       |					 * corresp destination.
 4065|       |					 * new_pseudo_cumack will trigger a
 4066|       |					 * cwnd update.
 4067|       |					 * find_(rtx_)pseudo_cumack will
 4068|       |					 * trigger search for the next
 4069|       |					 * expected (rtx-)pseudo-cumack.
 4070|       |					 */
 4071|      0|					tp1->whoTo->new_pseudo_cumack = 1;
 4072|      0|					tp1->whoTo->find_pseudo_cumack = 1;
 4073|      0|					tp1->whoTo->find_rtx_pseudo_cumack = 1;
 4074|      0|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|      0|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (4074:10): [True: 0, False: 0]
  ------------------
 4075|       |						/* sa_ignore NO_NULL_CHK */
 4076|      0|						sctp_log_cwnd(stcb, tp1->whoTo, tp1->rec.data.tsn, SCTP_CWND_LOG_FROM_SACK);
  ------------------
  |  |  168|      0|#define SCTP_CWND_LOG_FROM_SACK     64
  ------------------
 4077|      0|					}
 4078|      0|				}
 4079|      0|				if (tp1->sent == SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (4079:9): [True: 0, False: 0]
  ------------------
 4080|      0|					sctp_ucount_decr(asoc->sent_queue_retran_cnt);
  ------------------
  |  |  270|      0|#define sctp_ucount_decr(val) { \
  |  |  271|      0|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  272|      0|		val--; \
  |  |  273|      0|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|      0|}
  ------------------
 4081|      0|				}
 4082|      0|				if (tp1->rec.data.chunk_was_revoked) {
  ------------------
  |  Branch (4082:9): [True: 0, False: 0]
  ------------------
 4083|       |					/* deflate the cwnd */
 4084|      0|					tp1->whoTo->cwnd -= tp1->book_size;
 4085|      0|					tp1->rec.data.chunk_was_revoked = 0;
 4086|      0|				}
 4087|      0|				if (tp1->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|      0|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (4087:9): [True: 0, False: 0]
  ------------------
 4088|      0|					if (asoc->strmout[tp1->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (4088:10): [True: 0, False: 0]
  ------------------
 4089|      0|						asoc->strmout[tp1->rec.data.sid].chunks_on_queues--;
 4090|      0|#ifdef INVARIANTS
 4091|      0|					} else {
 4092|      0|						panic("No chunks on the queues for sid %u.", tp1->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4093|      0|#endif
 4094|      0|					}
 4095|      0|				}
 4096|      0|				if ((asoc->strmout[tp1->rec.data.sid].chunks_on_queues == 0) &&
  ------------------
  |  Branch (4096:9): [True: 0, False: 0]
  ------------------
 4097|      0|				    (asoc->strmout[tp1->rec.data.sid].state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|      0|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (4097:9): [True: 0, False: 0]
  ------------------
 4098|      0|				    TAILQ_EMPTY(&asoc->strmout[tp1->rec.data.sid].outqueue)) {
  ------------------
  |  Branch (4098:9): [True: 0, False: 0]
  ------------------
 4099|      0|					asoc->trigger_reset = 1;
 4100|      0|				}
 4101|      0|				TAILQ_REMOVE(&asoc->sent_queue, tp1, sctp_next);
  ------------------
  |  Branch (4101:5): [True: 0, False: 0]
  |  Branch (4101:5): [Folded, False: 0]
  ------------------
 4102|      0|				if (tp1->data) {
  ------------------
  |  Branch (4102:9): [True: 0, False: 0]
  ------------------
 4103|       |					/* sa_ignore NO_NULL_CHK */
 4104|      0|					sctp_free_bufspace(stcb, asoc, tp1, 1);
 4105|      0|					sctp_m_freem(tp1->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4106|      0|					tp1->data = NULL;
 4107|      0|				}
 4108|      0|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  655|      0|#define SCTP_SACK_LOGGING_ENABLE			0x00004000
  ------------------
  |  Branch (4108:9): [True: 0, False: 0]
  ------------------
 4109|      0|					sctp_log_sack(asoc->last_acked_seq,
 4110|      0|						      cumack,
 4111|      0|						      tp1->rec.data.tsn,
 4112|      0|						      0,
 4113|      0|						      0,
 4114|      0|						      SCTP_LOG_FREE_SENT);
  ------------------
  |  |  175|      0|#define SCTP_LOG_FREE_SENT             71
  ------------------
 4115|      0|				}
 4116|      0|				asoc->sent_queue_cnt--;
 4117|      0|				sctp_free_a_chunk(stcb, tp1, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (4117:5): [Folded, False: 0]
  ------------------
 4118|      0|			} else {
 4119|      0|				break;
 4120|      0|			}
 4121|      0|		}
 4122|      0|	}
 4123|      0|#if defined(__Userspace__)
 4124|      0|	if (stcb->sctp_ep->recv_callback) {
  ------------------
  |  Branch (4124:6): [True: 0, False: 0]
  ------------------
 4125|      0|		if (stcb->sctp_socket) {
  ------------------
  |  Branch (4125:7): [True: 0, False: 0]
  ------------------
 4126|      0|			uint32_t inqueue_bytes, sb_free_now;
 4127|      0|			struct sctp_inpcb *inp;
 4128|       |
 4129|      0|			inp = stcb->sctp_ep;
 4130|      0|			inqueue_bytes = stcb->asoc.total_output_queue_size - (stcb->asoc.chunks_on_out_queue * sizeof(struct sctp_data_chunk));
 4131|      0|			sb_free_now = SCTP_SB_LIMIT_SND(stcb->sctp_socket) - (inqueue_bytes + stcb->asoc.sb_send_resv);
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
 4132|       |
 4133|       |			/* check if the amount free in the send socket buffer crossed the threshold */
 4134|      0|			if (inp->send_callback &&
  ------------------
  |  Branch (4134:8): [True: 0, False: 0]
  ------------------
 4135|      0|			    (((inp->send_sb_threshold > 0) &&
  ------------------
  |  Branch (4135:10): [True: 0, False: 0]
  ------------------
 4136|      0|			      (sb_free_now >= inp->send_sb_threshold) &&
  ------------------
  |  Branch (4136:10): [True: 0, False: 0]
  ------------------
 4137|      0|			      (stcb->asoc.chunks_on_out_queue <= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue))) ||
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (4137:10): [True: 0, False: 0]
  ------------------
 4138|      0|			     (inp->send_sb_threshold == 0))) {
  ------------------
  |  Branch (4138:9): [True: 0, False: 0]
  ------------------
 4139|      0|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4140|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4141|      0|				inp->send_callback(stcb->sctp_socket, sb_free_now, inp->ulp_info);
 4142|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4143|      0|				atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 4144|      0|			}
 4145|      0|		}
 4146|      0|	} else if (stcb->sctp_socket) {
  ------------------
  |  Branch (4146:13): [True: 0, False: 0]
  ------------------
 4147|       |#else
 4148|       |	/* sa_ignore NO_NULL_CHK */
 4149|       |	if (stcb->sctp_socket) {
 4150|       |#endif
 4151|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4152|       |		struct socket *so;
 4153|       |
 4154|       |#endif
 4155|      0|		SOCKBUF_LOCK(&stcb->sctp_socket->so_snd);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4156|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  659|      0|#define SCTP_WAKE_LOGGING_ENABLE			0x00040000
  ------------------
  |  Branch (4156:7): [True: 0, False: 0]
  ------------------
 4157|       |			/* sa_ignore NO_NULL_CHK */
 4158|      0|			sctp_wakeup_log(stcb, 1, SCTP_WAKESND_FROM_SACK);
  ------------------
  |  |  178|      0|#define SCTP_WAKESND_FROM_SACK      74
  ------------------
 4159|      0|		}
 4160|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4161|       |		so = SCTP_INP_SO(stcb->sctp_ep);
 4162|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 4163|       |		SCTP_TCB_UNLOCK(stcb);
 4164|       |		SCTP_SOCKET_LOCK(so, 1);
 4165|       |		SCTP_TCB_LOCK(stcb);
 4166|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 4167|       |		if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
 4168|       |			/* assoc was freed while we were unlocked */
 4169|       |			SCTP_SOCKET_UNLOCK(so, 1);
 4170|       |			return;
 4171|       |		}
 4172|       |#endif
 4173|      0|		sctp_sowwakeup_locked(stcb->sctp_ep, stcb->sctp_socket);
  ------------------
  |  | 1011|      0|#define sctp_sowwakeup_locked(inp, so) \
  |  | 1012|      0|do { \
  |  | 1013|      0|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|      0|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1013:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 1014|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEOUTPUT); \
  |  |  ------------------
  |  |  |  |  542|      0|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  |  |  ------------------
  |  | 1015|      0|		SOCKBUF_UNLOCK(&((so)->so_snd)); \
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1016|      0|	} else { \
  |  | 1017|      0|		sowwakeup_locked(so); \
  |  |  ------------------
  |  |  |  |  524|      0|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  525|      0|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  526|      0|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|      0|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|      0|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|      0|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|      0|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|      0|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|      0|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|      0|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|      0|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  527|      0|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  528|      0|	else								\
  |  |  |  |  529|      0|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  530|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (530:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1018|      0|	} \
  |  | 1019|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (1019:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4174|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4175|       |		SCTP_SOCKET_UNLOCK(so, 1);
 4176|       |#endif
 4177|      0|	} else {
 4178|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  659|      0|#define SCTP_WAKE_LOGGING_ENABLE			0x00040000
  ------------------
  |  Branch (4178:7): [True: 0, False: 0]
  ------------------
 4179|      0|			sctp_wakeup_log(stcb, 1, SCTP_NOWAKE_FROM_SACK);
  ------------------
  |  |  180|      0|#define SCTP_NOWAKE_FROM_SACK       76
  ------------------
 4180|      0|		}
 4181|      0|	}
 4182|       |
 4183|       |	/* JRS - Use the congestion control given in the CC module */
 4184|      0|	if ((asoc->last_acked_seq != cumack) && (ecne_seen == 0)) {
  ------------------
  |  Branch (4184:6): [True: 0, False: 0]
  |  Branch (4184:42): [True: 0, False: 0]
  ------------------
 4185|      0|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4185:3): [True: 0, False: 0]
  ------------------
 4186|      0|			if (net->net_ack2 > 0) {
  ------------------
  |  Branch (4186:8): [True: 0, False: 0]
  ------------------
 4187|       |				/*
 4188|       |				 * Karn's rule applies to clearing error count, this
 4189|       |				 * is optional.
 4190|       |				 */
 4191|      0|				net->error_count = 0;
 4192|      0|				if ((net->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (4192:9): [True: 0, False: 0]
  ------------------
 4193|       |					/* addr came good */
 4194|      0|					net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4195|      0|					sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb,
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
 4196|      0|					                0, (void *)net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4197|      0|				}
 4198|      0|				if (net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (4198:9): [True: 0, False: 0]
  ------------------
 4199|      0|					if (stcb->asoc.alternate) {
  ------------------
  |  Branch (4199:10): [True: 0, False: 0]
  ------------------
 4200|       |						/* release the alternate, primary is good */
 4201|      0|						sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 4202|      0|						stcb->asoc.alternate = NULL;
 4203|      0|					}
 4204|      0|				}
 4205|      0|				if (net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (4205:9): [True: 0, False: 0]
  ------------------
 4206|      0|					net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 4207|      0|					sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 4208|      0|					                stcb->sctp_ep, stcb, net,
 4209|      0|					                SCTP_FROM_SCTP_INDATA + SCTP_LOC_26);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              					                SCTP_FROM_SCTP_INDATA + SCTP_LOC_26);
  ------------------
  |  |  794|      0|#define SCTP_LOC_26 0x0000001a
  ------------------
 4210|      0|					sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 4211|      0|					asoc->cc_functions.sctp_cwnd_update_exit_pf(stcb, net);
 4212|       |					/* Done with this net */
 4213|      0|					net->net_ack = 0;
 4214|      0|				}
 4215|       |				/* restore any doubled timers */
 4216|      0|				net->RTO = (net->lastsa >> SCTP_RTT_SHIFT) + net->lastsv;
  ------------------
  |  |   40|      0|#define SCTP_RTT_SHIFT 3
  ------------------
 4217|      0|				if (net->RTO < stcb->asoc.minrto) {
  ------------------
  |  Branch (4217:9): [True: 0, False: 0]
  ------------------
 4218|      0|					net->RTO = stcb->asoc.minrto;
 4219|      0|				}
 4220|      0|				if (net->RTO > stcb->asoc.maxrto) {
  ------------------
  |  Branch (4220:9): [True: 0, False: 0]
  ------------------
 4221|      0|					net->RTO = stcb->asoc.maxrto;
 4222|      0|				}
 4223|      0|			}
 4224|      0|		}
 4225|      0|		asoc->cc_functions.sctp_cwnd_update_after_sack(stcb, asoc, 1, 0, 0);
 4226|      0|	}
 4227|      0|	asoc->last_acked_seq = cumack;
 4228|       |
 4229|      0|	if (TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (4229:6): [True: 0, False: 0]
  ------------------
 4230|       |		/* nothing left in-flight */
 4231|      0|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4231:3): [True: 0, False: 0]
  ------------------
 4232|      0|			net->flight_size = 0;
 4233|      0|			net->partial_bytes_acked = 0;
 4234|      0|		}
 4235|      0|		asoc->total_flight = 0;
 4236|      0|		asoc->total_flight_count = 0;
 4237|      0|	}
 4238|       |
 4239|       |	/* RWND update */
 4240|      0|	asoc->peers_rwnd = sctp_sbspace_sub(rwnd,
  ------------------
  |  |   93|      0|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4241|      0|					    (uint32_t) (asoc->total_flight + (asoc->total_flight_count * SCTP_BASE_SYSCTL(sctp_peer_chunk_oh))));
 4242|      0|	if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (4242:6): [True: 0, False: 0]
  ------------------
 4243|       |		/* SWS sender side engages */
 4244|      0|		asoc->peers_rwnd = 0;
 4245|      0|	}
 4246|      0|	if (asoc->peers_rwnd > old_rwnd) {
  ------------------
  |  Branch (4246:6): [True: 0, False: 0]
  ------------------
 4247|      0|		win_probe_recovery = 1;
 4248|      0|	}
 4249|       |	/* Now assure a timer where data is queued at */
 4250|      0|again:
 4251|      0|	j = 0;
 4252|      0|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4252:2): [True: 0, False: 0]
  ------------------
 4253|      0|		if (win_probe_recovery && (net->window_probe)) {
  ------------------
  |  Branch (4253:7): [True: 0, False: 0]
  |  Branch (4253:29): [True: 0, False: 0]
  ------------------
 4254|      0|			win_probe_recovered = 1;
 4255|       |			/*
 4256|       |			 * Find first chunk that was used with window probe
 4257|       |			 * and clear the sent
 4258|       |			 */
 4259|       |			/* sa_ignore FREED_MEMORY */
 4260|      0|			TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (4260:4): [True: 0, False: 0]
  ------------------
 4261|      0|				if (tp1->window_probe) {
  ------------------
  |  Branch (4261:9): [True: 0, False: 0]
  ------------------
 4262|       |					/* move back to data send queue */
 4263|      0|					sctp_window_probe_recovery(stcb, asoc, tp1);
 4264|      0|					break;
 4265|      0|				}
 4266|      0|			}
 4267|      0|		}
 4268|      0|		if (net->flight_size) {
  ------------------
  |  Branch (4268:7): [True: 0, False: 0]
  ------------------
 4269|      0|			j++;
 4270|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4271|      0|			if (net->window_probe) {
  ------------------
  |  Branch (4271:8): [True: 0, False: 0]
  ------------------
 4272|      0|				net->window_probe = 0;
 4273|      0|			}
 4274|      0|		} else {
 4275|      0|			if (net->window_probe) {
  ------------------
  |  Branch (4275:8): [True: 0, False: 0]
  ------------------
 4276|       |				/* In window probes we must assure a timer is still running there */
 4277|      0|				net->window_probe = 0;
 4278|      0|				if (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (4278:9): [True: 0, False: 0]
  ------------------
 4279|      0|					sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4280|      0|				}
 4281|      0|			} else if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4282|      0|				sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4283|      0|				                stcb, net,
 4284|      0|				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_27);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_27);
  ------------------
  |  |  795|      0|#define SCTP_LOC_27 0x0000001b
  ------------------
 4285|      0|			}
 4286|      0|		}
 4287|      0|	}
 4288|      0|	if ((j == 0) &&
  ------------------
  |  Branch (4288:6): [True: 0, False: 0]
  ------------------
 4289|      0|	    (!TAILQ_EMPTY(&asoc->sent_queue)) &&
  ------------------
  |  Branch (4289:6): [True: 0, False: 0]
  ------------------
 4290|      0|	    (asoc->sent_queue_retran_cnt == 0) &&
  ------------------
  |  Branch (4290:6): [True: 0, False: 0]
  ------------------
 4291|      0|	    (win_probe_recovered == 0) &&
  ------------------
  |  Branch (4291:6): [True: 0, False: 0]
  ------------------
 4292|      0|	    (done_once == 0)) {
  ------------------
  |  Branch (4292:6): [True: 0, False: 0]
  ------------------
 4293|       |		/* huh, this should not happen unless all packets
 4294|       |		 * are PR-SCTP and marked to skip of course.
 4295|       |		 */
 4296|      0|		if (sctp_fs_audit(asoc)) {
  ------------------
  |  Branch (4296:7): [True: 0, False: 0]
  ------------------
 4297|      0|			TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4297:4): [True: 0, False: 0]
  ------------------
 4298|      0|				net->flight_size = 0;
 4299|      0|			}
 4300|      0|			asoc->total_flight = 0;
 4301|      0|			asoc->total_flight_count = 0;
 4302|      0|			asoc->sent_queue_retran_cnt = 0;
 4303|      0|			TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (4303:4): [True: 0, False: 0]
  ------------------
 4304|      0|				if (tp1->sent < SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (4304:9): [True: 0, False: 0]
  ------------------
 4305|      0|					sctp_flight_size_increase(tp1);
  ------------------
  |  |  296|      0|#define sctp_flight_size_increase(tp1) do { \
  |  |  297|      0|	(tp1)->whoTo->flight_size += (tp1)->book_size; \
  |  |  298|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (298:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4306|      0|					sctp_total_flight_increase(stcb, tp1);
  ------------------
  |  |  350|      0|#define sctp_total_flight_increase(stcb, tp1) do { \
  |  |  351|      0|	(stcb)->asoc.total_flight_count++; \
  |  |  352|      0|	(stcb)->asoc.total_flight += (tp1)->book_size; \
  |  |  353|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (353:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4307|      0|				} else if (tp1->sent == SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (4307:16): [True: 0, False: 0]
  ------------------
 4308|      0|					sctp_ucount_incr(asoc->sent_queue_retran_cnt);
  ------------------
  |  |  266|      0|#define sctp_ucount_incr(val) { \
  |  |  267|      0|	val++; \
  |  |  268|      0|}
  ------------------
 4309|      0|				}
 4310|      0|			}
 4311|      0|		}
 4312|      0|		done_once = 1;
 4313|      0|		goto again;
 4314|      0|	}
 4315|       |	/**********************************/
 4316|       |	/* Now what about shutdown issues */
 4317|       |	/**********************************/
 4318|      0|	if (TAILQ_EMPTY(&asoc->send_queue) && TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (4318:6): [True: 0, False: 0]
  |  Branch (4318:40): [True: 0, False: 0]
  ------------------
 4319|       |		/* nothing left on sendqueue.. consider done */
 4320|       |		/* clean up */
 4321|      0|		if ((asoc->stream_queue_cnt == 1) &&
  ------------------
  |  Branch (4321:7): [True: 0, False: 0]
  ------------------
 4322|      0|		    ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) ||
  ------------------
  |  |  463|      0|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (4322:8): [True: 0, False: 0]
  ------------------
 4323|      0|		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4323:8): [True: 0, False: 0]
  ------------------
 4324|      0|		    ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete)(stcb, asoc))) {
  ------------------
  |  Branch (4324:7): [True: 0, False: 0]
  ------------------
 4325|      0|			SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_PARTIAL_MSG_LEFT);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
 4326|      0|		}
 4327|      0|		if (((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) ||
  ------------------
  |  |  463|      0|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (4327:8): [True: 0, False: 0]
  ------------------
 4328|      0|		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4328:8): [True: 0, False: 0]
  ------------------
 4329|      0|		    (asoc->stream_queue_cnt == 1) &&
  ------------------
  |  Branch (4329:7): [True: 0, False: 0]
  ------------------
 4330|      0|		    (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT)) {
  ------------------
  |  |  466|      0|#define SCTP_STATE_PARTIAL_MSG_LEFT     0x0400
  ------------------
  |  Branch (4330:7): [True: 0, False: 0]
  ------------------
 4331|      0|			struct mbuf *op_err;
 4332|       |
 4333|      0|			*abort_now = 1;
 4334|       |			/* XXX */
 4335|      0|			op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
  ------------------
  |  |  377|      0|#define SCTP_CAUSE_USER_INITIATED_ABT	0x000c
  ------------------
 4336|      0|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_28;
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_28;
  ------------------
  |  |  796|      0|#define SCTP_LOC_28 0x0000001c
  ------------------
 4337|      0|			sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4338|      0|			return;
 4339|      0|		}
 4340|      0|		if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) &&
  ------------------
  |  |  463|      0|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (4340:7): [True: 0, False: 0]
  ------------------
 4341|      0|		    (asoc->stream_queue_cnt == 0)) {
  ------------------
  |  Branch (4341:7): [True: 0, False: 0]
  ------------------
 4342|      0|			struct sctp_nets *netp;
 4343|       |
 4344|      0|			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (4344:8): [True: 0, False: 0]
  ------------------
 4345|      0|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4345:8): [True: 0, False: 0]
  ------------------
 4346|      0|				SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4347|      0|			}
 4348|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
 4349|      0|			sctp_stop_timers_for_shutdown(stcb);
 4350|      0|			if (asoc->alternate) {
  ------------------
  |  Branch (4350:8): [True: 0, False: 0]
  ------------------
 4351|      0|				netp = asoc->alternate;
 4352|      0|			} else {
 4353|      0|				netp = asoc->primary_destination;
 4354|      0|			}
 4355|      0|			sctp_send_shutdown(stcb, netp);
 4356|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN,
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
 4357|      0|					 stcb->sctp_ep, stcb, netp);
 4358|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD,
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
 4359|      0|					 stcb->sctp_ep, stcb, NULL);
 4360|      0|		} else if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		} else if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4360:14): [True: 0, False: 0]
  ------------------
 4361|      0|			   (asoc->stream_queue_cnt == 0)) {
  ------------------
  |  Branch (4361:7): [True: 0, False: 0]
  ------------------
 4362|      0|			struct sctp_nets *netp;
 4363|       |
 4364|      0|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4365|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_ACK_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
 4366|      0|			sctp_stop_timers_for_shutdown(stcb);
 4367|      0|			if (asoc->alternate) {
  ------------------
  |  Branch (4367:8): [True: 0, False: 0]
  ------------------
 4368|      0|				netp = asoc->alternate;
 4369|      0|			} else {
 4370|      0|				netp = asoc->primary_destination;
 4371|      0|			}
 4372|      0|			sctp_send_shutdown_ack(stcb, netp);
 4373|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNACK,
  ------------------
  |  |  540|      0|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
 4374|      0|					 stcb->sctp_ep, stcb, netp);
 4375|      0|		}
 4376|      0|	}
 4377|       |	/*********************************************/
 4378|       |	/* Here we perform PR-SCTP procedures        */
 4379|       |	/* (section 4.2)                             */
 4380|       |	/*********************************************/
 4381|       |	/* C1. update advancedPeerAckPoint */
 4382|      0|	if (SCTP_TSN_GT(cumack, asoc->advanced_peer_ack_point)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4383|      0|		asoc->advanced_peer_ack_point = cumack;
 4384|      0|	}
 4385|       |	/* PR-Sctp issues need to be addressed too */
 4386|      0|	if ((asoc->prsctp_supported) && (asoc->pr_sctp_cnt > 0)) {
  ------------------
  |  Branch (4386:6): [True: 0, False: 0]
  |  Branch (4386:34): [True: 0, False: 0]
  ------------------
 4387|      0|		struct sctp_tmit_chunk *lchk;
 4388|      0|		uint32_t old_adv_peer_ack_point;
 4389|       |
 4390|      0|		old_adv_peer_ack_point = asoc->advanced_peer_ack_point;
 4391|      0|		lchk = sctp_try_advance_peer_ack_point(stcb, asoc);
 4392|       |		/* C3. See if we need to send a Fwd-TSN */
 4393|      0|		if (SCTP_TSN_GT(asoc->advanced_peer_ack_point, cumack)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4394|       |			/*
 4395|       |			 * ISSUE with ECN, see FWD-TSN processing.
 4396|       |			 */
 4397|      0|			if (SCTP_TSN_GT(asoc->advanced_peer_ack_point, old_adv_peer_ack_point)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4398|      0|				send_forward_tsn(stcb, asoc);
 4399|      0|			} else if (lchk) {
  ------------------
  |  Branch (4399:15): [True: 0, False: 0]
  ------------------
 4400|       |				/* try to FR fwd-tsn's that get lost too */
 4401|      0|				if (lchk->rec.data.fwd_tsn_cnt >= 3) {
  ------------------
  |  Branch (4401:9): [True: 0, False: 0]
  ------------------
 4402|      0|					send_forward_tsn(stcb, asoc);
 4403|      0|				}
 4404|      0|			}
 4405|      0|		}
 4406|      0|		for (; lchk != NULL; lchk = TAILQ_NEXT(lchk, sctp_next)) {
  ------------------
  |  Branch (4406:10): [True: 0, False: 0]
  ------------------
 4407|      0|			if (lchk->whoTo != NULL) {
  ------------------
  |  Branch (4407:8): [True: 0, False: 0]
  ------------------
 4408|      0|				break;
 4409|      0|			}
 4410|      0|		}
 4411|      0|		if (lchk != NULL) {
  ------------------
  |  Branch (4411:7): [True: 0, False: 0]
  ------------------
 4412|       |			/* Assure a timer is up */
 4413|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SEND,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4414|      0|			                 stcb->sctp_ep, stcb, lchk->whoTo);
 4415|      0|		}
 4416|      0|	}
 4417|      0|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  656|      0|#define SCTP_SACK_RWND_LOGGING_ENABLE			0x00008000
  ------------------
  |  Branch (4417:6): [True: 0, False: 0]
  ------------------
 4418|      0|		sctp_misc_ints(SCTP_SACK_RWND_UPDATE,
  ------------------
  |  |  191|      0|#define SCTP_SACK_RWND_UPDATE       87
  ------------------
 4419|      0|			       rwnd,
 4420|      0|			       stcb->asoc.peers_rwnd,
 4421|      0|			       stcb->asoc.total_flight,
 4422|      0|			       stcb->asoc.total_output_queue_size);
 4423|      0|	}
 4424|      0|}
sctp_handle_sack:
 4432|  1.69k|{
 4433|  1.69k|	struct sctp_association *asoc;
 4434|  1.69k|	struct sctp_tmit_chunk *tp1, *tp2;
 4435|  1.69k|	uint32_t last_tsn, biggest_tsn_acked, biggest_tsn_newly_acked, this_sack_lowest_newack;
 4436|  1.69k|	uint16_t wake_him = 0;
 4437|  1.69k|	uint32_t send_s = 0;
 4438|  1.69k|	long j;
 4439|  1.69k|	int accum_moved = 0;
 4440|  1.69k|	int will_exit_fast_recovery = 0;
 4441|  1.69k|	uint32_t a_rwnd, old_rwnd;
 4442|  1.69k|	int win_probe_recovery = 0;
 4443|  1.69k|	int win_probe_recovered = 0;
 4444|  1.69k|	struct sctp_nets *net = NULL;
 4445|  1.69k|	int done_once;
 4446|  1.69k|	int rto_ok = 1;
 4447|  1.69k|	uint8_t reneged_all = 0;
 4448|  1.69k|	uint8_t cmt_dac_flag;
 4449|       |	/*
 4450|       |	 * we take any chance we can to service our queues since we cannot
 4451|       |	 * get awoken when the socket is read from :<
 4452|       |	 */
 4453|       |	/*
 4454|       |	 * Now perform the actual SACK handling: 1) Verify that it is not an
 4455|       |	 * old sack, if so discard. 2) If there is nothing left in the send
 4456|       |	 * queue (cum-ack is equal to last acked) then you have a duplicate
 4457|       |	 * too, update any rwnd change and verify no timers are running.
 4458|       |	 * then return. 3) Process any new consecutive data i.e. cum-ack
 4459|       |	 * moved process these first and note that it moved. 4) Process any
 4460|       |	 * sack blocks. 5) Drop any acked from the queue. 6) Check for any
 4461|       |	 * revoked blocks and mark. 7) Update the cwnd. 8) Nothing left,
 4462|       |	 * sync up flightsizes and things, stop all timers and also check
 4463|       |	 * for shutdown_pending state. If so then go ahead and send off the
 4464|       |	 * shutdown. If in shutdown recv, send off the shutdown-ack and
 4465|       |	 * start that timer, Ret. 9) Strike any non-acked things and do FR
 4466|       |	 * procedure if needed being sure to set the FR flag. 10) Do pr-sctp
 4467|       |	 * procedures. 11) Apply any FR penalties. 12) Assure we will SACK
 4468|       |	 * if in shutdown_recv state.
 4469|       |	 */
 4470|  1.69k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.69k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.69k|	do {                         \
  |  |  |  |  113|  1.69k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.69k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.69k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.69k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4471|       |	/* CMT DAC algo */
 4472|  1.69k|	this_sack_lowest_newack = 0;
 4473|  1.69k|	SCTP_STAT_INCR(sctps_slowpath_sack);
  ------------------
  |  | 1112|  1.69k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.69k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.69k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4474|  1.69k|	last_tsn = cum_ack;
 4475|  1.69k|	cmt_dac_flag = flags & SCTP_SACK_CMT_DAC;
  ------------------
  |  |  521|  1.69k|#define SCTP_SACK_CMT_DAC          0x80
  ------------------
 4476|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 4477|       |	stcb->asoc.cumack_log[stcb->asoc.cumack_log_at] = cum_ack;
 4478|       |	stcb->asoc.cumack_log_at++;
 4479|       |	if (stcb->asoc.cumack_log_at > SCTP_TSN_LOG_SIZE) {
 4480|       |		stcb->asoc.cumack_log_at = 0;
 4481|       |	}
 4482|       |#endif
 4483|  1.69k|	a_rwnd = rwnd;
 4484|       |
 4485|  1.69k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  590|  1.69k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  662|  1.69k|#define SCTP_LOG_SACK_ARRIVALS_ENABLE			0x00200000
  ------------------
  |  Branch (4485:6): [True: 0, False: 1.69k]
  ------------------
 4486|      0|		sctp_misc_ints(SCTP_SACK_LOG_NORMAL, cum_ack,
  ------------------
  |  |  221|      0|#define SCTP_SACK_LOG_NORMAL	   117
  ------------------
 4487|      0|		               rwnd, stcb->asoc.last_acked_seq, stcb->asoc.peers_rwnd);
 4488|      0|	}
 4489|       |
 4490|  1.69k|	old_rwnd = stcb->asoc.peers_rwnd;
 4491|  1.69k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  1.69k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  1.69k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (4491:6): [True: 0, False: 1.69k]
  ------------------
 4492|      0|		sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
 4493|      0|		               stcb->asoc.overall_error_count,
 4494|      0|		               0,
 4495|      0|		               SCTP_FROM_SCTP_INDATA,
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
 4496|      0|		               __LINE__);
 4497|      0|	}
 4498|  1.69k|	stcb->asoc.overall_error_count = 0;
 4499|  1.69k|	asoc = &stcb->asoc;
 4500|  1.69k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  590|  1.69k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  655|  1.69k|#define SCTP_SACK_LOGGING_ENABLE			0x00004000
  ------------------
  |  Branch (4500:6): [True: 0, False: 1.69k]
  ------------------
 4501|      0|		sctp_log_sack(asoc->last_acked_seq,
 4502|      0|		              cum_ack,
 4503|      0|		              0,
 4504|      0|		              num_seg,
 4505|      0|		              num_dup,
 4506|      0|		              SCTP_LOG_NEW_SACK);
  ------------------
  |  |  146|      0|#define SCTP_LOG_NEW_SACK           42
  ------------------
 4507|      0|	}
 4508|  1.69k|	if ((num_dup) && (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FR_LOGGING_ENABLE)) {
  ------------------
  |  |  590|    915|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if ((num_dup) && (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FR_LOGGING_ENABLE)) {
  ------------------
  |  |  647|    915|#define SCTP_FR_LOGGING_ENABLE				0x00000040
  ------------------
  |  Branch (4508:6): [True: 915, False: 778]
  |  Branch (4508:19): [True: 0, False: 915]
  ------------------
 4509|      0|		uint16_t i;
 4510|      0|		uint32_t *dupdata, dblock;
 4511|       |
 4512|      0|		for (i = 0; i < num_dup; i++) {
  ------------------
  |  Branch (4512:15): [True: 0, False: 0]
  ------------------
 4513|      0|			dupdata = (uint32_t *)sctp_m_getptr(m, offset_dup + i * sizeof(uint32_t),
 4514|      0|			                                    sizeof(uint32_t), (uint8_t *)&dblock);
 4515|      0|			if (dupdata == NULL) {
  ------------------
  |  Branch (4515:8): [True: 0, False: 0]
  ------------------
 4516|      0|				break;
 4517|      0|			}
 4518|      0|			sctp_log_fr(*dupdata, 0, 0, SCTP_FR_DUPED);
  ------------------
  |  |  160|      0|#define SCTP_FR_DUPED               56
  ------------------
 4519|      0|		}
 4520|      0|	}
 4521|       |	/* reality check */
 4522|  1.69k|	if (!TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (4522:6): [True: 1.37k, False: 316]
  ------------------
 4523|  1.37k|		tp1 = TAILQ_LAST(&asoc->sent_queue,
 4524|  1.37k|				 sctpchunk_listhead);
 4525|  1.37k|		send_s = tp1->rec.data.tsn + 1;
 4526|  1.37k|	} else {
 4527|    316|		tp1 = NULL;
 4528|    316|		send_s = asoc->sending_seq;
 4529|    316|	}
 4530|  1.69k|	if (SCTP_TSN_GE(cum_ack, send_s)) {
  ------------------
  |  |  890|  1.69k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  1.69k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  3.38k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 349, False: 1.34k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 7, False: 342]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  3.38k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 1.34k, False: 342]
  |  |  |  |  |  |  |  Branch (884:43): [True: 41, False: 1.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 1.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4531|     48|		struct mbuf *op_err;
 4532|     48|		char msg[SCTP_DIAG_INFO_LEN];
 4533|       |
 4534|       |		/*
 4535|       |		 * no way, we have not even sent this TSN out yet.
 4536|       |		 * Peer is hopelessly messed up with us.
 4537|       |		 */
 4538|     48|		SCTP_PRINTF("NEW cum_ack:%x send_s:%x is smaller or equal\n",
  ------------------
  |  |  548|     48|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|     48|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 48]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 4539|     48|			    cum_ack, send_s);
 4540|     48|		if (tp1) {
  ------------------
  |  Branch (4540:7): [True: 4, False: 44]
  ------------------
 4541|      4|			SCTP_PRINTF("Got send_s from tsn:%x + 1 of tp1: %p\n",
  ------------------
  |  |  548|      4|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      4|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 4542|      4|				    tp1->rec.data.tsn, (void *)tp1);
 4543|      4|		}
 4544|     48|	hopeless_peer:
 4545|     48|		*abort_now = 1;
 4546|       |		/* XXX */
 4547|     48|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|     48|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 48]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 4548|     48|		              "Cum ack %8.8x greater or equal than TSN %8.8x",
 4549|     48|		              cum_ack, send_s);
 4550|     48|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     48|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 4551|     48|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_29;
  ------------------
  |  |  757|     48|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_29;
  ------------------
  |  |  797|     48|#define SCTP_LOC_29 0x0000001d
  ------------------
 4552|     48|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     48|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4553|     48|		return;
 4554|     48|	}
 4555|       |	/**********************/
 4556|       |	/* 1) check the range */
 4557|       |	/**********************/
 4558|  1.64k|	if (SCTP_TSN_GT(asoc->last_acked_seq, last_tsn)) {
  ------------------
  |  |  889|  1.64k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.64k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.30k, False: 342]
  |  |  |  |  |  Branch (883:43): [True: 1.30k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.64k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 342, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 342, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4559|       |		/* acking something behind */
 4560|  1.64k|		return;
 4561|  1.64k|	}
 4562|       |
 4563|       |	/* update the Rwnd of the peer */
 4564|      0|	if (TAILQ_EMPTY(&asoc->sent_queue) &&
  ------------------
  |  Branch (4564:6): [True: 0, False: 0]
  ------------------
 4565|      0|	    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (4565:6): [True: 0, False: 0]
  ------------------
 4566|      0|	    (asoc->stream_queue_cnt == 0)) {
  ------------------
  |  Branch (4566:6): [True: 0, False: 0]
  ------------------
 4567|       |		/* nothing left on send/sent and strmq */
 4568|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  661|      0|#define SCTP_LOG_RWND_ENABLE    			0x00100000
  ------------------
  |  Branch (4568:7): [True: 0, False: 0]
  ------------------
 4569|      0|			sctp_log_rwnd_set(SCTP_SET_PEER_RWND_VIA_SACK,
  ------------------
  |  |  142|      0|#define SCTP_SET_PEER_RWND_VIA_SACK 38
  ------------------
 4570|      0|			                  asoc->peers_rwnd, 0, 0, a_rwnd);
 4571|      0|		}
 4572|      0|		asoc->peers_rwnd = a_rwnd;
 4573|      0|		if (asoc->sent_queue_retran_cnt) {
  ------------------
  |  Branch (4573:7): [True: 0, False: 0]
  ------------------
 4574|      0|			asoc->sent_queue_retran_cnt = 0;
 4575|      0|		}
 4576|      0|		if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (4576:7): [True: 0, False: 0]
  ------------------
 4577|       |			/* SWS sender side engages */
 4578|      0|			asoc->peers_rwnd = 0;
 4579|      0|		}
 4580|       |		/* stop any timers */
 4581|      0|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4581:3): [True: 0, False: 0]
  ------------------
 4582|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4583|      0|			                stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_30);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			                stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_30);
  ------------------
  |  |  798|      0|#define SCTP_LOC_30 0x0000001e
  ------------------
 4584|      0|			net->partial_bytes_acked = 0;
 4585|      0|			net->flight_size = 0;
 4586|      0|		}
 4587|      0|		asoc->total_flight = 0;
 4588|      0|		asoc->total_flight_count = 0;
 4589|      0|		return;
 4590|      0|	}
 4591|       |	/*
 4592|       |	 * We init netAckSz and netAckSz2 to 0. These are used to track 2
 4593|       |	 * things. The total byte count acked is tracked in netAckSz AND
 4594|       |	 * netAck2 is used to track the total bytes acked that are un-
 4595|       |	 * ambiguous and were never retransmitted. We track these on a per
 4596|       |	 * destination address basis.
 4597|       |	 */
 4598|      0|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4598:2): [True: 0, False: 0]
  ------------------
 4599|      0|		if (SCTP_TSN_GT(cum_ack, net->cwr_window_tsn)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4600|       |			/* Drag along the window_tsn for cwr's */
 4601|      0|			net->cwr_window_tsn = cum_ack;
 4602|      0|		}
 4603|      0|		net->prev_cwnd = net->cwnd;
 4604|      0|		net->net_ack = 0;
 4605|      0|		net->net_ack2 = 0;
 4606|       |
 4607|       |		/*
 4608|       |		 * CMT: Reset CUC and Fast recovery algo variables before
 4609|       |		 * SACK processing
 4610|       |		 */
 4611|      0|		net->new_pseudo_cumack = 0;
 4612|      0|		net->will_exit_fast_recovery = 0;
 4613|      0|		if (stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) {
  ------------------
  |  Branch (4613:7): [True: 0, False: 0]
  ------------------
 4614|      0|			(*stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack)(stcb, net);
 4615|      0|		}
 4616|       |
 4617|       |		/*
 4618|       |		 * CMT: SFR algo (and HTNA) - this_sack_highest_newack has
 4619|       |		 * to be greater than the cumack. Also reset saw_newack to 0
 4620|       |		 * for all dests.
 4621|       |		 */
 4622|      0|		net->saw_newack = 0;
 4623|      0|		net->this_sack_highest_newack = last_tsn;
 4624|      0|	}
 4625|       |	/* process the new consecutive TSN first */
 4626|      0|	TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (4626:2): [True: 0, False: 0]
  ------------------
 4627|      0|		if (SCTP_TSN_GE(last_tsn, tp1->rec.data.tsn)) {
  ------------------
  |  |  890|      0|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4628|      0|			if (tp1->sent != SCTP_DATAGRAM_UNSENT) {
  ------------------
  |  |  348|      0|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (4628:8): [True: 0, False: 0]
  ------------------
 4629|      0|				accum_moved = 1;
 4630|      0|				if (tp1->sent < SCTP_DATAGRAM_ACKED) {
  ------------------
  |  |  355|      0|#define SCTP_DATAGRAM_ACKED		10010
  ------------------
  |  Branch (4630:9): [True: 0, False: 0]
  ------------------
 4631|       |					/*
 4632|       |					 * If it is less than ACKED, it is
 4633|       |					 * now no-longer in flight. Higher
 4634|       |					 * values may occur during marking
 4635|       |					 */
 4636|      0|					if ((tp1->whoTo->dest_state &
  ------------------
  |  Branch (4636:10): [True: 0, False: 0]
  ------------------
 4637|      0|					     SCTP_ADDR_UNCONFIRMED) &&
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 4638|      0|					    (tp1->snd_count < 2)) {
  ------------------
  |  Branch (4638:10): [True: 0, False: 0]
  ------------------
 4639|       |						/*
 4640|       |						 * If there was no retran
 4641|       |						 * and the address is
 4642|       |						 * un-confirmed and we sent
 4643|       |						 * there and are now
 4644|       |						 * sacked.. its confirmed,
 4645|       |						 * mark it so.
 4646|       |						 */
 4647|      0|						tp1->whoTo->dest_state &=
 4648|      0|							~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 4649|      0|					}
 4650|      0|					if (tp1->sent < SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (4650:10): [True: 0, False: 0]
  ------------------
 4651|      0|						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  646|      0|#define SCTP_FLIGHT_LOGGING_ENABLE			0x00000020
  ------------------
  |  Branch (4651:11): [True: 0, False: 0]
  ------------------
 4652|      0|							sctp_misc_ints(SCTP_FLIGHT_LOG_DOWN_CA,
  ------------------
  |  |  211|      0|#define SCTP_FLIGHT_LOG_DOWN_CA    107
  ------------------
 4653|      0|							               tp1->whoTo->flight_size,
 4654|      0|							               tp1->book_size,
 4655|      0|							               (uint32_t)(uintptr_t)tp1->whoTo,
 4656|      0|							               tp1->rec.data.tsn);
 4657|      0|						}
 4658|      0|						sctp_flight_size_decrease(tp1);
  ------------------
  |  |  289|      0|#define sctp_flight_size_decrease(tp1) do { \
  |  |  290|      0|	if (tp1->whoTo->flight_size >= tp1->book_size) \
  |  |  ------------------
  |  |  |  Branch (290:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  291|      0|		tp1->whoTo->flight_size -= tp1->book_size; \
  |  |  292|      0|	else \
  |  |  293|      0|		tp1->whoTo->flight_size = 0; \
  |  |  294|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (294:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4659|      0|						sctp_total_flight_decrease(stcb, tp1);
  ------------------
  |  |  338|      0|#define sctp_total_flight_decrease(stcb, tp1) do { \
  |  |  339|      0|	tp1->window_probe = 0; \
  |  |  340|      0|	if (stcb->asoc.total_flight >= tp1->book_size) { \
  |  |  ------------------
  |  |  |  Branch (340:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  341|      0|		stcb->asoc.total_flight -= tp1->book_size; \
  |  |  342|      0|		if (stcb->asoc.total_flight_count > 0) \
  |  |  ------------------
  |  |  |  Branch (342:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  343|      0|			stcb->asoc.total_flight_count--; \
  |  |  344|      0|	} else { \
  |  |  345|      0|		stcb->asoc.total_flight = 0; \
  |  |  346|      0|		stcb->asoc.total_flight_count = 0; \
  |  |  347|      0|	} \
  |  |  348|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (348:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4660|      0|						if (stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged) {
  ------------------
  |  Branch (4660:11): [True: 0, False: 0]
  ------------------
 4661|      0|							(*stcb->asoc.cc_functions.sctp_cwnd_update_tsn_acknowledged)(tp1->whoTo,
 4662|      0|														     tp1);
 4663|      0|						}
 4664|      0|					}
 4665|      0|					tp1->whoTo->net_ack += tp1->send_size;
 4666|       |
 4667|       |					/* CMT SFR and DAC algos */
 4668|      0|					this_sack_lowest_newack = tp1->rec.data.tsn;
 4669|      0|					tp1->whoTo->saw_newack = 1;
 4670|       |
 4671|      0|					if (tp1->snd_count < 2) {
  ------------------
  |  Branch (4671:10): [True: 0, False: 0]
  ------------------
 4672|       |						/*
 4673|       |						 * True non-retransmitted
 4674|       |						 * chunk
 4675|       |						 */
 4676|      0|						tp1->whoTo->net_ack2 +=
 4677|      0|							tp1->send_size;
 4678|       |
 4679|       |						/* update RTO too? */
 4680|      0|						if (tp1->do_rtt) {
  ------------------
  |  Branch (4680:11): [True: 0, False: 0]
  ------------------
 4681|      0|							if (rto_ok &&
  ------------------
  |  Branch (4681:12): [True: 0, False: 0]
  ------------------
 4682|      0|							    sctp_calculate_rto(stcb,
  ------------------
  |  Branch (4682:12): [True: 0, False: 0]
  ------------------
 4683|      0|									       &stcb->asoc,
 4684|      0|									       tp1->whoTo,
 4685|      0|									       &tp1->sent_rcv_time,
 4686|      0|									       SCTP_RTT_FROM_DATA)) {
  ------------------
  |  |  341|      0|#define SCTP_RTT_FROM_DATA     1
  ------------------
 4687|      0|								rto_ok = 0;
 4688|      0|							}
 4689|      0|							if (tp1->whoTo->rto_needed == 0) {
  ------------------
  |  Branch (4689:12): [True: 0, False: 0]
  ------------------
 4690|      0|								tp1->whoTo->rto_needed = 1;
 4691|      0|							}
 4692|      0|							tp1->do_rtt = 0;
 4693|      0|						}
 4694|      0|					}
 4695|       |					/*
 4696|       |					 * CMT: CUCv2 algorithm. From the
 4697|       |					 * cumack'd TSNs, for each TSN being
 4698|       |					 * acked for the first time, set the
 4699|       |					 * following variables for the
 4700|       |					 * corresp destination.
 4701|       |					 * new_pseudo_cumack will trigger a
 4702|       |					 * cwnd update.
 4703|       |					 * find_(rtx_)pseudo_cumack will
 4704|       |					 * trigger search for the next
 4705|       |					 * expected (rtx-)pseudo-cumack.
 4706|       |					 */
 4707|      0|					tp1->whoTo->new_pseudo_cumack = 1;
 4708|      0|					tp1->whoTo->find_pseudo_cumack = 1;
 4709|      0|					tp1->whoTo->find_rtx_pseudo_cumack = 1;
 4710|      0|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  655|      0|#define SCTP_SACK_LOGGING_ENABLE			0x00004000
  ------------------
  |  Branch (4710:10): [True: 0, False: 0]
  ------------------
 4711|      0|						sctp_log_sack(asoc->last_acked_seq,
 4712|      0|						              cum_ack,
 4713|      0|						              tp1->rec.data.tsn,
 4714|      0|						              0,
 4715|      0|						              0,
 4716|      0|						              SCTP_LOG_TSN_ACKED);
  ------------------
  |  |  147|      0|#define SCTP_LOG_TSN_ACKED          43
  ------------------
 4717|      0|					}
 4718|      0|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|      0|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (4718:10): [True: 0, False: 0]
  ------------------
 4719|      0|						sctp_log_cwnd(stcb, tp1->whoTo, tp1->rec.data.tsn, SCTP_CWND_LOG_FROM_SACK);
  ------------------
  |  |  168|      0|#define SCTP_CWND_LOG_FROM_SACK     64
  ------------------
 4720|      0|					}
 4721|      0|				}
 4722|      0|				if (tp1->sent == SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (4722:9): [True: 0, False: 0]
  ------------------
 4723|      0|					sctp_ucount_decr(asoc->sent_queue_retran_cnt);
  ------------------
  |  |  270|      0|#define sctp_ucount_decr(val) { \
  |  |  271|      0|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  272|      0|		val--; \
  |  |  273|      0|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|      0|}
  ------------------
 4724|       |#ifdef SCTP_AUDITING_ENABLED
 4725|       |					sctp_audit_log(0xB3,
 4726|       |					               (asoc->sent_queue_retran_cnt & 0x000000ff));
 4727|       |#endif
 4728|      0|				}
 4729|      0|				if (tp1->rec.data.chunk_was_revoked) {
  ------------------
  |  Branch (4729:9): [True: 0, False: 0]
  ------------------
 4730|       |					/* deflate the cwnd */
 4731|      0|					tp1->whoTo->cwnd -= tp1->book_size;
 4732|      0|					tp1->rec.data.chunk_was_revoked = 0;
 4733|      0|				}
 4734|      0|				if (tp1->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|      0|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (4734:9): [True: 0, False: 0]
  ------------------
 4735|      0|					tp1->sent = SCTP_DATAGRAM_ACKED;
  ------------------
  |  |  355|      0|#define SCTP_DATAGRAM_ACKED		10010
  ------------------
 4736|      0|				}
 4737|      0|			}
 4738|      0|		} else {
 4739|      0|			break;
 4740|      0|		}
 4741|      0|	}
 4742|      0|	biggest_tsn_newly_acked = biggest_tsn_acked = last_tsn;
 4743|       |	/* always set this up to cum-ack */
 4744|      0|	asoc->this_sack_highest_gap = last_tsn;
 4745|       |
 4746|      0|	if ((num_seg > 0) || (num_nr_seg > 0)) {
  ------------------
  |  Branch (4746:6): [True: 0, False: 0]
  |  Branch (4746:23): [True: 0, False: 0]
  ------------------
 4747|       |		/*
 4748|       |		 * thisSackHighestGap will increase while handling NEW
 4749|       |		 * segments this_sack_highest_newack will increase while
 4750|       |		 * handling NEWLY ACKED chunks. this_sack_lowest_newack is
 4751|       |		 * used for CMT DAC algo. saw_newack will also change.
 4752|       |		 */
 4753|      0|		if (sctp_handle_segments(m, &offset_seg, stcb, asoc, last_tsn, &biggest_tsn_acked,
  ------------------
  |  Branch (4753:7): [True: 0, False: 0]
  ------------------
 4754|      0|			&biggest_tsn_newly_acked, &this_sack_lowest_newack,
 4755|      0|			num_seg, num_nr_seg, &rto_ok)) {
 4756|      0|			wake_him++;
 4757|      0|		}
 4758|       |		/*
 4759|       |		 * validate the biggest_tsn_acked in the gap acks if
 4760|       |		 * strict adherence is wanted.
 4761|       |		 */
 4762|      0|		if (SCTP_TSN_GE(biggest_tsn_acked, send_s)) {
  ------------------
  |  |  890|      0|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4763|       |			/*
 4764|       |			 * peer is either confused or we are under
 4765|       |			 * attack. We must abort.
 4766|       |			 */
 4767|      0|			SCTP_PRINTF("Hopeless peer! biggest_tsn_acked:%x largest seq:%x\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 4768|      0|				    biggest_tsn_acked, send_s);
 4769|      0|			goto hopeless_peer;
 4770|      0|		}
 4771|      0|	}
 4772|       |	/*******************************************/
 4773|       |	/* cancel ALL T3-send timer if accum moved */
 4774|       |	/*******************************************/
 4775|      0|	if (asoc->sctp_cmt_on_off > 0) {
  ------------------
  |  Branch (4775:6): [True: 0, False: 0]
  ------------------
 4776|      0|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4776:3): [True: 0, False: 0]
  ------------------
 4777|      0|			if (net->new_pseudo_cumack)
  ------------------
  |  Branch (4777:8): [True: 0, False: 0]
  ------------------
 4778|      0|				sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4779|      0|				                stcb, net,
 4780|      0|				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_31);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_31);
  ------------------
  |  |  799|      0|#define SCTP_LOC_31 0x0000001f
  ------------------
 4781|      0|		}
 4782|      0|	} else {
 4783|      0|		if (accum_moved) {
  ------------------
  |  Branch (4783:7): [True: 0, False: 0]
  ------------------
 4784|      0|			TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4784:4): [True: 0, False: 0]
  ------------------
 4785|      0|				sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 4786|      0|				                stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_32);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_32);
  ------------------
  |  |  800|      0|#define SCTP_LOC_32 0x00000020
  ------------------
 4787|      0|			}
 4788|      0|		}
 4789|      0|	}
 4790|       |	/********************************************/
 4791|       |	/* drop the acked chunks from the sentqueue */
 4792|       |	/********************************************/
 4793|      0|	asoc->last_acked_seq = cum_ack;
 4794|       |
 4795|      0|	TAILQ_FOREACH_SAFE(tp1, &asoc->sent_queue, sctp_next, tp2) {
  ------------------
  |  | 1129|      0|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|      0|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 0]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|      0|              (var) = (tvar))
  ------------------
 4796|      0|		if (SCTP_TSN_GT(tp1->rec.data.tsn, cum_ack)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4797|      0|			break;
 4798|      0|		}
 4799|      0|		if (tp1->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|      0|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (4799:7): [True: 0, False: 0]
  ------------------
 4800|      0|			if (asoc->strmout[tp1->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (4800:8): [True: 0, False: 0]
  ------------------
 4801|      0|				asoc->strmout[tp1->rec.data.sid].chunks_on_queues--;
 4802|      0|#ifdef INVARIANTS
 4803|      0|			} else {
 4804|      0|				panic("No chunks on the queues for sid %u.", tp1->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4805|      0|#endif
 4806|      0|			}
 4807|      0|		}
 4808|      0|		if ((asoc->strmout[tp1->rec.data.sid].chunks_on_queues == 0) &&
  ------------------
  |  Branch (4808:7): [True: 0, False: 0]
  ------------------
 4809|      0|		    (asoc->strmout[tp1->rec.data.sid].state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|      0|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (4809:7): [True: 0, False: 0]
  ------------------
 4810|      0|		    TAILQ_EMPTY(&asoc->strmout[tp1->rec.data.sid].outqueue)) {
  ------------------
  |  Branch (4810:7): [True: 0, False: 0]
  ------------------
 4811|      0|			asoc->trigger_reset = 1;
 4812|      0|		}
 4813|      0|		TAILQ_REMOVE(&asoc->sent_queue, tp1, sctp_next);
  ------------------
  |  Branch (4813:3): [True: 0, False: 0]
  |  Branch (4813:3): [Folded, False: 0]
  ------------------
 4814|      0|		if (PR_SCTP_ENABLED(tp1->flags)) {
  ------------------
  |  |  281|      0|#define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  272|      0|#define SCTP_PR_SCTP_NONE 0x0000 /* Reliable transfer */
  |  |  ------------------
  |  |  |  Branch (281:36): [True: 0, False: 0]
  |  |  ------------------
  |  |  282|      0|                                   (PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL))
  |  |  ------------------
  |  |  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |                                                  (PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL))
  |  |  ------------------
  |  |  |  |  278|      0|#define SCTP_PR_SCTP_ALL  0x000f /* Used for aggregated stats */
  |  |  ------------------
  |  |  |  Branch (282:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4815|      0|			if (asoc->pr_sctp_cnt != 0)
  ------------------
  |  Branch (4815:8): [True: 0, False: 0]
  ------------------
 4816|      0|				asoc->pr_sctp_cnt--;
 4817|      0|		}
 4818|      0|		asoc->sent_queue_cnt--;
 4819|      0|		if (tp1->data) {
  ------------------
  |  Branch (4819:7): [True: 0, False: 0]
  ------------------
 4820|       |			/* sa_ignore NO_NULL_CHK */
 4821|      0|			sctp_free_bufspace(stcb, asoc, tp1, 1);
 4822|      0|			sctp_m_freem(tp1->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4823|      0|			tp1->data = NULL;
 4824|      0|			if (asoc->prsctp_supported && PR_SCTP_BUF_ENABLED(tp1->flags)) {
  ------------------
  |  |  284|      0|#define PR_SCTP_BUF_ENABLED(x)    (PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF)
  |  |  ------------------
  |  |  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_BUF_ENABLED(x)    (PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF)
  |  |  ------------------
  |  |  |  |  275|      0|#define SCTP_PR_SCTP_BUF  SCTP_PR_SCTP_PRIO /* For backwards compatibility */
  |  |  |  |  ------------------
  |  |  |  |  |  |  274|      0|#define SCTP_PR_SCTP_PRIO 0x0002 /* Buffer based PR-SCTP */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (284:35): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4824:8): [True: 0, False: 0]
  ------------------
 4825|      0|				asoc->sent_queue_cnt_removeable--;
 4826|      0|			}
 4827|      0|		}
 4828|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  655|      0|#define SCTP_SACK_LOGGING_ENABLE			0x00004000
  ------------------
  |  Branch (4828:7): [True: 0, False: 0]
  ------------------
 4829|      0|			sctp_log_sack(asoc->last_acked_seq,
 4830|      0|			              cum_ack,
 4831|      0|			              tp1->rec.data.tsn,
 4832|      0|			              0,
 4833|      0|			              0,
 4834|      0|			              SCTP_LOG_FREE_SENT);
  ------------------
  |  |  175|      0|#define SCTP_LOG_FREE_SENT             71
  ------------------
 4835|      0|		}
 4836|      0|		sctp_free_a_chunk(stcb, tp1, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (4836:3): [Folded, False: 0]
  ------------------
 4837|      0|		wake_him++;
 4838|      0|	}
 4839|      0|	if (TAILQ_EMPTY(&asoc->sent_queue) && (asoc->total_flight > 0)) {
  ------------------
  |  Branch (4839:6): [True: 0, False: 0]
  |  Branch (4839:40): [True: 0, False: 0]
  ------------------
 4840|      0|#ifdef INVARIANTS
 4841|      0|		panic("Warning flight size is positive and should be 0");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4842|       |#else
 4843|       |		SCTP_PRINTF("Warning flight size incorrect should be 0 is %d\n",
 4844|       |		            asoc->total_flight);
 4845|       |#endif
 4846|      0|		asoc->total_flight = 0;
 4847|      0|	}
 4848|       |
 4849|      0|#if defined(__Userspace__)
 4850|      0|	if (stcb->sctp_ep->recv_callback) {
  ------------------
  |  Branch (4850:6): [True: 0, False: 0]
  ------------------
 4851|      0|		if (stcb->sctp_socket) {
  ------------------
  |  Branch (4851:7): [True: 0, False: 0]
  ------------------
 4852|      0|			uint32_t inqueue_bytes, sb_free_now;
 4853|      0|			struct sctp_inpcb *inp;
 4854|       |
 4855|      0|			inp = stcb->sctp_ep;
 4856|      0|			inqueue_bytes = stcb->asoc.total_output_queue_size - (stcb->asoc.chunks_on_out_queue * sizeof(struct sctp_data_chunk));
 4857|      0|			sb_free_now = SCTP_SB_LIMIT_SND(stcb->sctp_socket) - (inqueue_bytes + stcb->asoc.sb_send_resv);
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
 4858|       |
 4859|       |			/* check if the amount free in the send socket buffer crossed the threshold */
 4860|      0|			if (inp->send_callback &&
  ------------------
  |  Branch (4860:8): [True: 0, False: 0]
  ------------------
 4861|      0|			   (((inp->send_sb_threshold > 0) && (sb_free_now >= inp->send_sb_threshold)) ||
  ------------------
  |  Branch (4861:9): [True: 0, False: 0]
  |  Branch (4861:41): [True: 0, False: 0]
  ------------------
 4862|      0|			    (inp->send_sb_threshold == 0))) {
  ------------------
  |  Branch (4862:8): [True: 0, False: 0]
  ------------------
 4863|      0|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4864|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4865|      0|				inp->send_callback(stcb->sctp_socket, sb_free_now, inp->ulp_info);
 4866|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4867|      0|				atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 4868|      0|			}
 4869|      0|		}
 4870|      0|	} else if ((wake_him) && (stcb->sctp_socket)) {
  ------------------
  |  Branch (4870:13): [True: 0, False: 0]
  |  Branch (4870:27): [True: 0, False: 0]
  ------------------
 4871|       |#else
 4872|       |	/* sa_ignore NO_NULL_CHK */
 4873|       |	if ((wake_him) && (stcb->sctp_socket)) {
 4874|       |#endif
 4875|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4876|       |		struct socket *so;
 4877|       |
 4878|       |#endif
 4879|      0|		SOCKBUF_LOCK(&stcb->sctp_socket->so_snd);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4880|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  659|      0|#define SCTP_WAKE_LOGGING_ENABLE			0x00040000
  ------------------
  |  Branch (4880:7): [True: 0, False: 0]
  ------------------
 4881|      0|			sctp_wakeup_log(stcb, wake_him, SCTP_WAKESND_FROM_SACK);
  ------------------
  |  |  178|      0|#define SCTP_WAKESND_FROM_SACK      74
  ------------------
 4882|      0|		}
 4883|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4884|       |		so = SCTP_INP_SO(stcb->sctp_ep);
 4885|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 4886|       |		SCTP_TCB_UNLOCK(stcb);
 4887|       |		SCTP_SOCKET_LOCK(so, 1);
 4888|       |		SCTP_TCB_LOCK(stcb);
 4889|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 4890|       |		if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
 4891|       |			/* assoc was freed while we were unlocked */
 4892|       |			SCTP_SOCKET_UNLOCK(so, 1);
 4893|       |			return;
 4894|       |		}
 4895|       |#endif
 4896|      0|		sctp_sowwakeup_locked(stcb->sctp_ep, stcb->sctp_socket);
  ------------------
  |  | 1011|      0|#define sctp_sowwakeup_locked(inp, so) \
  |  | 1012|      0|do { \
  |  | 1013|      0|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|      0|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1013:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 1014|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEOUTPUT); \
  |  |  ------------------
  |  |  |  |  542|      0|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  |  |  ------------------
  |  | 1015|      0|		SOCKBUF_UNLOCK(&((so)->so_snd)); \
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1016|      0|	} else { \
  |  | 1017|      0|		sowwakeup_locked(so); \
  |  |  ------------------
  |  |  |  |  524|      0|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  525|      0|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  526|      0|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|      0|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|      0|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|      0|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|      0|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|      0|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|      0|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|      0|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|      0|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  527|      0|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  528|      0|	else								\
  |  |  |  |  529|      0|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  530|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (530:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1018|      0|	} \
  |  | 1019|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (1019:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4897|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4898|       |		SCTP_SOCKET_UNLOCK(so, 1);
 4899|       |#endif
 4900|      0|	} else {
 4901|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_WAKE_LOGGING_ENABLE) {
  ------------------
  |  |  659|      0|#define SCTP_WAKE_LOGGING_ENABLE			0x00040000
  ------------------
  |  Branch (4901:7): [True: 0, False: 0]
  ------------------
 4902|      0|			sctp_wakeup_log(stcb, wake_him, SCTP_NOWAKE_FROM_SACK);
  ------------------
  |  |  180|      0|#define SCTP_NOWAKE_FROM_SACK       76
  ------------------
 4903|      0|		}
 4904|      0|	}
 4905|       |
 4906|      0|	if (asoc->fast_retran_loss_recovery && accum_moved) {
  ------------------
  |  Branch (4906:6): [True: 0, False: 0]
  |  Branch (4906:41): [True: 0, False: 0]
  ------------------
 4907|      0|		if (SCTP_TSN_GE(asoc->last_acked_seq, asoc->fast_recovery_tsn)) {
  ------------------
  |  |  890|      0|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4908|       |			/* Setup so we will exit RFC2582 fast recovery */
 4909|      0|			will_exit_fast_recovery = 1;
 4910|      0|		}
 4911|      0|	}
 4912|       |	/*
 4913|       |	 * Check for revoked fragments:
 4914|       |	 *
 4915|       |	 * if Previous sack - Had no frags then we can't have any revoked if
 4916|       |	 * Previous sack - Had frag's then - If we now have frags aka
 4917|       |	 * num_seg > 0 call sctp_check_for_revoked() to tell if peer revoked
 4918|       |	 * some of them. else - The peer revoked all ACKED fragments, since
 4919|       |	 * we had some before and now we have NONE.
 4920|       |	 */
 4921|       |
 4922|      0|	if (num_seg) {
  ------------------
  |  Branch (4922:6): [True: 0, False: 0]
  ------------------
 4923|      0|		sctp_check_for_revoked(stcb, asoc, cum_ack, biggest_tsn_acked);
 4924|      0|		asoc->saw_sack_with_frags = 1;
 4925|      0|	} else if (asoc->saw_sack_with_frags) {
  ------------------
  |  Branch (4925:13): [True: 0, False: 0]
  ------------------
 4926|      0|		int cnt_revoked = 0;
 4927|       |
 4928|       |		/* Peer revoked all dg's marked or acked */
 4929|      0|		TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (4929:3): [True: 0, False: 0]
  ------------------
 4930|      0|			if (tp1->sent == SCTP_DATAGRAM_ACKED) {
  ------------------
  |  |  355|      0|#define SCTP_DATAGRAM_ACKED		10010
  ------------------
  |  Branch (4930:8): [True: 0, False: 0]
  ------------------
 4931|      0|				tp1->sent = SCTP_DATAGRAM_SENT;
  ------------------
  |  |  349|      0|#define SCTP_DATAGRAM_SENT		1
  ------------------
 4932|      0|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  646|      0|#define SCTP_FLIGHT_LOGGING_ENABLE			0x00000020
  ------------------
  |  Branch (4932:9): [True: 0, False: 0]
  ------------------
 4933|      0|					sctp_misc_ints(SCTP_FLIGHT_LOG_UP_REVOKE,
  ------------------
  |  |  218|      0|#define SCTP_FLIGHT_LOG_UP_REVOKE  114
  ------------------
 4934|      0|					               tp1->whoTo->flight_size,
 4935|      0|					               tp1->book_size,
 4936|      0|					               (uint32_t)(uintptr_t)tp1->whoTo,
 4937|      0|					               tp1->rec.data.tsn);
 4938|      0|				}
 4939|      0|				sctp_flight_size_increase(tp1);
  ------------------
  |  |  296|      0|#define sctp_flight_size_increase(tp1) do { \
  |  |  297|      0|	(tp1)->whoTo->flight_size += (tp1)->book_size; \
  |  |  298|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (298:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4940|      0|				sctp_total_flight_increase(stcb, tp1);
  ------------------
  |  |  350|      0|#define sctp_total_flight_increase(stcb, tp1) do { \
  |  |  351|      0|	(stcb)->asoc.total_flight_count++; \
  |  |  352|      0|	(stcb)->asoc.total_flight += (tp1)->book_size; \
  |  |  353|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (353:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4941|      0|				tp1->rec.data.chunk_was_revoked = 1;
 4942|       |				/*
 4943|       |				 * To ensure that this increase in
 4944|       |				 * flightsize, which is artificial,
 4945|       |				 * does not throttle the sender, we
 4946|       |				 * also increase the cwnd
 4947|       |				 * artificially.
 4948|       |				 */
 4949|      0|				tp1->whoTo->cwnd += tp1->book_size;
 4950|      0|				cnt_revoked++;
 4951|      0|			}
 4952|      0|		}
 4953|      0|		if (cnt_revoked) {
  ------------------
  |  Branch (4953:7): [True: 0, False: 0]
  ------------------
 4954|      0|			reneged_all = 1;
 4955|      0|		}
 4956|      0|		asoc->saw_sack_with_frags = 0;
 4957|      0|	}
 4958|      0|	if (num_nr_seg > 0)
  ------------------
  |  Branch (4958:6): [True: 0, False: 0]
  ------------------
 4959|      0|		asoc->saw_sack_with_nr_frags = 1;
 4960|      0|	else
 4961|      0|		asoc->saw_sack_with_nr_frags = 0;
 4962|       |
 4963|       |	/* JRS - Use the congestion control given in the CC module */
 4964|      0|	if (ecne_seen == 0) {
  ------------------
  |  Branch (4964:6): [True: 0, False: 0]
  ------------------
 4965|      0|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (4965:3): [True: 0, False: 0]
  ------------------
 4966|      0|			if (net->net_ack2 > 0) {
  ------------------
  |  Branch (4966:8): [True: 0, False: 0]
  ------------------
 4967|       |				/*
 4968|       |				 * Karn's rule applies to clearing error count, this
 4969|       |				 * is optional.
 4970|       |				 */
 4971|      0|				net->error_count = 0;
 4972|      0|				if ((net->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (4972:9): [True: 0, False: 0]
  ------------------
 4973|       |					/* addr came good */
 4974|      0|					net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4975|      0|					sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb,
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
 4976|      0|					                0, (void *)net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4977|      0|				}
 4978|       |
 4979|      0|				if (net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (4979:9): [True: 0, False: 0]
  ------------------
 4980|      0|					if (stcb->asoc.alternate) {
  ------------------
  |  Branch (4980:10): [True: 0, False: 0]
  ------------------
 4981|       |						/* release the alternate, primary is good */
 4982|      0|						sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 4983|      0|						stcb->asoc.alternate = NULL;
 4984|      0|					}
 4985|      0|				}
 4986|       |
 4987|      0|				if (net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (4987:9): [True: 0, False: 0]
  ------------------
 4988|      0|					net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 4989|      0|					sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 4990|      0|					                stcb->sctp_ep, stcb, net,
 4991|      0|					                SCTP_FROM_SCTP_INDATA + SCTP_LOC_33);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              					                SCTP_FROM_SCTP_INDATA + SCTP_LOC_33);
  ------------------
  |  |  801|      0|#define SCTP_LOC_33 0x00000021
  ------------------
 4992|      0|					sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 4993|      0|					asoc->cc_functions.sctp_cwnd_update_exit_pf(stcb, net);
 4994|       |					/* Done with this net */
 4995|      0|					net->net_ack = 0;
 4996|      0|				}
 4997|       |				/* restore any doubled timers */
 4998|      0|				net->RTO = (net->lastsa >> SCTP_RTT_SHIFT) + net->lastsv;
  ------------------
  |  |   40|      0|#define SCTP_RTT_SHIFT 3
  ------------------
 4999|      0|				if (net->RTO < stcb->asoc.minrto) {
  ------------------
  |  Branch (4999:9): [True: 0, False: 0]
  ------------------
 5000|      0|					net->RTO = stcb->asoc.minrto;
 5001|      0|				}
 5002|      0|				if (net->RTO > stcb->asoc.maxrto) {
  ------------------
  |  Branch (5002:9): [True: 0, False: 0]
  ------------------
 5003|      0|					net->RTO = stcb->asoc.maxrto;
 5004|      0|				}
 5005|      0|			}
 5006|      0|		}
 5007|      0|		asoc->cc_functions.sctp_cwnd_update_after_sack(stcb, asoc, accum_moved, reneged_all, will_exit_fast_recovery);
 5008|      0|	}
 5009|       |
 5010|      0|	if (TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (5010:6): [True: 0, False: 0]
  ------------------
 5011|       |		/* nothing left in-flight */
 5012|      0|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (5012:3): [True: 0, False: 0]
  ------------------
 5013|       |			/* stop all timers */
 5014|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 5015|      0|			                stcb, net,
 5016|      0|			                SCTP_FROM_SCTP_INDATA + SCTP_LOC_34);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			                SCTP_FROM_SCTP_INDATA + SCTP_LOC_34);
  ------------------
  |  |  802|      0|#define SCTP_LOC_34 0x00000022
  ------------------
 5017|      0|			net->flight_size = 0;
 5018|      0|			net->partial_bytes_acked = 0;
 5019|      0|		}
 5020|      0|		asoc->total_flight = 0;
 5021|      0|		asoc->total_flight_count = 0;
 5022|      0|	}
 5023|       |
 5024|       |	/**********************************/
 5025|       |	/* Now what about shutdown issues */
 5026|       |	/**********************************/
 5027|      0|	if (TAILQ_EMPTY(&asoc->send_queue) && TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (5027:6): [True: 0, False: 0]
  |  Branch (5027:40): [True: 0, False: 0]
  ------------------
 5028|       |		/* nothing left on sendqueue.. consider done */
 5029|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  661|      0|#define SCTP_LOG_RWND_ENABLE    			0x00100000
  ------------------
  |  Branch (5029:7): [True: 0, False: 0]
  ------------------
 5030|      0|			sctp_log_rwnd_set(SCTP_SET_PEER_RWND_VIA_SACK,
  ------------------
  |  |  142|      0|#define SCTP_SET_PEER_RWND_VIA_SACK 38
  ------------------
 5031|      0|			                  asoc->peers_rwnd, 0, 0, a_rwnd);
 5032|      0|		}
 5033|      0|		asoc->peers_rwnd = a_rwnd;
 5034|      0|		if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (5034:7): [True: 0, False: 0]
  ------------------
 5035|       |			/* SWS sender side engages */
 5036|      0|			asoc->peers_rwnd = 0;
 5037|      0|		}
 5038|       |		/* clean up */
 5039|      0|		if ((asoc->stream_queue_cnt == 1) &&
  ------------------
  |  Branch (5039:7): [True: 0, False: 0]
  ------------------
 5040|      0|		    ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) ||
  ------------------
  |  |  463|      0|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (5040:8): [True: 0, False: 0]
  ------------------
 5041|      0|		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (5041:8): [True: 0, False: 0]
  ------------------
 5042|      0|		    ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete)(stcb, asoc))) {
  ------------------
  |  Branch (5042:7): [True: 0, False: 0]
  ------------------
 5043|      0|			SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_PARTIAL_MSG_LEFT);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
 5044|      0|		}
 5045|      0|		if (((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) ||
  ------------------
  |  |  463|      0|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (5045:8): [True: 0, False: 0]
  ------------------
 5046|      0|		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		     (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (5046:8): [True: 0, False: 0]
  ------------------
 5047|      0|		    (asoc->stream_queue_cnt == 1) &&
  ------------------
  |  Branch (5047:7): [True: 0, False: 0]
  ------------------
 5048|      0|		    (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT)) {
  ------------------
  |  |  466|      0|#define SCTP_STATE_PARTIAL_MSG_LEFT     0x0400
  ------------------
  |  Branch (5048:7): [True: 0, False: 0]
  ------------------
 5049|      0|			struct mbuf *op_err;
 5050|       |
 5051|      0|			*abort_now = 1;
 5052|       |			/* XXX */
 5053|      0|			op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
  ------------------
  |  |  377|      0|#define SCTP_CAUSE_USER_INITIATED_ABT	0x000c
  ------------------
 5054|      0|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_35;
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_35;
  ------------------
  |  |  803|      0|#define SCTP_LOC_35 0x00000023
  ------------------
 5055|      0|			sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5056|      0|			return;
 5057|      0|		}
 5058|      0|		if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) &&
  ------------------
  |  |  463|      0|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (5058:7): [True: 0, False: 0]
  ------------------
 5059|      0|		    (asoc->stream_queue_cnt == 0)) {
  ------------------
  |  Branch (5059:7): [True: 0, False: 0]
  ------------------
 5060|      0|			struct sctp_nets *netp;
 5061|       |
 5062|      0|			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (5062:8): [True: 0, False: 0]
  ------------------
 5063|      0|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (5063:8): [True: 0, False: 0]
  ------------------
 5064|      0|				SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5065|      0|			}
 5066|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
 5067|      0|			sctp_stop_timers_for_shutdown(stcb);
 5068|      0|			if (asoc->alternate) {
  ------------------
  |  Branch (5068:8): [True: 0, False: 0]
  ------------------
 5069|      0|				netp = asoc->alternate;
 5070|      0|			} else {
 5071|      0|				netp = asoc->primary_destination;
 5072|      0|			}
 5073|      0|			sctp_send_shutdown(stcb, netp);
 5074|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN,
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
 5075|      0|					 stcb->sctp_ep, stcb, netp);
 5076|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD,
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
 5077|      0|					 stcb->sctp_ep, stcb, NULL);
 5078|      0|			return;
 5079|      0|		} else if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		} else if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (5079:14): [True: 0, False: 0]
  ------------------
 5080|      0|			   (asoc->stream_queue_cnt == 0)) {
  ------------------
  |  Branch (5080:7): [True: 0, False: 0]
  ------------------
 5081|      0|			struct sctp_nets *netp;
 5082|       |
 5083|      0|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5084|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_ACK_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
 5085|      0|			sctp_stop_timers_for_shutdown(stcb);
 5086|      0|			if (asoc->alternate) {
  ------------------
  |  Branch (5086:8): [True: 0, False: 0]
  ------------------
 5087|      0|				netp = asoc->alternate;
 5088|      0|			} else {
 5089|      0|				netp = asoc->primary_destination;
 5090|      0|			}
 5091|      0|			sctp_send_shutdown_ack(stcb, netp);
 5092|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNACK,
  ------------------
  |  |  540|      0|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
 5093|      0|			                 stcb->sctp_ep, stcb, netp);
 5094|      0|			return;
 5095|      0|		}
 5096|      0|	}
 5097|       |	/*
 5098|       |	 * Now here we are going to recycle net_ack for a different use...
 5099|       |	 * HEADS UP.
 5100|       |	 */
 5101|      0|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (5101:2): [True: 0, False: 0]
  ------------------
 5102|      0|		net->net_ack = 0;
 5103|      0|	}
 5104|       |
 5105|       |	/*
 5106|       |	 * CMT DAC algorithm: If SACK DAC flag was 0, then no extra marking
 5107|       |	 * to be done. Setting this_sack_lowest_newack to the cum_ack will
 5108|       |	 * automatically ensure that.
 5109|       |	 */
 5110|      0|	if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (5110:6): [True: 0, False: 0]
  ------------------
 5111|      0|	    SCTP_BASE_SYSCTL(sctp_cmt_use_dac) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5112|      0|	    (cmt_dac_flag == 0)) {
  ------------------
  |  Branch (5112:6): [True: 0, False: 0]
  ------------------
 5113|      0|		this_sack_lowest_newack = cum_ack;
 5114|      0|	}
 5115|      0|	if ((num_seg > 0) || (num_nr_seg > 0)) {
  ------------------
  |  Branch (5115:6): [True: 0, False: 0]
  |  Branch (5115:23): [True: 0, False: 0]
  ------------------
 5116|      0|		sctp_strike_gap_ack_chunks(stcb, asoc, biggest_tsn_acked,
 5117|      0|		                           biggest_tsn_newly_acked, this_sack_lowest_newack, accum_moved);
 5118|      0|	}
 5119|       |	/* JRS - Use the congestion control given in the CC module */
 5120|      0|	asoc->cc_functions.sctp_cwnd_update_after_fr(stcb, asoc);
 5121|       |
 5122|       |	/* Now are we exiting loss recovery ? */
 5123|      0|	if (will_exit_fast_recovery) {
  ------------------
  |  Branch (5123:6): [True: 0, False: 0]
  ------------------
 5124|       |		/* Ok, we must exit fast recovery */
 5125|      0|		asoc->fast_retran_loss_recovery = 0;
 5126|      0|	}
 5127|      0|	if ((asoc->sat_t3_loss_recovery) &&
  ------------------
  |  Branch (5127:6): [True: 0, False: 0]
  ------------------
 5128|      0|	    SCTP_TSN_GE(asoc->last_acked_seq, asoc->sat_t3_recovery_tsn)) {
  ------------------
  |  |  890|      0|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5129|       |		/* end satellite t3 loss recovery */
 5130|      0|		asoc->sat_t3_loss_recovery = 0;
 5131|      0|	}
 5132|       |	/*
 5133|       |	 * CMT Fast recovery
 5134|       |	 */
 5135|      0|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (5135:2): [True: 0, False: 0]
  ------------------
 5136|      0|		if (net->will_exit_fast_recovery) {
  ------------------
  |  Branch (5136:7): [True: 0, False: 0]
  ------------------
 5137|       |			/* Ok, we must exit fast recovery */
 5138|      0|			net->fast_retran_loss_recovery = 0;
 5139|      0|		}
 5140|      0|	}
 5141|       |
 5142|       |	/* Adjust and set the new rwnd value */
 5143|      0|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  661|      0|#define SCTP_LOG_RWND_ENABLE    			0x00100000
  ------------------
  |  Branch (5143:6): [True: 0, False: 0]
  ------------------
 5144|      0|		sctp_log_rwnd_set(SCTP_SET_PEER_RWND_VIA_SACK,
  ------------------
  |  |  142|      0|#define SCTP_SET_PEER_RWND_VIA_SACK 38
  ------------------
 5145|      0|		                  asoc->peers_rwnd, asoc->total_flight, (asoc->total_flight_count * SCTP_BASE_SYSCTL(sctp_peer_chunk_oh)), a_rwnd);
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 5146|      0|	}
 5147|      0|	asoc->peers_rwnd = sctp_sbspace_sub(a_rwnd,
  ------------------
  |  |   93|      0|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5148|      0|	                                    (uint32_t) (asoc->total_flight + (asoc->total_flight_count * SCTP_BASE_SYSCTL(sctp_peer_chunk_oh))));
 5149|      0|	if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (5149:6): [True: 0, False: 0]
  ------------------
 5150|       |		/* SWS sender side engages */
 5151|      0|		asoc->peers_rwnd = 0;
 5152|      0|	}
 5153|      0|	if (asoc->peers_rwnd > old_rwnd) {
  ------------------
  |  Branch (5153:6): [True: 0, False: 0]
  ------------------
 5154|      0|		win_probe_recovery = 1;
 5155|      0|	}
 5156|       |
 5157|       |	/*
 5158|       |	 * Now we must setup so we have a timer up for anyone with
 5159|       |	 * outstanding data.
 5160|       |	 */
 5161|      0|	done_once = 0;
 5162|      0|again:
 5163|      0|	j = 0;
 5164|      0|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (5164:2): [True: 0, False: 0]
  ------------------
 5165|      0|		if (win_probe_recovery && (net->window_probe)) {
  ------------------
  |  Branch (5165:7): [True: 0, False: 0]
  |  Branch (5165:29): [True: 0, False: 0]
  ------------------
 5166|      0|			win_probe_recovered = 1;
 5167|       |			/*-
 5168|       |			 * Find first chunk that was used with
 5169|       |			 * window probe and clear the event. Put
 5170|       |			 * it back into the send queue as if has
 5171|       |			 * not been sent.
 5172|       |			 */
 5173|      0|			TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (5173:4): [True: 0, False: 0]
  ------------------
 5174|      0|				if (tp1->window_probe) {
  ------------------
  |  Branch (5174:9): [True: 0, False: 0]
  ------------------
 5175|      0|					sctp_window_probe_recovery(stcb, asoc, tp1);
 5176|      0|					break;
 5177|      0|				}
 5178|      0|			}
 5179|      0|		}
 5180|      0|		if (net->flight_size) {
  ------------------
  |  Branch (5180:7): [True: 0, False: 0]
  ------------------
 5181|      0|			j++;
 5182|      0|			if (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (5182:8): [True: 0, False: 0]
  ------------------
 5183|      0|				sctp_timer_start(SCTP_TIMER_TYPE_SEND,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 5184|      0|				                 stcb->sctp_ep, stcb, net);
 5185|      0|			}
 5186|      0|			if (net->window_probe) {
  ------------------
  |  Branch (5186:8): [True: 0, False: 0]
  ------------------
 5187|      0|				net->window_probe = 0;
 5188|      0|			}
 5189|      0|		} else {
 5190|      0|			if (net->window_probe) {
  ------------------
  |  Branch (5190:8): [True: 0, False: 0]
  ------------------
 5191|       |				/* In window probes we must assure a timer is still running there */
 5192|      0|				if (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (5192:9): [True: 0, False: 0]
  ------------------
 5193|      0|					sctp_timer_start(SCTP_TIMER_TYPE_SEND,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 5194|      0|					                 stcb->sctp_ep, stcb, net);
 5195|      0|				}
 5196|      0|			} else if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5197|      0|				sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 5198|      0|				                stcb, net,
 5199|      0|				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_36);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_36);
  ------------------
  |  |  804|      0|#define SCTP_LOC_36 0x00000024
  ------------------
 5200|      0|			}
 5201|      0|		}
 5202|      0|	}
 5203|      0|	if ((j == 0) &&
  ------------------
  |  Branch (5203:6): [True: 0, False: 0]
  ------------------
 5204|      0|	    (!TAILQ_EMPTY(&asoc->sent_queue)) &&
  ------------------
  |  Branch (5204:6): [True: 0, False: 0]
  ------------------
 5205|      0|	    (asoc->sent_queue_retran_cnt == 0) &&
  ------------------
  |  Branch (5205:6): [True: 0, False: 0]
  ------------------
 5206|      0|	    (win_probe_recovered == 0) &&
  ------------------
  |  Branch (5206:6): [True: 0, False: 0]
  ------------------
 5207|      0|	    (done_once == 0)) {
  ------------------
  |  Branch (5207:6): [True: 0, False: 0]
  ------------------
 5208|       |		/* huh, this should not happen unless all packets
 5209|       |		 * are PR-SCTP and marked to skip of course.
 5210|       |		 */
 5211|      0|		if (sctp_fs_audit(asoc)) {
  ------------------
  |  Branch (5211:7): [True: 0, False: 0]
  ------------------
 5212|      0|			TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (5212:4): [True: 0, False: 0]
  ------------------
 5213|      0|				net->flight_size = 0;
 5214|      0|			}
 5215|      0|			asoc->total_flight = 0;
 5216|      0|			asoc->total_flight_count = 0;
 5217|      0|			asoc->sent_queue_retran_cnt = 0;
 5218|      0|			TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (5218:4): [True: 0, False: 0]
  ------------------
 5219|      0|				if (tp1->sent < SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (5219:9): [True: 0, False: 0]
  ------------------
 5220|      0|					sctp_flight_size_increase(tp1);
  ------------------
  |  |  296|      0|#define sctp_flight_size_increase(tp1) do { \
  |  |  297|      0|	(tp1)->whoTo->flight_size += (tp1)->book_size; \
  |  |  298|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (298:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5221|      0|					sctp_total_flight_increase(stcb, tp1);
  ------------------
  |  |  350|      0|#define sctp_total_flight_increase(stcb, tp1) do { \
  |  |  351|      0|	(stcb)->asoc.total_flight_count++; \
  |  |  352|      0|	(stcb)->asoc.total_flight += (tp1)->book_size; \
  |  |  353|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (353:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5222|      0|				} else if (tp1->sent == SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (5222:16): [True: 0, False: 0]
  ------------------
 5223|      0|					sctp_ucount_incr(asoc->sent_queue_retran_cnt);
  ------------------
  |  |  266|      0|#define sctp_ucount_incr(val) { \
  |  |  267|      0|	val++; \
  |  |  268|      0|}
  ------------------
 5224|      0|				}
 5225|      0|			}
 5226|      0|		}
 5227|      0|		done_once = 1;
 5228|      0|		goto again;
 5229|      0|	}
 5230|       |	/*********************************************/
 5231|       |	/* Here we perform PR-SCTP procedures        */
 5232|       |	/* (section 4.2)                             */
 5233|       |	/*********************************************/
 5234|       |	/* C1. update advancedPeerAckPoint */
 5235|      0|	if (SCTP_TSN_GT(cum_ack, asoc->advanced_peer_ack_point)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5236|      0|		asoc->advanced_peer_ack_point = cum_ack;
 5237|      0|	}
 5238|       |	/* C2. try to further move advancedPeerAckPoint ahead */
 5239|      0|	if ((asoc->prsctp_supported) && (asoc->pr_sctp_cnt > 0)) {
  ------------------
  |  Branch (5239:6): [True: 0, False: 0]
  |  Branch (5239:34): [True: 0, False: 0]
  ------------------
 5240|      0|		struct sctp_tmit_chunk *lchk;
 5241|      0|		uint32_t old_adv_peer_ack_point;
 5242|       |
 5243|      0|		old_adv_peer_ack_point = asoc->advanced_peer_ack_point;
 5244|      0|		lchk = sctp_try_advance_peer_ack_point(stcb, asoc);
 5245|       |		/* C3. See if we need to send a Fwd-TSN */
 5246|      0|		if (SCTP_TSN_GT(asoc->advanced_peer_ack_point, cum_ack)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5247|       |			/*
 5248|       |			 * ISSUE with ECN, see FWD-TSN processing.
 5249|       |			 */
 5250|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  669|      0|#define SCTP_LOG_TRY_ADVANCE				0x10000000
  ------------------
  |  Branch (5250:8): [True: 0, False: 0]
  ------------------
 5251|      0|				sctp_misc_ints(SCTP_FWD_TSN_CHECK,
  ------------------
  |  |  227|      0|#define SCTP_FWD_TSN_CHECK         123
  ------------------
 5252|      0|				               0xee, cum_ack, asoc->advanced_peer_ack_point,
 5253|      0|				               old_adv_peer_ack_point);
 5254|      0|			}
 5255|      0|			if (SCTP_TSN_GT(asoc->advanced_peer_ack_point, old_adv_peer_ack_point)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5256|      0|				send_forward_tsn(stcb, asoc);
 5257|      0|			} else if (lchk) {
  ------------------
  |  Branch (5257:15): [True: 0, False: 0]
  ------------------
 5258|       |				/* try to FR fwd-tsn's that get lost too */
 5259|      0|				if (lchk->rec.data.fwd_tsn_cnt >= 3) {
  ------------------
  |  Branch (5259:9): [True: 0, False: 0]
  ------------------
 5260|      0|					send_forward_tsn(stcb, asoc);
 5261|      0|				}
 5262|      0|			}
 5263|      0|		}
 5264|      0|		for (; lchk != NULL; lchk = TAILQ_NEXT(lchk, sctp_next)) {
  ------------------
  |  Branch (5264:10): [True: 0, False: 0]
  ------------------
 5265|      0|			if (lchk->whoTo != NULL) {
  ------------------
  |  Branch (5265:8): [True: 0, False: 0]
  ------------------
 5266|      0|				break;
 5267|      0|			}
 5268|      0|		}
 5269|      0|		if (lchk != NULL) {
  ------------------
  |  Branch (5269:7): [True: 0, False: 0]
  ------------------
 5270|       |			/* Assure a timer is up */
 5271|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SEND,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 5272|      0|			                 stcb->sctp_ep, stcb, lchk->whoTo);
 5273|      0|		}
 5274|      0|	}
 5275|      0|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  656|      0|#define SCTP_SACK_RWND_LOGGING_ENABLE			0x00008000
  ------------------
  |  Branch (5275:6): [True: 0, False: 0]
  ------------------
 5276|      0|		sctp_misc_ints(SCTP_SACK_RWND_UPDATE,
  ------------------
  |  |  191|      0|#define SCTP_SACK_RWND_UPDATE       87
  ------------------
 5277|      0|		               a_rwnd,
 5278|      0|		               stcb->asoc.peers_rwnd,
 5279|      0|		               stcb->asoc.total_flight,
 5280|      0|		               stcb->asoc.total_output_queue_size);
 5281|      0|	}
 5282|      0|}
sctp_update_acked:
 5286|  1.05k|{
 5287|       |	/* Copy cum-ack */
 5288|  1.05k|	uint32_t cum_ack, a_rwnd;
 5289|       |
 5290|  1.05k|	cum_ack = ntohl(cp->cumulative_tsn_ack);
 5291|       |	/* Arrange so a_rwnd does NOT change */
 5292|  1.05k|	a_rwnd = stcb->asoc.peers_rwnd + stcb->asoc.total_flight;
 5293|       |
 5294|       |	/* Now call the express sack handling */
 5295|  1.05k|	sctp_express_handle_sack(stcb, cum_ack, a_rwnd, abort_flag, 0);
 5296|  1.05k|}
sctp_handle_forward_tsn:
 5554|  3.01k|{
 5555|       |	/* The pr-sctp fwd tsn */
 5556|       |	/*
 5557|       |	 * here we will perform all the data receiver side steps for
 5558|       |	 * processing FwdTSN, as required in by pr-sctp draft:
 5559|       |	 *
 5560|       |	 * Assume we get FwdTSN(x):
 5561|       |	 *
 5562|       |	 * 1) update local cumTSN to x
 5563|       |	 * 2) try to further advance cumTSN to x + others we have
 5564|       |	 * 3) examine and update re-ordering queue on pr-in-streams
 5565|       |	 * 4) clean up re-assembly queue
 5566|       |	 * 5) Send a sack to report where we are.
 5567|       |	 */
 5568|  3.01k|	struct sctp_association *asoc;
 5569|  3.01k|	uint32_t new_cum_tsn, gap;
 5570|  3.01k|	unsigned int i, fwd_sz, m_size;
 5571|  3.01k|	struct sctp_stream_in *strm;
 5572|  3.01k|	struct sctp_queued_to_read *control, *ncontrol;
 5573|       |
 5574|  3.01k|	asoc = &stcb->asoc;
 5575|  3.01k|	if ((fwd_sz = ntohs(fwd->ch.chunk_length)) < sizeof(struct sctp_forward_tsn_chunk)) {
  ------------------
  |  Branch (5575:6): [True: 0, False: 3.01k]
  ------------------
 5576|      0|		SCTPDBG(SCTP_DEBUG_INDATA1,
 5577|      0|			"Bad size too small/big fwd-tsn\n");
 5578|      0|		return;
 5579|      0|	}
 5580|  3.01k|	m_size = (stcb->asoc.mapping_array_size << 3);
 5581|       |	/*************************************************************/
 5582|       |	/* 1. Here we update local cumTSN and shift the bitmap array */
 5583|       |	/*************************************************************/
 5584|  3.01k|	new_cum_tsn = ntohl(fwd->new_cumulative_tsn);
 5585|       |
 5586|  3.01k|	if (SCTP_TSN_GE(asoc->cumulative_tsn, new_cum_tsn)) {
  ------------------
  |  |  890|  3.01k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  3.01k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  6.03k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 1.85k, False: 1.16k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 551, False: 1.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  6.03k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 727, False: 1.74k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 676, False: 51]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 439, False: 1.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5587|       |		/* Already got there ... */
 5588|  1.66k|		return;
 5589|  1.66k|	}
 5590|       |	/*
 5591|       |	 * now we know the new TSN is more advanced, let's find the actual
 5592|       |	 * gap
 5593|       |	 */
 5594|  1.35k|	SCTP_CALC_TSN_TO_GAP(gap, new_cum_tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  1.35k|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  1.35k|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 1.32k, False: 26]
  |  |  ------------------
  |  |  901|  1.32k|						gap = tsn - mapping_tsn; \
  |  |  902|  1.32k|					} else { \
  |  |  903|     26|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|     26|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|     26|					} \
  |  |  905|  1.35k|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 1.35k]
  |  |  ------------------
  ------------------
 5595|  1.35k|	asoc->cumulative_tsn = new_cum_tsn;
 5596|  1.35k|	if (gap >= m_size) {
  ------------------
  |  Branch (5596:6): [True: 737, False: 616]
  ------------------
 5597|    737|		if ((long)gap > sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv)) {
  ------------------
  |  |   89|    737|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    737|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    737|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 737, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    735|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    735|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 735, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 735, False: 2]
  |  |  ------------------
  ------------------
  |  Branch (5597:7): [True: 91, False: 646]
  ------------------
 5598|     91|			struct mbuf *op_err;
 5599|     91|			char msg[SCTP_DIAG_INFO_LEN];
 5600|       |
 5601|       |			/*
 5602|       |			 * out of range (of single byte chunks in the rwnd I
 5603|       |			 * give out). This must be an attacker.
 5604|       |			 */
 5605|     91|			*abort_flag = 1;
 5606|     91|			SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|     91|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 91]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 5607|     91|			              "New cum ack %8.8x too high, highest TSN %8.8x",
 5608|     91|			              new_cum_tsn, asoc->highest_tsn_inside_map);
 5609|     91|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     91|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 5610|     91|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_37;
  ------------------
  |  |  757|     91|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_37;
  ------------------
  |  |  805|     91|#define SCTP_LOC_37 0x00000025
  ------------------
 5611|     91|			sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     91|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5612|     91|			return;
 5613|     91|		}
 5614|    646|		SCTP_STAT_INCR(sctps_fwdtsn_map_over);
  ------------------
  |  | 1112|    646|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    646|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    646|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5615|       |
 5616|    646|		memset(stcb->asoc.mapping_array, 0, stcb->asoc.mapping_array_size);
 5617|    646|		asoc->mapping_array_base_tsn = new_cum_tsn + 1;
 5618|    646|		asoc->highest_tsn_inside_map = new_cum_tsn;
 5619|       |
 5620|    646|		memset(stcb->asoc.nr_mapping_array, 0, stcb->asoc.mapping_array_size);
 5621|    646|		asoc->highest_tsn_inside_nr_map = new_cum_tsn;
 5622|       |
 5623|    646|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|    646|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|    646|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (5623:7): [True: 0, False: 646]
  ------------------
 5624|      0|			sctp_log_map(0, 3, asoc->highest_tsn_inside_map, SCTP_MAP_SLIDE_RESULT);
  ------------------
  |  |  128|      0|#define SCTP_MAP_SLIDE_RESULT       23
  ------------------
 5625|      0|		}
 5626|    646|	} else {
 5627|    616|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    616|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    616|	do {                         \
  |  |  |  |  113|    616|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 616]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    616|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 616]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5628|  15.2k|		for (i = 0; i <= gap; i++) {
  ------------------
  |  Branch (5628:15): [True: 14.6k, False: 616]
  ------------------
 5629|  14.6k|			if (!SCTP_IS_TSN_PRESENT(asoc->mapping_array, i) &&
  ------------------
  |  |  896|  29.2k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  |  Branch (5629:8): [True: 14.6k, False: 0]
  ------------------
 5630|  14.6k|			    !SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, i)) {
  ------------------
  |  |  896|  14.6k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  |  Branch (5630:8): [True: 14.5k, False: 72]
  ------------------
 5631|  14.5k|				SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, i);
  ------------------
  |  |  897|  14.5k|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 5632|  14.5k|				if (SCTP_TSN_GT(asoc->mapping_array_base_tsn + i, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  14.5k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  14.5k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 14.5k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  14.5k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 14.4k, False: 100]
  |  |  |  |  |  Branch (884:43): [True: 14.4k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5633|  14.4k|					asoc->highest_tsn_inside_nr_map = asoc->mapping_array_base_tsn + i;
 5634|  14.4k|				}
 5635|  14.5k|			}
 5636|  14.6k|		}
 5637|    616|	}
 5638|       |	/*************************************************************/
 5639|       |	/* 2. Clear up re-assembly queue                             */
 5640|       |	/*************************************************************/
 5641|       |
 5642|       |	/* This is now done as part of clearing up the stream/seq */
 5643|  1.26k|	if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (5643:6): [True: 598, False: 664]
  ------------------
 5644|    598|		uint16_t sid;
 5645|       |
 5646|       |		/* Flush all the un-ordered data based on cum-tsn */
 5647|    598|		SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|    598|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    598|	do {                         \
  |  |  |  |  113|    598|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 598]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    598|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 598]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5648|   114k|		for (sid = 0; sid < asoc->streamincnt; sid++) {
  ------------------
  |  Branch (5648:17): [True: 114k, False: 598]
  ------------------
 5649|   114k|			strm = &asoc->strmin[sid];
 5650|   114k|			if (!TAILQ_EMPTY(&strm->uno_inqueue)) {
  ------------------
  |  Branch (5650:8): [True: 0, False: 114k]
  ------------------
 5651|      0|				sctp_flush_reassm_for_str_seq(stcb, asoc, strm, TAILQ_FIRST(&strm->uno_inqueue), 0, new_cum_tsn);
 5652|      0|			}
 5653|   114k|		}
 5654|    598|		SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|    598|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    598|	do {                         \
  |  |  |  |  113|    598|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 598]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    598|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 598]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5655|    598|	}
 5656|       |	/*******************************************************/
 5657|       |	/* 3. Update the PR-stream re-ordering queues and fix  */
 5658|       |	/*    delivery issues as needed.                       */
 5659|       |	/*******************************************************/
 5660|  1.26k|	fwd_sz -= sizeof(*fwd);
 5661|  1.26k|	if (m && fwd_sz) {
  ------------------
  |  Branch (5661:6): [True: 1.19k, False: 67]
  |  Branch (5661:11): [True: 729, False: 466]
  ------------------
 5662|       |		/* New method. */
 5663|    729|		unsigned int num_str;
 5664|    729|		uint32_t mid;
 5665|    729|		uint16_t sid;
 5666|    729|		uint16_t ordered, flags;
 5667|    729|		struct sctp_strseq *stseq, strseqbuf;
 5668|    729|		struct sctp_strseq_mid *stseq_m, strseqbuf_m;
 5669|    729|		offset += sizeof(*fwd);
 5670|       |
 5671|    729|		SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|    729|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    729|	do {                         \
  |  |  |  |  113|    729|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 729]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    729|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 729]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5672|    729|		if (asoc->idata_supported) {
  ------------------
  |  Branch (5672:7): [True: 419, False: 310]
  ------------------
 5673|    419|			num_str = fwd_sz / sizeof(struct sctp_strseq_mid);
 5674|    419|		} else {
 5675|    310|			num_str = fwd_sz / sizeof(struct sctp_strseq);
 5676|    310|		}
 5677|  5.81k|		for (i = 0; i < num_str; i++) {
  ------------------
  |  Branch (5677:15): [True: 5.30k, False: 508]
  ------------------
 5678|  5.30k|			if (asoc->idata_supported) {
  ------------------
  |  Branch (5678:8): [True: 1.80k, False: 3.50k]
  ------------------
 5679|  1.80k|				stseq_m = (struct sctp_strseq_mid *)sctp_m_getptr(m, offset,
 5680|  1.80k|									    sizeof(struct sctp_strseq_mid),
 5681|  1.80k|									    (uint8_t *)&strseqbuf_m);
 5682|  1.80k|				offset += sizeof(struct sctp_strseq_mid);
 5683|  1.80k|				if (stseq_m == NULL) {
  ------------------
  |  Branch (5683:9): [True: 0, False: 1.80k]
  ------------------
 5684|      0|					break;
 5685|      0|				}
 5686|  1.80k|				sid = ntohs(stseq_m->sid);
 5687|  1.80k|				mid = ntohl(stseq_m->mid);
 5688|  1.80k|				flags = ntohs(stseq_m->flags);
 5689|  1.80k|				if (flags & PR_SCTP_UNORDERED_FLAG) {
  ------------------
  |  |  343|  1.80k|#define PR_SCTP_UNORDERED_FLAG 0x0001
  ------------------
  |  Branch (5689:9): [True: 461, False: 1.34k]
  ------------------
 5690|    461|					ordered = 0;
 5691|  1.34k|				} else {
 5692|  1.34k|					ordered = 1;
 5693|  1.34k|				}
 5694|  3.50k|			} else {
 5695|  3.50k|				stseq = (struct sctp_strseq *)sctp_m_getptr(m, offset,
 5696|  3.50k|									    sizeof(struct sctp_strseq),
 5697|  3.50k|									    (uint8_t *)&strseqbuf);
 5698|  3.50k|				offset += sizeof(struct sctp_strseq);
 5699|  3.50k|				if (stseq == NULL) {
  ------------------
  |  Branch (5699:9): [True: 0, False: 3.50k]
  ------------------
 5700|      0|					break;
 5701|      0|				}
 5702|  3.50k|				sid = ntohs(stseq->sid);
 5703|  3.50k|				mid = (uint32_t)ntohs(stseq->ssn);
 5704|  3.50k|				ordered = 1;
 5705|  3.50k|			}
 5706|       |			/* Convert */
 5707|       |
 5708|       |			/* now process */
 5709|       |
 5710|       |			/*
 5711|       |			 * Ok we now look for the stream/seq on the read queue
 5712|       |			 * where its not all delivered. If we find it we transmute the
 5713|       |			 * read entry into a PDI_ABORTED.
 5714|       |			 */
 5715|  5.30k|			if (sid >= asoc->streamincnt) {
  ------------------
  |  Branch (5715:8): [True: 221, False: 5.08k]
  ------------------
 5716|       |				/* screwed up streams, stop!  */
 5717|    221|				break;
 5718|    221|			}
 5719|  5.08k|			if ((asoc->str_of_pdapi == sid) &&
  ------------------
  |  Branch (5719:8): [True: 3.76k, False: 1.32k]
  ------------------
 5720|  3.76k|			    (asoc->ssn_of_pdapi == mid)) {
  ------------------
  |  Branch (5720:8): [True: 1.64k, False: 2.11k]
  ------------------
 5721|       |				/* If this is the one we were partially delivering
 5722|       |				 * now then we no longer are. Note this will change
 5723|       |				 * with the reassembly re-write.
 5724|       |				 */
 5725|  1.64k|				asoc->fragmented_delivery_inprogress = 0;
 5726|  1.64k|			}
 5727|  5.08k|			strm = &asoc->strmin[sid];
 5728|  5.08k|			if (ordered) {
  ------------------
  |  Branch (5728:8): [True: 4.65k, False: 430]
  ------------------
 5729|  4.65k|				TAILQ_FOREACH_SAFE(control, &strm->inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  4.65k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  4.65k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 4.65k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  4.65k|              (var) = (tvar))
  ------------------
 5730|      0|					if (SCTP_MID_GE(asoc->idata_supported, mid, control->mid)) {
  ------------------
  |  |  892|      0|#define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  882|      0|#define SCTP_UINT16_GE(a, b) (SCTP_UINT16_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  880|      0|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (880:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (880:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  881|      0|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (881:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (881:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (882:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (892:30): [True: 0, False: 0]
  |  |  |  Branch (892:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5731|      0|						sctp_flush_reassm_for_str_seq(stcb, asoc, strm, control, ordered, new_cum_tsn);
 5732|      0|					}
 5733|      0|				}
 5734|  4.65k|			} else {
 5735|    430|				if (asoc->idata_supported) {
  ------------------
  |  Branch (5735:9): [True: 430, False: 0]
  ------------------
 5736|    430|					TAILQ_FOREACH_SAFE(control, &strm->uno_inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|    430|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    430|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 430]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    430|              (var) = (tvar))
  ------------------
 5737|      0|						if (SCTP_MID_GE(asoc->idata_supported, mid, control->mid)) {
  ------------------
  |  |  892|      0|#define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  882|      0|#define SCTP_UINT16_GE(a, b) (SCTP_UINT16_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  880|      0|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (880:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (880:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  881|      0|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (881:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (881:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (882:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (892:30): [True: 0, False: 0]
  |  |  |  Branch (892:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5738|      0|							sctp_flush_reassm_for_str_seq(stcb, asoc, strm, control, ordered, new_cum_tsn);
 5739|      0|						}
 5740|      0|					}
 5741|    430|				} else {
 5742|      0|					if (!TAILQ_EMPTY(&strm->uno_inqueue)) {
  ------------------
  |  Branch (5742:10): [True: 0, False: 0]
  ------------------
 5743|      0|						sctp_flush_reassm_for_str_seq(stcb, asoc, strm, TAILQ_FIRST(&strm->uno_inqueue), ordered, new_cum_tsn);
 5744|      0|					}
 5745|      0|				}
 5746|    430|			}
 5747|  5.37M|			TAILQ_FOREACH(control, &stcb->sctp_ep->read_queue, next) {
  ------------------
  |  Branch (5747:4): [True: 5.37M, False: 3.66k]
  ------------------
 5748|  5.37M|				if ((control->sinfo_stream == sid) &&
  ------------------
  |  Branch (5748:9): [True: 5.03M, False: 339k]
  ------------------
 5749|  5.03M|				    (SCTP_MID_EQ(asoc->idata_supported, control->mid, mid))) {
  ------------------
  |  |  893|  5.03M|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:31): [True: 2.25k, False: 5.02M]
  |  |  ------------------
  ------------------
  |  Branch (5749:9): [True: 1.26k, False: 5.02M]
  ------------------
 5750|  1.26k|					control->pdapi_aborted = 1;
 5751|  1.26k|					control->end_added = 1;
 5752|  1.26k|					if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|  1.26k|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (5752:10): [True: 0, False: 1.26k]
  ------------------
 5753|      0|						TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (5753:7): [True: 0, False: 0]
  |  Branch (5753:7): [Folded, False: 0]
  ------------------
 5754|      0|						if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (5754:11): [True: 0, False: 0]
  ------------------
 5755|      0|							asoc->size_on_all_streams -= control->length;
 5756|      0|						} else {
 5757|      0|#ifdef INVARIANTS
 5758|      0|							panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5759|       |#else
 5760|       |							asoc->size_on_all_streams = 0;
 5761|       |#endif
 5762|      0|						}
 5763|      0|						sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|      0|#define sctp_ucount_decr(val) { \
  |  |  271|      0|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  272|      0|		val--; \
  |  |  273|      0|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|      0|}
  ------------------
 5764|  1.26k|					} else if (control->on_strm_q == SCTP_ON_UNORDERED) {
  ------------------
  |  |  554|  1.26k|#define SCTP_ON_UNORDERED 2
  ------------------
  |  Branch (5764:17): [True: 0, False: 1.26k]
  ------------------
 5765|      0|						TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (5765:7): [True: 0, False: 0]
  |  Branch (5765:7): [Folded, False: 0]
  ------------------
 5766|      0|#ifdef INVARIANTS
 5767|  1.26k|					} else if (control->on_strm_q) {
  ------------------
  |  Branch (5767:17): [True: 0, False: 1.26k]
  ------------------
 5768|      0|						panic("strm: %p ctl: %p unknown %d",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5769|      0|						      strm, control, control->on_strm_q);
 5770|      0|#endif
 5771|      0|					}
 5772|  1.26k|					control->on_strm_q = 0;
 5773|  1.26k|					sctp_ulp_notify(SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION,
  ------------------
  |  |  717|  1.26k|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
 5774|  1.26k|					                stcb,
 5775|  1.26k|					                SCTP_PARTIAL_DELIVERY_ABORTED,
  ------------------
  |  |  451|  1.26k|#define SCTP_PARTIAL_DELIVERY_ABORTED	0x0001
  ------------------
 5776|  1.26k|					                (void *)control,
 5777|  1.26k|					                SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  1.26k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5778|  1.26k|					break;
 5779|  5.36M|				} else if ((control->sinfo_stream == sid) &&
  ------------------
  |  Branch (5779:16): [True: 5.02M, False: 339k]
  ------------------
 5780|  5.02M|					   SCTP_MID_GT(asoc->idata_supported, control->mid, mid)) {
  ------------------
  |  |  891|  5.02M|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|  1.73k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.73k, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 109, False: 1.62k]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.73k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 1.62k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|  5.02M|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 5.02M, False: 0]
  |  |  |  |  |  Branch (880:43): [True: 45, False: 5.02M]
  |  |  |  |  ------------------
  |  |  |  |  881|  5.02M|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 0, False: 5.02M]
  |  |  |  |  |  Branch (881:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 154, False: 5.02M]
  |  |  |  Branch (891:31): [True: 1.73k, False: 5.02M]
  |  |  ------------------
  ------------------
 5781|       |					/* We are past our victim SSN */
 5782|    154|					break;
 5783|    154|				}
 5784|  5.37M|			}
 5785|  5.08k|			if (SCTP_MID_GT(asoc->idata_supported, mid, strm->last_mid_delivered)) {
  ------------------
  |  |  891|  5.08k|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|  1.71k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.09k, False: 624]
  |  |  |  |  |  Branch (883:43): [True: 375, False: 715]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.71k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 292, False: 1.04k]
  |  |  |  |  |  Branch (884:43): [True: 169, False: 123]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|  3.37k|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 2.19k, False: 1.17k]
  |  |  |  |  |  Branch (880:43): [True: 354, False: 1.84k]
  |  |  |  |  ------------------
  |  |  |  |  881|  3.37k|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 445, False: 2.57k]
  |  |  |  |  |  Branch (881:43): [True: 164, False: 281]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 1.06k, False: 4.02k]
  |  |  |  Branch (891:31): [True: 1.71k, False: 3.37k]
  |  |  ------------------
  ------------------
 5786|       |				/* Update the sequence number */
 5787|  1.06k|				strm->last_mid_delivered = mid;
 5788|  1.06k|			}
 5789|       |			/* now kick the stream the new way */
 5790|       |			/*sa_ignore NO_NULL_CHK*/
 5791|  5.08k|			sctp_kick_prsctp_reorder_queue(stcb, strm);
 5792|  5.08k|		}
 5793|    729|		SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|    729|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    729|	do {                         \
  |  |  |  |  113|    729|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 729]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    729|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 729]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5794|    729|	}
 5795|       |	/*
 5796|       |	 * Now slide thing forward.
 5797|       |	 */
 5798|  1.26k|	sctp_slide_mapping_arrays(stcb);
 5799|  1.26k|}
sctp_indata.c:sctp_process_a_data_chunk:
 1689|  13.0k|{
 1690|  13.0k|	struct sctp_tmit_chunk *chk = NULL; /* make gcc happy */
 1691|  13.0k|	struct sctp_stream_in *strm;
 1692|  13.0k|	uint32_t tsn, fsn, gap, mid;
 1693|  13.0k|	struct mbuf *dmbuf;
 1694|  13.0k|	int the_len;
 1695|  13.0k|	int need_reasm_check = 0;
 1696|  13.0k|	uint16_t sid;
 1697|  13.0k|	struct mbuf *op_err;
 1698|  13.0k|	char msg[SCTP_DIAG_INFO_LEN];
 1699|  13.0k|	struct sctp_queued_to_read *control, *ncontrol;
 1700|  13.0k|	uint32_t ppid;
 1701|  13.0k|	uint8_t chk_flags;
 1702|  13.0k|	struct sctp_stream_reset_list *liste;
 1703|  13.0k|	int ordered;
 1704|  13.0k|	size_t clen;
 1705|  13.0k|	int created_control = 0;
 1706|       |
 1707|  13.0k|	if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  13.0k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (1707:6): [True: 4.16k, False: 8.93k]
  ------------------
 1708|  4.16k|		struct sctp_idata_chunk *chunk, chunk_buf;
 1709|       |
 1710|  4.16k|		chunk = (struct sctp_idata_chunk *)sctp_m_getptr(*m, offset,
 1711|  4.16k|		                                                 sizeof(struct sctp_idata_chunk), (uint8_t *)&chunk_buf);
 1712|  4.16k|		chk_flags = chunk->ch.chunk_flags;
 1713|  4.16k|		clen = sizeof(struct sctp_idata_chunk);
 1714|  4.16k|		tsn = ntohl(chunk->dp.tsn);
 1715|  4.16k|		sid = ntohs(chunk->dp.sid);
 1716|  4.16k|		mid = ntohl(chunk->dp.mid);
 1717|  4.16k|		if (chk_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|  4.16k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1717:7): [True: 2.58k, False: 1.57k]
  ------------------
 1718|  2.58k|			fsn = 0;
 1719|  2.58k|			ppid = chunk->dp.ppid_fsn.ppid;
 1720|  2.58k|		} else {
 1721|  1.57k|			fsn = ntohl(chunk->dp.ppid_fsn.fsn);
 1722|  1.57k|			ppid = 0xffffffff; /* Use as an invalid value. */
 1723|  1.57k|		}
 1724|  8.93k|	} else {
 1725|  8.93k|		struct sctp_data_chunk *chunk, chunk_buf;
 1726|       |
 1727|  8.93k|		chunk = (struct sctp_data_chunk *)sctp_m_getptr(*m, offset,
 1728|  8.93k|		                                                sizeof(struct sctp_data_chunk), (uint8_t *)&chunk_buf);
 1729|  8.93k|		chk_flags = chunk->ch.chunk_flags;
 1730|  8.93k|		clen = sizeof(struct sctp_data_chunk);
 1731|  8.93k|		tsn = ntohl(chunk->dp.tsn);
 1732|  8.93k|		sid = ntohs(chunk->dp.sid);
 1733|  8.93k|		mid = (uint32_t)(ntohs(chunk->dp.ssn));
 1734|  8.93k|		fsn = tsn;
 1735|  8.93k|		ppid = chunk->dp.ppid;
 1736|  8.93k|	}
 1737|  13.0k|	if ((size_t)chk_length == clen) {
  ------------------
  |  Branch (1737:6): [True: 6, False: 13.0k]
  ------------------
 1738|       |		/*
 1739|       |		 * Need to send an abort since we had a
 1740|       |		 * empty data chunk.
 1741|       |		 */
 1742|      6|		op_err = sctp_generate_no_user_data_cause(tsn);
 1743|      6|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_16;
  ------------------
  |  |  757|      6|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_16;
  ------------------
  |  |  784|      6|#define SCTP_LOC_16 0x00000010
  ------------------
 1744|      6|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      6|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1745|      6|		*abort_flag = 1;
 1746|      6|		return (0);
 1747|      6|	}
 1748|  13.0k|	if ((chk_flags & SCTP_DATA_SACK_IMMEDIATELY) == SCTP_DATA_SACK_IMMEDIATELY) {
  ------------------
  |  |  516|  13.0k|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
              	if ((chk_flags & SCTP_DATA_SACK_IMMEDIATELY) == SCTP_DATA_SACK_IMMEDIATELY) {
  ------------------
  |  |  516|  13.0k|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
  |  Branch (1748:6): [True: 5.37k, False: 7.71k]
  ------------------
 1749|  5.37k|		asoc->send_sack = 1;
 1750|  5.37k|	}
 1751|  13.0k|	ordered = ((chk_flags & SCTP_DATA_UNORDERED) == 0);
  ------------------
  |  |  515|  13.0k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
 1752|  13.0k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|  13.0k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|  13.0k|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (1752:6): [True: 0, False: 13.0k]
  ------------------
 1753|      0|		sctp_log_map(tsn, asoc->cumulative_tsn, asoc->highest_tsn_inside_map, SCTP_MAP_TSN_ENTERS);
  ------------------
  |  |  223|      0|#define SCTP_MAP_TSN_ENTERS        119
  ------------------
 1754|      0|	}
 1755|  13.0k|	if (stcb == NULL) {
  ------------------
  |  Branch (1755:6): [True: 0, False: 13.0k]
  ------------------
 1756|      0|		return (0);
 1757|      0|	}
 1758|  13.0k|	SCTP_LTRACE_CHK(stcb->sctp_ep, stcb, chk_type, tsn);
 1759|  13.0k|	if (SCTP_TSN_GE(asoc->cumulative_tsn, tsn)) {
  ------------------
  |  |  890|  13.0k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  13.0k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  26.1k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 9.53k, False: 3.55k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 9.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  26.1k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 3.05k, False: 10.0k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 1.85k, False: 1.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 503, False: 10.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1760|       |		/* It is a duplicate */
 1761|  2.36k|		SCTP_STAT_INCR(sctps_recvdupdata);
  ------------------
  |  | 1112|  2.36k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.36k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.36k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1762|  2.36k|		if (asoc->numduptsns < SCTP_MAX_DUP_TSNS) {
  ------------------
  |  |  561|  2.36k|#define SCTP_MAX_DUP_TSNS	20
  ------------------
  |  Branch (1762:7): [True: 1.57k, False: 786]
  ------------------
 1763|       |			/* Record a dup for the next outbound sack */
 1764|  1.57k|			asoc->dup_tsns[asoc->numduptsns] = tsn;
 1765|  1.57k|			asoc->numduptsns++;
 1766|  1.57k|		}
 1767|  2.36k|		asoc->send_sack = 1;
 1768|  2.36k|		return (0);
 1769|  2.36k|	}
 1770|       |	/* Calculate the number of TSN's between the base and this TSN */
 1771|  10.7k|	SCTP_CALC_TSN_TO_GAP(gap, tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  10.7k|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  10.7k|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 9.53k, False: 1.19k]
  |  |  ------------------
  |  |  901|  9.53k|						gap = tsn - mapping_tsn; \
  |  |  902|  9.53k|					} else { \
  |  |  903|  1.19k|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|  1.19k|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|  1.19k|					} \
  |  |  905|  10.7k|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 10.7k]
  |  |  ------------------
  ------------------
 1772|  10.7k|	if (gap >= (SCTP_MAPPING_ARRAY << 3)) {
  ------------------
  |  |  506|  10.7k|#define SCTP_MAPPING_ARRAY	512
  ------------------
  |  Branch (1772:6): [True: 1.54k, False: 9.18k]
  ------------------
 1773|       |		/* Can't hold the bit in the mapping at max array, toss it */
 1774|  1.54k|		return (0);
 1775|  1.54k|	}
 1776|  9.18k|	if (gap >= (uint32_t) (asoc->mapping_array_size << 3)) {
  ------------------
  |  Branch (1776:6): [True: 2.04k, False: 7.14k]
  ------------------
 1777|  2.04k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  2.04k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.04k|	do {                         \
  |  |  |  |  113|  2.04k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.04k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.04k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.04k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1778|  2.04k|		if (sctp_expand_mapping_array(asoc, gap)) {
  ------------------
  |  Branch (1778:7): [True: 0, False: 2.04k]
  ------------------
 1779|       |			/* Can't expand, drop it */
 1780|      0|			return (0);
 1781|      0|		}
 1782|  2.04k|	}
 1783|  9.18k|	if (SCTP_TSN_GT(tsn, *high_tsn)) {
  ------------------
  |  |  889|  9.18k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  9.18k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 5.26k, False: 3.92k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 5.26k]
  |  |  |  |  ------------------
  |  |  |  |  884|  9.18k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.25k, False: 5.93k]
  |  |  |  |  |  Branch (884:43): [True: 3.25k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1784|  3.25k|		*high_tsn = tsn;
 1785|  3.25k|	}
 1786|       |	/* See if we have received this one already */
 1787|  9.18k|	if (SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap) ||
  ------------------
  |  |  896|  18.3k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  |  |  ------------------
  |  |  |  Branch (896:40): [True: 1.23k, False: 7.95k]
  |  |  ------------------
  ------------------
 1788|  7.95k|	    SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, gap)) {
  ------------------
  |  |  896|  7.95k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  |  |  ------------------
  |  |  |  Branch (896:40): [True: 1.14k, False: 6.81k]
  |  |  ------------------
  ------------------
 1789|  2.37k|		SCTP_STAT_INCR(sctps_recvdupdata);
  ------------------
  |  | 1112|  2.37k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.37k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.37k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1790|  2.37k|		if (asoc->numduptsns < SCTP_MAX_DUP_TSNS) {
  ------------------
  |  |  561|  2.37k|#define SCTP_MAX_DUP_TSNS	20
  ------------------
  |  Branch (1790:7): [True: 948, False: 1.42k]
  ------------------
 1791|       |			/* Record a dup for the next outbound sack */
 1792|    948|			asoc->dup_tsns[asoc->numduptsns] = tsn;
 1793|    948|			asoc->numduptsns++;
 1794|    948|		}
 1795|  2.37k|		asoc->send_sack = 1;
 1796|  2.37k|		return (0);
 1797|  2.37k|	}
 1798|       |	/*
 1799|       |	 * Check to see about the GONE flag, duplicates would cause a sack
 1800|       |	 * to be sent up above
 1801|       |	 */
 1802|  6.81k|	if (((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  6.81k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (1802:7): [True: 0, False: 6.81k]
  ------------------
 1803|  6.81k|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  6.81k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1803:7): [True: 0, False: 6.81k]
  ------------------
 1804|  6.81k|	     (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET))) {
  ------------------
  |  |  464|  6.81k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (1804:7): [True: 0, False: 6.81k]
  ------------------
 1805|       |		/*
 1806|       |		 * wait a minute, this guy is gone, there is no longer a
 1807|       |		 * receiver. Send peer an ABORT!
 1808|       |		 */
 1809|      0|		op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
  ------------------
  |  |  369|      0|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
 1810|      0|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1811|      0|		*abort_flag = 1;
 1812|      0|		return (0);
 1813|      0|	}
 1814|       |	/*
 1815|       |	 * Now before going further we see if there is room. If NOT then we
 1816|       |	 * MAY let one through only IF this TSN is the one we are waiting
 1817|       |	 * for on a partial delivery API.
 1818|       |	 */
 1819|       |
 1820|       |	/* Is the stream valid? */
 1821|  6.81k|	if (sid >= asoc->streamincnt) {
  ------------------
  |  Branch (1821:6): [True: 322, False: 6.49k]
  ------------------
 1822|    322|		struct sctp_error_invalid_stream *cause;
 1823|       |
 1824|    322|		op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_error_invalid_stream),
 1825|    322|		                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    322|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    322|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 1826|    322|		if (op_err != NULL) {
  ------------------
  |  Branch (1826:7): [True: 322, False: 0]
  ------------------
 1827|       |			/* add some space up front so prepend will work well */
 1828|    322|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|    322|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    322|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1829|    322|			cause = mtod(op_err, struct sctp_error_invalid_stream *);
  ------------------
  |  |   96|    322|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    322|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1830|       |			/*
 1831|       |			 * Error causes are just param's and this one has
 1832|       |			 * two back to back phdr, one with the error type
 1833|       |			 * and size, the other with the streamid and a rsvd
 1834|       |			 */
 1835|    322|			SCTP_BUF_LEN(op_err) = sizeof(struct sctp_error_invalid_stream);
  ------------------
  |  |  801|    322|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    322|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1836|    322|			cause->cause.code = htons(SCTP_CAUSE_INVALID_STREAM);
 1837|    322|			cause->cause.length = htons(sizeof(struct sctp_error_invalid_stream));
 1838|    322|			cause->stream_id = htons(sid);
 1839|    322|			cause->reserved = htons(0);
 1840|    322|			sctp_queue_op_err(stcb, op_err);
 1841|    322|		}
 1842|    322|		SCTP_STAT_INCR(sctps_badsid);
  ------------------
  |  | 1112|    322|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    322|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    322|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1843|    322|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    322|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    322|	do {                         \
  |  |  |  |  113|    322|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 322]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    322|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 322]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1844|    322|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|    322|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 1845|    322|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|    322|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    322|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 96, False: 226]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 96]
  |  |  |  |  ------------------
  |  |  |  |  884|    322|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 226, False: 96]
  |  |  |  |  |  Branch (884:43): [True: 226, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1846|    226|			asoc->highest_tsn_inside_nr_map = tsn;
 1847|    226|		}
 1848|    322|		if (tsn == (asoc->cumulative_tsn + 1)) {
  ------------------
  |  Branch (1848:7): [True: 23, False: 299]
  ------------------
 1849|       |			/* Update cum-ack */
 1850|     23|			asoc->cumulative_tsn = tsn;
 1851|     23|		}
 1852|    322|		return (0);
 1853|    322|	}
 1854|       |	/*
 1855|       |	 * If its a fragmented message, lets see if we can
 1856|       |	 * find the control on the reassembly queues.
 1857|       |	 */
 1858|  6.49k|	if ((chk_type == SCTP_IDATA) &&
  ------------------
  |  |  474|  6.49k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (1858:6): [True: 2.06k, False: 4.43k]
  ------------------
 1859|  2.06k|	    ((chk_flags & SCTP_DATA_FIRST_FRAG) == 0) &&
  ------------------
  |  |  513|  2.06k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1859:6): [True: 1.02k, False: 1.03k]
  ------------------
 1860|  1.02k|	    (fsn == 0)) {
  ------------------
  |  Branch (1860:6): [True: 1, False: 1.02k]
  ------------------
 1861|       |		/*
 1862|       |		 *  The first *must* be fsn 0, and other
 1863|       |		 *  (middle/end) pieces can *not* be fsn 0.
 1864|       |		 * XXX: This can happen in case of a wrap around.
 1865|       |		 *      Ignore is for now.
 1866|       |		 */
 1867|      1|		SCTP_SNPRINTF(msg, sizeof(msg), "FSN zero for MID=%8.8x, but flags=%2.2x", mid, chk_flags);
  ------------------
  |  |  820|      1|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 1]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1868|      1|		goto err_out;
 1869|      1|	}
 1870|  6.49k|	control = sctp_find_reasm_entry(&asoc->strmin[sid], mid, ordered, asoc->idata_supported);
 1871|  6.49k|	SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags:0x%x look for control on queues %p\n",
 1872|  6.49k|		chk_flags, control);
 1873|  6.49k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.49k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.49k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (1873:6): [True: 4.96k, False: 1.52k]
  ------------------
 1874|       |		/* See if we can find the re-assembly entity */
 1875|  4.96k|		if (control != NULL) {
  ------------------
  |  Branch (1875:7): [True: 2.17k, False: 2.79k]
  ------------------
 1876|       |			/* We found something, does it belong? */
 1877|  2.17k|			if (ordered && (mid != control->mid)) {
  ------------------
  |  Branch (1877:8): [True: 498, False: 1.67k]
  |  Branch (1877:19): [True: 0, False: 498]
  ------------------
 1878|      0|				SCTP_SNPRINTF(msg, sizeof(msg), "Reassembly problem (MID=%8.8x)", mid);
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1879|      4|			err_out:
 1880|      4|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      4|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 1881|      4|				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_17;
  ------------------
  |  |  757|      4|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_17;
  ------------------
  |  |  785|      4|#define SCTP_LOC_17 0x00000011
  ------------------
 1882|      4|				sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      4|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1883|      4|				*abort_flag = 1;
 1884|      4|				return (0);
 1885|      0|			}
 1886|  2.17k|			if (ordered && ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED)) {
  ------------------
  |  |  515|    498|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (1886:8): [True: 498, False: 1.67k]
  |  Branch (1886:19): [True: 0, False: 498]
  ------------------
 1887|       |				/* We can't have a switched order with an unordered chunk */
 1888|      0|				SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1889|      0|				              "All fragments of a user message must be ordered or unordered (TSN=%8.8x)",
 1890|      0|				              tsn);
 1891|      0|				goto err_out;
 1892|      0|			}
 1893|  2.17k|			if (!ordered && (((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) == 0)) {
  ------------------
  |  |  515|  1.67k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (1893:8): [True: 1.67k, False: 498]
  |  Branch (1893:20): [True: 0, False: 1.67k]
  ------------------
 1894|       |				/* We can't have a switched unordered with a ordered chunk */
 1895|      0|				SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1896|      0|				             "All fragments of a user message must be ordered or unordered (TSN=%8.8x)",
 1897|      0|				             tsn);
 1898|      0|				goto err_out;
 1899|      0|			}
 1900|  2.17k|		}
 1901|  4.96k|	} else {
 1902|       |		/* Its a complete segment. Lets validate we
 1903|       |		 * don't have a re-assembly going on with
 1904|       |		 * the same Stream/Seq (for ordered) or in
 1905|       |		 * the same Stream for unordered.
 1906|       |		 */
 1907|  1.52k|		if (control != NULL) {
  ------------------
  |  Branch (1907:7): [True: 87, False: 1.43k]
  ------------------
 1908|     87|			if (ordered || asoc->idata_supported) {
  ------------------
  |  Branch (1908:8): [True: 1, False: 86]
  |  Branch (1908:19): [True: 1, False: 85]
  ------------------
 1909|      2|				SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags: 0x%x dup detected on MID: %u\n",
 1910|      2|					chk_flags, mid);
 1911|      2|				SCTP_SNPRINTF(msg, sizeof(msg), "Duplicate MID=%8.8x detected.", mid);
  ------------------
  |  |  820|      2|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 2]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1912|      2|				goto err_out;
 1913|     85|			} else {
 1914|     85|				if ((control->first_frag_seen) &&
  ------------------
  |  Branch (1914:9): [True: 47, False: 38]
  ------------------
 1915|     47|				    (tsn == control->fsn_included + 1) &&
  ------------------
  |  Branch (1915:9): [True: 2, False: 45]
  ------------------
 1916|      2|				    (control->end_added == 0)) {
  ------------------
  |  Branch (1916:9): [True: 1, False: 1]
  ------------------
 1917|      1|					SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      1|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 1]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1918|      1|					              "Illegal message sequence, missing end for MID: %8.8x",
 1919|      1|					              control->fsn_included);
 1920|      1|					goto err_out;
 1921|     84|				} else {
 1922|     84|					control = NULL;
 1923|     84|				}
 1924|     85|			}
 1925|     87|		}
 1926|  1.52k|	}
 1927|       |	/* now do the tests */
 1928|  6.48k|	if (((asoc->cnt_on_all_streams +
  ------------------
  |  Branch (1928:6): [True: 0, False: 6.48k]
  ------------------
 1929|  6.48k|	      asoc->cnt_on_reasm_queue +
 1930|  6.48k|	      asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) ||
  ------------------
  |  |  590|  6.48k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 1931|  6.48k|	    (((int)asoc->my_rwnd) <= 0)) {
  ------------------
  |  Branch (1931:6): [True: 96, False: 6.39k]
  ------------------
 1932|       |		/*
 1933|       |		 * When we have NO room in the rwnd we check to make sure
 1934|       |		 * the reader is doing its job...
 1935|       |		 */
 1936|     96|		if (SCTP_SBAVAIL(&stcb->sctp_socket->so_rcv) > 0) {
  ------------------
  |  |  968|     96|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (1936:7): [True: 96, False: 0]
  ------------------
 1937|       |			/* some to read, wake-up */
 1938|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1939|       |			struct socket *so;
 1940|       |
 1941|       |			so = SCTP_INP_SO(stcb->sctp_ep);
 1942|       |			atomic_add_int(&stcb->asoc.refcnt, 1);
 1943|       |			SCTP_TCB_UNLOCK(stcb);
 1944|       |			SCTP_SOCKET_LOCK(so, 1);
 1945|       |			SCTP_TCB_LOCK(stcb);
 1946|       |			atomic_subtract_int(&stcb->asoc.refcnt, 1);
 1947|       |			if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
 1948|       |				/* assoc was freed while we were unlocked */
 1949|       |				SCTP_SOCKET_UNLOCK(so, 1);
 1950|       |				return (0);
 1951|       |			}
 1952|       |#endif
 1953|     96|			sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket);
  ------------------
  |  | 1032|     96|#define sctp_sorwakeup(inp, so) \
  |  | 1033|     96|do { \
  |  | 1034|     96|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|    192|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 96]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|     96|	} else { \
  |  | 1037|     96|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|     96|#define	sorwakeup(so) do {						\
  |  |  |  |  520|     96|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|     96|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|     96|	do {                         \
  |  |  |  |  |  |  |  |  113|     96|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 96]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|     96|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 96]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|     96|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|     96|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|     96|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|     96|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|     96|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|     96|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 96]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|     96|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 96]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|     96|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|     96|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|     96|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|     96|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|     96|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 96, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|     96|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|     96|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|     96|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|     96|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|     96|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|     96|	else								\
  |  |  |  |  |  |  516|     96|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  517|     96|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 96]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|     96|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 96]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|     96|	} \
  |  | 1039|     96|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 96]
  |  |  ------------------
  ------------------
 1954|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1955|       |			SCTP_SOCKET_UNLOCK(so, 1);
 1956|       |#endif
 1957|     96|		}
 1958|       |		/* now is it in the mapping array of what we have accepted? */
 1959|     96|		if (chk_type == SCTP_DATA) {
  ------------------
  |  |  454|     96|#define SCTP_DATA		0x00
  ------------------
  |  Branch (1959:7): [True: 94, False: 2]
  ------------------
 1960|     94|			if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map) &&
  ------------------
  |  |  889|     94|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    188|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 47, False: 47]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 47]
  |  |  |  |  ------------------
  |  |  |  |  884|    188|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 47, False: 47]
  |  |  |  |  |  Branch (884:43): [True: 47, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1961|     47|			    SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|     47|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|     47|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 35, False: 12]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 35]
  |  |  |  |  ------------------
  |  |  |  |  884|     47|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 12, False: 35]
  |  |  |  |  |  Branch (884:43): [True: 12, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1962|       |				/* Nope not in the valid range dump it */
 1963|     14|			dump_packet:
 1964|     14|				sctp_set_rwnd(stcb, asoc);
 1965|     14|				if ((asoc->cnt_on_all_streams +
  ------------------
  |  Branch (1965:9): [True: 0, False: 14]
  ------------------
 1966|     14|				     asoc->cnt_on_reasm_queue +
 1967|     14|				     asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) {
  ------------------
  |  |  590|     14|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 1968|      0|					SCTP_STAT_INCR(sctps_datadropchklmt);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1969|     14|				} else {
 1970|     14|					SCTP_STAT_INCR(sctps_datadroprwnd);
  ------------------
  |  | 1112|     14|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     14|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     14|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1971|     14|				}
 1972|     14|				*break_flag = 1;
 1973|     14|				return (0);
 1974|     12|			}
 1975|     94|		} else {
 1976|      2|			if (control == NULL) {
  ------------------
  |  Branch (1976:8): [True: 2, False: 0]
  ------------------
 1977|      2|				goto dump_packet;
 1978|      2|			}
 1979|      0|			if (SCTP_TSN_GT(fsn, control->top_fsn)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1980|      0|				goto dump_packet;
 1981|      0|			}
 1982|      0|		}
 1983|     96|	}
 1984|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 1985|       |	SCTP_TCB_LOCK_ASSERT(stcb);
 1986|       |	if (asoc->tsn_in_at >= SCTP_TSN_LOG_SIZE) {
 1987|       |		asoc->tsn_in_at = 0;
 1988|       |		asoc->tsn_in_wrapped = 1;
 1989|       |	}
 1990|       |	asoc->in_tsnlog[asoc->tsn_in_at].tsn = tsn;
 1991|       |	asoc->in_tsnlog[asoc->tsn_in_at].strm = sid;
 1992|       |	asoc->in_tsnlog[asoc->tsn_in_at].seq = mid;
 1993|       |	asoc->in_tsnlog[asoc->tsn_in_at].sz = chk_length;
 1994|       |	asoc->in_tsnlog[asoc->tsn_in_at].flgs = chunk_flags;
 1995|       |	asoc->in_tsnlog[asoc->tsn_in_at].stcb = (void *)stcb;
 1996|       |	asoc->in_tsnlog[asoc->tsn_in_at].in_pos = asoc->tsn_in_at;
 1997|       |	asoc->in_tsnlog[asoc->tsn_in_at].in_out = 1;
 1998|       |	asoc->tsn_in_at++;
 1999|       |#endif
 2000|       |	/*
 2001|       |	 * Before we continue lets validate that we are not being fooled by
 2002|       |	 * an evil attacker. We can only have Nk chunks based on our TSN
 2003|       |	 * spread allowed by the mapping array N * 8 bits, so there is no
 2004|       |	 * way our stream sequence numbers could have wrapped. We of course
 2005|       |	 * only validate the FIRST fragment so the bit must be set.
 2006|       |	 */
 2007|  6.47k|	if ((chk_flags & SCTP_DATA_FIRST_FRAG) &&
  ------------------
  |  |  513|  6.47k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (2007:6): [True: 3.80k, False: 2.67k]
  ------------------
 2008|  3.80k|	    (TAILQ_EMPTY(&asoc->resetHead)) &&
  ------------------
  |  Branch (2008:6): [True: 3.01k, False: 790]
  ------------------
 2009|  3.01k|	    (chk_flags & SCTP_DATA_UNORDERED) == 0 &&
  ------------------
  |  |  515|  3.01k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (2009:6): [True: 1.09k, False: 1.91k]
  ------------------
 2010|  1.09k|	    SCTP_MID_GE(asoc->idata_supported, asoc->strmin[sid].last_mid_delivered, mid)) {
  ------------------
  |  |  892|  1.09k|#define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  885|    579|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.15k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 79, False: 500]
  |  |  |  |  |  |  |  Branch (883:43): [True: 4, False: 75]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.15k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 498, False: 77]
  |  |  |  |  |  |  |  Branch (884:43): [True: 35, False: 463]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 2, False: 538]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  882|    520|#define SCTP_UINT16_GE(a, b) (SCTP_UINT16_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  880|  1.04k|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (880:32): [True: 52, False: 468]
  |  |  |  |  |  |  |  Branch (880:43): [True: 5, False: 47]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  881|  1.04k|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (881:32): [True: 467, False: 48]
  |  |  |  |  |  |  |  Branch (881:43): [True: 12, False: 455]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (882:55): [True: 1, False: 502]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (892:30): [True: 59, False: 1.04k]
  |  |  |  Branch (892:31): [True: 579, False: 520]
  |  |  ------------------
  ------------------
 2011|       |		/* The incoming sseq is behind where we last delivered? */
 2012|     59|		SCTPDBG(SCTP_DEBUG_INDATA1, "EVIL/Broken-Dup S-SEQ: %u delivered: %u from peer, Abort!\n",
 2013|     59|			mid, asoc->strmin[sid].last_mid_delivered);
 2014|       |
 2015|     59|		if (asoc->idata_supported) {
  ------------------
  |  Branch (2015:7): [True: 41, False: 18]
  ------------------
 2016|     41|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered MID=%8.8x, got TSN=%8.8x, SID=%4.4x, MID=%8.8x",
  ------------------
  |  |  820|     41|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 41]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2017|     41|			              asoc->strmin[sid].last_mid_delivered,
 2018|     41|			              tsn,
 2019|     41|			              sid,
 2020|     41|			              mid);
 2021|     41|		} else {
 2022|     18|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
  ------------------
  |  |  820|     18|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 18]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2023|     18|			              (uint16_t)asoc->strmin[sid].last_mid_delivered,
 2024|     18|			              tsn,
 2025|     18|			              sid,
 2026|     18|			              (uint16_t)mid);
 2027|     18|		}
 2028|     59|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     59|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2029|     59|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18;
  ------------------
  |  |  757|     59|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18;
  ------------------
  |  |  786|     59|#define SCTP_LOC_18 0x00000012
  ------------------
 2030|     59|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     59|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2031|     59|		*abort_flag = 1;
 2032|     59|		return (0);
 2033|     59|	}
 2034|  6.41k|	if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  6.41k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2034:6): [True: 2.01k, False: 4.39k]
  ------------------
 2035|  2.01k|		the_len = (chk_length - sizeof(struct sctp_idata_chunk));
 2036|  4.39k|	} else {
 2037|  4.39k|		the_len = (chk_length - sizeof(struct sctp_data_chunk));
 2038|  4.39k|	}
 2039|  6.41k|	if (last_chunk == 0) {
  ------------------
  |  Branch (2039:6): [True: 6.23k, False: 177]
  ------------------
 2040|  6.23k|		if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  6.23k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2040:7): [True: 1.97k, False: 4.25k]
  ------------------
 2041|  1.97k|			dmbuf = SCTP_M_COPYM(*m,
  ------------------
  |  |  770|  1.97k|#define SCTP_M_COPYM	m_copym
  ------------------
 2042|  1.97k|					     (offset + sizeof(struct sctp_idata_chunk)),
 2043|  1.97k|					     the_len, M_NOWAIT);
  ------------------
  |  |   60|  1.97k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2044|  4.25k|		} else {
 2045|  4.25k|			dmbuf = SCTP_M_COPYM(*m,
  ------------------
  |  |  770|  4.25k|#define SCTP_M_COPYM	m_copym
  ------------------
 2046|  4.25k|					     (offset + sizeof(struct sctp_data_chunk)),
 2047|  4.25k|					     the_len, M_NOWAIT);
  ------------------
  |  |   60|  4.25k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2048|  4.25k|		}
 2049|       |#ifdef SCTP_MBUF_LOGGING
 2050|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 2051|       |			sctp_log_mbc(dmbuf, SCTP_MBUF_ICOPY);
 2052|       |		}
 2053|       |#endif
 2054|  6.23k|	} else {
 2055|       |		/* We can steal the last chunk */
 2056|    177|		int l_len;
 2057|    177|		dmbuf = *m;
 2058|       |		/* lop off the top part */
 2059|    177|		if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|    177|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2059:7): [True: 38, False: 139]
  ------------------
 2060|     38|			m_adj(dmbuf, (offset + sizeof(struct sctp_idata_chunk)));
 2061|    139|		} else {
 2062|    139|			m_adj(dmbuf, (offset + sizeof(struct sctp_data_chunk)));
 2063|    139|		}
 2064|    177|		if (SCTP_BUF_NEXT(dmbuf) == NULL) {
  ------------------
  |  |  802|    177|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    177|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2064:7): [True: 63, False: 114]
  ------------------
 2065|     63|			l_len = SCTP_BUF_LEN(dmbuf);
  ------------------
  |  |  801|     63|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     63|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2066|    114|		} else {
 2067|       |			/* need to count up the size hopefully
 2068|       |			 * does not hit this to often :-0
 2069|       |			 */
 2070|    114|			struct mbuf *lat;
 2071|       |
 2072|    114|			l_len = 0;
 2073|  1.06k|			for (lat = dmbuf; lat; lat = SCTP_BUF_NEXT(lat)) {
  ------------------
  |  |  802|    949|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    949|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2073:22): [True: 949, False: 114]
  ------------------
 2074|    949|				l_len += SCTP_BUF_LEN(lat);
  ------------------
  |  |  801|    949|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    949|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2075|    949|			}
 2076|    114|		}
 2077|    177|		if (l_len > the_len) {
  ------------------
  |  Branch (2077:7): [True: 136, False: 41]
  ------------------
 2078|       |			/* Trim the end round bytes off  too */
 2079|    136|			m_adj(dmbuf, -(l_len - the_len));
 2080|    136|		}
 2081|    177|	}
 2082|  6.41k|	if (dmbuf == NULL) {
  ------------------
  |  Branch (2082:6): [True: 0, False: 6.41k]
  ------------------
 2083|      0|		SCTP_STAT_INCR(sctps_nomem);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2084|      0|		return (0);
 2085|      0|	}
 2086|       |	/*
 2087|       |	 * Now no matter what, we need a control, get one
 2088|       |	 * if we don't have one (we may have gotten it
 2089|       |	 * above when we found the message was fragmented
 2090|       |	 */
 2091|  6.41k|	if (control == NULL) {
  ------------------
  |  Branch (2091:6): [True: 4.24k, False: 2.17k]
  ------------------
 2092|  4.24k|		sctp_alloc_a_readq(stcb, control);
  ------------------
  |  |  118|  4.24k|#define sctp_alloc_a_readq(_stcb, _readq) { \
  |  |  119|  4.24k|	(_readq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_readq), struct sctp_queued_to_read); \
  |  |  ------------------
  |  |  |  |  703|  4.24k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  120|  4.24k|	if ((_readq)) { \
  |  |  ------------------
  |  |  |  Branch (120:6): [True: 4.24k, False: 0]
  |  |  ------------------
  |  |  121|  4.24k|	     SCTP_INCR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  682|  4.24k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  4.24k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  122|  4.24k|	} \
  |  |  123|  4.24k|}
  ------------------
 2093|  4.24k|		sctp_build_readq_entry_mac(control, stcb, asoc->context, net, tsn,
  ------------------
  |  |   48|  4.24k|#define sctp_build_readq_entry_mac(_ctl, in_it, context, net, tsn, ppid, sid, flags, dm, tfsn, mid) do { \
  |  |   49|  4.24k|	if (_ctl) { \
  |  |  ------------------
  |  |  |  Branch (49:6): [True: 4.24k, False: 0]
  |  |  ------------------
  |  |   50|  4.24k|		atomic_add_int(&((net)->ref_count), 1); \
  |  |  ------------------
  |  |  |  |   94|  4.24k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |   51|  4.24k|		memset(_ctl, 0, sizeof(struct sctp_queued_to_read)); \
  |  |   52|  4.24k|		(_ctl)->sinfo_stream = sid; \
  |  |   53|  4.24k|		TAILQ_INIT(&_ctl->reasm); \
  |  |   54|  4.24k|		(_ctl)->top_fsn = tfsn; \
  |  |   55|  4.24k|		(_ctl)->mid = mid; \
  |  |   56|  4.24k|		(_ctl)->sinfo_flags = (flags << 8); \
  |  |   57|  4.24k|		(_ctl)->sinfo_ppid = ppid; \
  |  |   58|  4.24k|		(_ctl)->sinfo_context = context; \
  |  |   59|  4.24k|		(_ctl)->fsn_included = 0xffffffff; \
  |  |   60|  4.24k|		(_ctl)->sinfo_tsn = tsn; \
  |  |   61|  4.24k|		(_ctl)->sinfo_cumtsn = tsn; \
  |  |   62|  4.24k|		(_ctl)->sinfo_assoc_id = sctp_get_associd((in_it)); \
  |  |  ------------------
  |  |  |  |   60|  4.24k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  |  |  ------------------
  |  |   63|  4.24k|		(_ctl)->whoFrom = net; \
  |  |   64|  4.24k|		(_ctl)->data = dm; \
  |  |   65|  4.24k|		(_ctl)->stcb = (in_it); \
  |  |   66|  4.24k|		(_ctl)->port_from = (in_it)->rport; \
  |  |   67|  4.24k|		if ((in_it)->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { \
  |  |  ------------------
  |  |  |  |  465|  4.24k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  |  |  ------------------
  |  |  |  Branch (67:7): [True: 0, False: 4.24k]
  |  |  ------------------
  |  |   68|      0|			(_ctl)->do_not_ref_stcb = 1; \
  |  |   69|      0|		}\
  |  |   70|  4.24k|	} \
  |  |   71|  4.24k|} while (0)
  |  |  ------------------
  |  |  |  Branch (71:10): [Folded, False: 4.24k]
  |  |  ------------------
  ------------------
  |  Branch (2093:3): [Folded, False: 4.24k]
  ------------------
 2094|  4.24k|					   ppid,
 2095|  4.24k|					   sid,
 2096|  4.24k|					   chk_flags,
 2097|  4.24k|					   NULL, fsn, mid);
 2098|  4.24k|		if (control == NULL) {
  ------------------
  |  Branch (2098:7): [True: 0, False: 4.24k]
  ------------------
 2099|      0|			SCTP_STAT_INCR(sctps_nomem);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2100|      0|			return (0);
 2101|      0|		}
 2102|  4.24k|		if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  4.24k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              		if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  4.24k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2102:7): [True: 1.48k, False: 2.76k]
  ------------------
 2103|  1.48k|			struct mbuf *mm;
 2104|       |
 2105|  1.48k|			control->data = dmbuf;
 2106|  1.48k|			control->tail_mbuf = NULL;
 2107|  3.48k|			for (mm = control->data; mm; mm = mm->m_next) {
  ------------------
  |  |  217|  2.00k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (2107:29): [True: 2.00k, False: 1.48k]
  ------------------
 2108|  2.00k|				control->length += SCTP_BUF_LEN(mm);
  ------------------
  |  |  801|  2.00k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.00k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2109|  2.00k|				if (SCTP_BUF_NEXT(mm) == NULL) {
  ------------------
  |  |  802|  2.00k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.00k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2109:9): [True: 1.48k, False: 521]
  ------------------
 2110|  1.48k|					control->tail_mbuf = mm;
 2111|  1.48k|				}
 2112|  2.00k|			}
 2113|  1.48k|			control->end_added = 1;
 2114|  1.48k|			control->last_frag_seen = 1;
 2115|  1.48k|			control->first_frag_seen = 1;
 2116|  1.48k|			control->fsn_included = fsn;
 2117|  1.48k|			control->top_fsn = fsn;
 2118|  1.48k|		}
 2119|  4.24k|		created_control = 1;
 2120|  4.24k|	}
 2121|  6.41k|	SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags: 0x%x ordered: %d MID: %u control: %p\n",
 2122|  6.41k|		chk_flags, ordered, mid, control);
 2123|  6.41k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG &&
  ------------------
  |  |  514|  6.41k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG &&
  ------------------
  |  |  514|  12.8k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2123:6): [True: 1.48k, False: 4.93k]
  ------------------
 2124|  6.41k|	    TAILQ_EMPTY(&asoc->resetHead) &&
  ------------------
  |  Branch (2124:6): [True: 767, False: 713]
  ------------------
 2125|    767|	    ((ordered == 0) ||
  ------------------
  |  Branch (2125:7): [True: 204, False: 563]
  ------------------
 2126|    563|	     (SCTP_MID_EQ(asoc->idata_supported, asoc->strmin[sid].last_mid_delivered + 1, mid) &&
  ------------------
  |  |  893|  1.12k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 52, False: 511]
  |  |  |  Branch (893:31): [True: 228, False: 335]
  |  |  ------------------
  ------------------
 2127|    563|	      TAILQ_EMPTY(&asoc->strmin[sid].inqueue)))) {
  ------------------
  |  Branch (2127:8): [True: 28, False: 24]
  ------------------
 2128|       |		/* Candidate for express delivery */
 2129|       |		/*
 2130|       |		 * Its not fragmented, No PD-API is up, Nothing in the
 2131|       |		 * delivery queue, Its un-ordered OR ordered and the next to
 2132|       |		 * deliver AND nothing else is stuck on the stream queue,
 2133|       |		 * And there is room for it in the socket buffer. Lets just
 2134|       |		 * stuff it up the buffer....
 2135|       |		 */
 2136|    232|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|    232|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 2137|    232|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|    232|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    232|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 103, False: 129]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 103]
  |  |  |  |  ------------------
  |  |  |  |  884|    232|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 129, False: 103]
  |  |  |  |  |  Branch (884:43): [True: 129, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2138|    129|			asoc->highest_tsn_inside_nr_map = tsn;
 2139|    129|		}
 2140|    232|		SCTPDBG(SCTP_DEBUG_XXX, "Injecting control: %p to be read (MID: %u)\n",
 2141|    232|			control, mid);
 2142|       |
 2143|    232|		sctp_add_to_readq(stcb->sctp_ep, stcb,
 2144|    232|		                  control, &stcb->sctp_socket->so_rcv,
 2145|    232|		                  1, SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   41|    232|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              		                  1, SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    232|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2146|       |
 2147|    232|		if ((chk_flags & SCTP_DATA_UNORDERED) == 0) {
  ------------------
  |  |  515|    232|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (2147:7): [True: 28, False: 204]
  ------------------
 2148|       |			/* for ordered, bump what we delivered */
 2149|     28|			asoc->strmin[sid].last_mid_delivered++;
 2150|     28|		}
 2151|    232|		SCTP_STAT_INCR(sctps_recvexpress);
  ------------------
  |  | 1112|    232|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    232|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    232|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2152|    232|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    232|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    232|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (2152:7): [True: 0, False: 232]
  ------------------
 2153|      0|			sctp_log_strm_del_alt(stcb, tsn, mid, sid,
 2154|      0|					      SCTP_STR_LOG_FROM_EXPRS_DEL);
  ------------------
  |  |  121|      0|#define SCTP_STR_LOG_FROM_EXPRS_DEL 16
  ------------------
 2155|      0|		}
 2156|    232|		control = NULL;
 2157|    232|		goto finish_express_del;
 2158|    232|	}
 2159|       |
 2160|       |	/* Now will we need a chunk too? */
 2161|  6.18k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.18k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.18k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2161:6): [True: 4.93k, False: 1.24k]
  ------------------
 2162|  4.93k|		sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  4.93k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  4.93k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  2.87k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  2.87k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  2.87k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 2.87k, False: 0]
  |  |  ------------------
  |  |  173|  2.87k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  2.87k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.87k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  2.87k|			(_chk)->whoTo = NULL; \
  |  |  175|  2.87k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  2.87k|		} \
  |  |  177|  2.87k|	} else { \
  |  |  178|  2.06k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.06k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.06k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.06k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.06k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.06k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.06k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.06k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.06k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.06k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.06k|	} \
  |  |  185|  4.93k|}
  ------------------
  |  Branch (2162:3): [True: 188, False: 1.87k]
  |  Branch (2162:3): [Folded, False: 2.06k]
  |  Branch (2162:3): [True: 2.87k, False: 2.06k]
  ------------------
 2163|  4.93k|		if (chk == NULL) {
  ------------------
  |  Branch (2163:7): [True: 0, False: 4.93k]
  ------------------
 2164|       |			/* No memory so we drop the chunk */
 2165|      0|			SCTP_STAT_INCR(sctps_nomem);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2166|      0|			if (last_chunk == 0) {
  ------------------
  |  Branch (2166:8): [True: 0, False: 0]
  ------------------
 2167|       |				/* we copied it, free the copy */
 2168|      0|				sctp_m_freem(dmbuf);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 2169|      0|			}
 2170|      0|			return (0);
 2171|      0|		}
 2172|  4.93k|		chk->rec.data.tsn = tsn;
 2173|  4.93k|		chk->no_fr_allowed = 0;
 2174|  4.93k|		chk->rec.data.fsn = fsn;
 2175|  4.93k|		chk->rec.data.mid = mid;
 2176|  4.93k|		chk->rec.data.sid = sid;
 2177|  4.93k|		chk->rec.data.ppid = ppid;
 2178|  4.93k|		chk->rec.data.context = stcb->asoc.context;
 2179|  4.93k|		chk->rec.data.doing_fast_retransmit = 0;
 2180|  4.93k|		chk->rec.data.rcv_flags = chk_flags;
 2181|  4.93k|		chk->asoc = asoc;
 2182|  4.93k|		chk->send_size = the_len;
 2183|  4.93k|		chk->whoTo = net;
 2184|  4.93k|		SCTPDBG(SCTP_DEBUG_XXX, "Building ck: %p for control: %p to be read (MID: %u)\n",
 2185|  4.93k|			chk,
 2186|  4.93k|			control, mid);
 2187|  4.93k|		atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|  4.93k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2188|  4.93k|		chk->data = dmbuf;
 2189|  4.93k|	}
 2190|       |	/* Set the appropriate TSN mark */
 2191|  6.18k|	if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
  ------------------
  |  |  590|  6.18k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (2191:6): [True: 0, False: 6.18k]
  ------------------
 2192|      0|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|      0|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 2193|      0|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2194|      0|			asoc->highest_tsn_inside_nr_map = tsn;
 2195|      0|		}
 2196|  6.18k|	} else {
 2197|  6.18k|		SCTP_SET_TSN_PRESENT(asoc->mapping_array, gap);
  ------------------
  |  |  897|  6.18k|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 2198|  6.18k|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  6.18k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  6.18k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 2.79k, False: 3.39k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 2.79k]
  |  |  |  |  ------------------
  |  |  |  |  884|  6.18k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.39k, False: 2.79k]
  |  |  |  |  |  Branch (884:43): [True: 3.39k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2199|  3.39k|			asoc->highest_tsn_inside_map = tsn;
 2200|  3.39k|		}
 2201|  6.18k|	}
 2202|       |	/* Now is it complete (i.e. not fragmented)? */
 2203|  6.18k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.18k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.18k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2203:6): [True: 1.24k, False: 4.93k]
  ------------------
 2204|       |		/*
 2205|       |		 * Special check for when streams are resetting. We
 2206|       |		 * could be more smart about this and check the
 2207|       |		 * actual stream to see if it is not being reset..
 2208|       |		 * that way we would not create a HOLB when amongst
 2209|       |		 * streams being reset and those not being reset.
 2210|       |		 *
 2211|       |		 */
 2212|  1.24k|		if (((liste = TAILQ_FIRST(&asoc->resetHead)) != NULL) &&
  ------------------
  |  Branch (2212:7): [True: 713, False: 535]
  ------------------
 2213|    713|		    SCTP_TSN_GT(tsn, liste->tsn)) {
  ------------------
  |  |  889|    713|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    713|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 120, False: 593]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 120]
  |  |  |  |  ------------------
  |  |  |  |  884|    713|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 550, False: 163]
  |  |  |  |  |  Branch (884:43): [True: 368, False: 182]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2214|       |			/*
 2215|       |			 * yep its past where we need to reset... go
 2216|       |			 * ahead and queue it.
 2217|       |			 */
 2218|    368|			if (TAILQ_EMPTY(&asoc->pending_reply_queue)) {
  ------------------
  |  Branch (2218:8): [True: 145, False: 223]
  ------------------
 2219|       |				/* first one on */
 2220|    145|				TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2220:5): [Folded, False: 145]
  ------------------
 2221|    223|			} else {
 2222|    223|				struct sctp_queued_to_read *lcontrol, *nlcontrol;
 2223|    223|				unsigned char inserted = 0;
 2224|    785|				TAILQ_FOREACH_SAFE(lcontrol, &asoc->pending_reply_queue, next, nlcontrol) {
  ------------------
  |  | 1129|    223|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    882|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 785, False: 97]
  |  |  |  Branch (1130:24): [True: 785, False: 0]
  |  |  ------------------
  |  | 1131|    659|              (var) = (tvar))
  ------------------
 2225|    785|					if (SCTP_TSN_GT(control->sinfo_tsn, lcontrol->sinfo_tsn)) {
  ------------------
  |  |  889|    785|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    785|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 126, False: 659]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 126]
  |  |  |  |  ------------------
  |  |  |  |  884|    785|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 659, False: 126]
  |  |  |  |  |  Branch (884:43): [True: 659, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2226|    659|						continue;
 2227|    659|					} else {
 2228|       |						/* found it */
 2229|    126|						TAILQ_INSERT_BEFORE(lcontrol, control, next);
  ------------------
  |  Branch (2229:7): [Folded, False: 126]
  ------------------
 2230|    126|						inserted = 1;
 2231|    126|						break;
 2232|    126|					}
 2233|    785|				}
 2234|    223|				if (inserted == 0) {
  ------------------
  |  Branch (2234:9): [True: 97, False: 126]
  ------------------
 2235|       |					/*
 2236|       |					 * must be put at end, use
 2237|       |					 * prevP (all setup from
 2238|       |					 * loop) to setup nextP.
 2239|       |					 */
 2240|     97|					TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2240:6): [Folded, False: 97]
  ------------------
 2241|     97|				}
 2242|    223|			}
 2243|    368|			goto finish_express_del;
 2244|    368|		}
 2245|    880|		if (chk_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|    880|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (2245:7): [True: 114, False: 766]
  ------------------
 2246|       |			/* queue directly into socket buffer */
 2247|    114|			SCTPDBG(SCTP_DEBUG_XXX, "Unordered data to be read control: %p MID: %u\n",
 2248|    114|				control, mid);
 2249|    114|			sctp_mark_non_revokable(asoc, control->sinfo_tsn);
 2250|    114|			sctp_add_to_readq(stcb->sctp_ep, stcb,
 2251|    114|			                  control,
 2252|    114|			                  &stcb->sctp_socket->so_rcv, 1,
 2253|    114|			                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   41|    114|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              			                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    114|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2254|       |
 2255|    766|		} else {
 2256|    766|			SCTPDBG(SCTP_DEBUG_XXX, "Queue control: %p for reordering MID: %u\n", control,
 2257|    766|				mid);
 2258|    766|			sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check);
 2259|    766|			if (*abort_flag) {
  ------------------
  |  Branch (2259:8): [True: 48, False: 718]
  ------------------
 2260|     48|				if (last_chunk) {
  ------------------
  |  Branch (2260:9): [True: 5, False: 43]
  ------------------
 2261|      5|					*m = NULL;
 2262|      5|				}
 2263|     48|				return (0);
 2264|     48|			}
 2265|    766|		}
 2266|    832|		goto finish_express_del;
 2267|    880|	}
 2268|       |	/* If we reach here its a reassembly */
 2269|  4.93k|	need_reasm_check = 1;
 2270|  4.93k|	SCTPDBG(SCTP_DEBUG_XXX,
 2271|  4.93k|		"Queue data to stream for reasm control: %p MID: %u\n",
 2272|  4.93k|		control, mid);
 2273|  4.93k|	sctp_queue_data_for_reasm(stcb, asoc, control, chk, created_control, abort_flag, tsn);
 2274|  4.93k|	if (*abort_flag) {
  ------------------
  |  Branch (2274:6): [True: 277, False: 4.65k]
  ------------------
 2275|       |		/*
 2276|       |		 * the assoc is now gone and chk was put onto the
 2277|       |		 * reasm queue, which has all been freed.
 2278|       |		 */
 2279|    277|		if (last_chunk) {
  ------------------
  |  Branch (2279:7): [True: 13, False: 264]
  ------------------
 2280|     13|			*m = NULL;
 2281|     13|		}
 2282|    277|		return (0);
 2283|    277|	}
 2284|  6.08k|finish_express_del:
 2285|       |	/* Here we tidy up things */
 2286|  6.08k|	if (tsn == (asoc->cumulative_tsn + 1)) {
  ------------------
  |  Branch (2286:6): [True: 135, False: 5.95k]
  ------------------
 2287|       |		/* Update cum-ack */
 2288|    135|		asoc->cumulative_tsn = tsn;
 2289|    135|	}
 2290|  6.08k|	if (last_chunk) {
  ------------------
  |  Branch (2290:6): [True: 159, False: 5.93k]
  ------------------
 2291|    159|		*m = NULL;
 2292|    159|	}
 2293|  6.08k|	if (ordered) {
  ------------------
  |  Branch (2293:6): [True: 2.64k, False: 3.44k]
  ------------------
 2294|  2.64k|		SCTP_STAT_INCR_COUNTER64(sctps_inorderchunks);
  ------------------
  |  | 1128|  2.64k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  2.64k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.64k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.64k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2295|  3.44k|	} else {
 2296|  3.44k|		SCTP_STAT_INCR_COUNTER64(sctps_inunorderchunks);
  ------------------
  |  | 1128|  3.44k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  3.44k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  3.44k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  3.44k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2297|  3.44k|	}
 2298|  6.08k|	SCTP_STAT_INCR(sctps_recvdata);
  ------------------
  |  | 1112|  6.08k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  6.08k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  6.08k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2299|       |	/* Set it present please */
 2300|  6.08k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|  6.08k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|  6.08k|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (2300:6): [True: 0, False: 6.08k]
  ------------------
 2301|      0|		sctp_log_strm_del_alt(stcb, tsn, mid, sid, SCTP_STR_LOG_FROM_MARK_TSN);
  ------------------
  |  |  120|      0|#define SCTP_STR_LOG_FROM_MARK_TSN  15
  ------------------
 2302|      0|	}
 2303|  6.08k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|  6.08k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|  6.08k|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (2303:6): [True: 0, False: 6.08k]
  ------------------
 2304|      0|		sctp_log_map(asoc->mapping_array_base_tsn, asoc->cumulative_tsn,
 2305|      0|			     asoc->highest_tsn_inside_map, SCTP_MAP_PREPARE_SLIDE);
  ------------------
  |  |  126|      0|#define SCTP_MAP_PREPARE_SLIDE      21
  ------------------
 2306|      0|	}
 2307|  6.08k|	if (need_reasm_check) {
  ------------------
  |  Branch (2307:6): [True: 4.66k, False: 1.42k]
  ------------------
 2308|  4.66k|		(void)sctp_deliver_reasm_check(stcb, asoc, &asoc->strmin[sid], SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|  4.66k|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 2309|  4.66k|		need_reasm_check = 0;
 2310|  4.66k|	}
 2311|       |	/* check the special flag for stream resets */
 2312|  6.08k|	if (((liste = TAILQ_FIRST(&asoc->resetHead)) != NULL) &&
  ------------------
  |  Branch (2312:6): [True: 825, False: 5.26k]
  ------------------
 2313|    825|	    SCTP_TSN_GE(asoc->cumulative_tsn, liste->tsn)) {
  ------------------
  |  |  890|    825|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    825|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.65k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 408, False: 417]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 408]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.65k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 356, False: 469]
  |  |  |  |  |  |  |  Branch (884:43): [True: 117, False: 239]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 61, False: 647]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2314|       |		/*
 2315|       |		 * we have finished working through the backlogged TSN's now
 2316|       |		 * time to reset streams. 1: call reset function. 2: free
 2317|       |		 * pending_reply space 3: distribute any chunks in
 2318|       |		 * pending_reply_queue.
 2319|       |		 */
 2320|    178|		sctp_reset_in_stream(stcb, liste->number_entries, liste->list_of_streams);
 2321|    178|		TAILQ_REMOVE(&asoc->resetHead, liste, next_resp);
  ------------------
  |  Branch (2321:3): [True: 109, False: 69]
  |  Branch (2321:3): [Folded, False: 178]
  ------------------
 2322|    178|		sctp_send_deferred_reset_response(stcb, liste, SCTP_STREAM_RESET_RESULT_PERFORMED);
  ------------------
  |  |  479|    178|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 2323|    178|		SCTP_FREE(liste, SCTP_M_STRESET);
  ------------------
  |  |  679|    178|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    178|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 2324|       |		/*sa_ignore FREED_MEMORY*/
 2325|    178|		liste = TAILQ_FIRST(&asoc->resetHead);
 2326|    178|		if (TAILQ_EMPTY(&asoc->resetHead)) {
  ------------------
  |  Branch (2326:7): [True: 69, False: 109]
  ------------------
 2327|       |			/* All can be removed */
 2328|    119|			TAILQ_FOREACH_SAFE(control, &asoc->pending_reply_queue, next, ncontrol) {
  ------------------
  |  | 1129|     69|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    172|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 119, False: 53]
  |  |  |  Branch (1130:24): [True: 119, False: 0]
  |  |  ------------------
  |  | 1131|    103|              (var) = (tvar))
  ------------------
 2329|    119|				TAILQ_REMOVE(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2329:5): [True: 82, False: 37]
  |  Branch (2329:5): [Folded, False: 119]
  ------------------
 2330|    119|				strm = &asoc->strmin[control->sinfo_stream];
 2331|    119|				sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check);
 2332|    119|				if (*abort_flag) {
  ------------------
  |  Branch (2332:9): [True: 16, False: 103]
  ------------------
 2333|     16|					return (0);
 2334|     16|				}
 2335|    103|				if (need_reasm_check) {
  ------------------
  |  Branch (2335:9): [True: 2, False: 101]
  ------------------
 2336|      2|					(void)sctp_deliver_reasm_check(stcb, asoc, strm, SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|      2|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 2337|      2|					need_reasm_check = 0;
 2338|      2|				}
 2339|    103|			}
 2340|    109|		} else {
 2341|    128|			TAILQ_FOREACH_SAFE(control, &asoc->pending_reply_queue, next, ncontrol) {
  ------------------
  |  | 1129|    109|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    170|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 128, False: 42]
  |  |  |  Branch (1130:24): [True: 128, False: 0]
  |  |  ------------------
  |  | 1131|    109|              (var) = (tvar))
  ------------------
 2342|    128|				if (SCTP_TSN_GT(control->sinfo_tsn, liste->tsn)) {
  ------------------
  |  |  889|    128|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    128|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 34, False: 94]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 34]
  |  |  |  |  ------------------
  |  |  |  |  884|    128|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 94, False: 34]
  |  |  |  |  |  Branch (884:43): [True: 41, False: 53]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2343|     41|					break;
 2344|     41|				}
 2345|       |				/*
 2346|       |				 * if control->sinfo_tsn is <= liste->tsn we can
 2347|       |				 * process it which is the NOT of
 2348|       |				 * control->sinfo_tsn > liste->tsn
 2349|       |				 */
 2350|    128|				TAILQ_REMOVE(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2350:5): [True: 35, False: 52]
  |  Branch (2350:5): [Folded, False: 87]
  ------------------
 2351|     87|				strm = &asoc->strmin[control->sinfo_stream];
 2352|     87|				sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check);
 2353|     87|				if (*abort_flag) {
  ------------------
  |  Branch (2353:9): [True: 26, False: 61]
  ------------------
 2354|     26|					return (0);
 2355|     26|				}
 2356|     61|				if (need_reasm_check) {
  ------------------
  |  Branch (2356:9): [True: 1, False: 60]
  ------------------
 2357|      1|					(void)sctp_deliver_reasm_check(stcb, asoc, strm, SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|      1|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 2358|      1|					need_reasm_check = 0;
 2359|      1|				}
 2360|     61|			}
 2361|    109|		}
 2362|    178|	}
 2363|  6.04k|	return (1);
 2364|  6.08k|}
sctp_indata.c:sctp_find_reasm_entry:
 1661|  6.49k|{
 1662|  6.49k|	struct sctp_queued_to_read *control;
 1663|       |
 1664|  6.49k|	if (ordered) {
  ------------------
  |  Branch (1664:6): [True: 2.96k, False: 3.52k]
  ------------------
 1665|  2.96k|		TAILQ_FOREACH(control, &strm->inqueue, next_instrm) {
  ------------------
  |  Branch (1665:3): [True: 2.89k, False: 2.46k]
  ------------------
 1666|  2.89k|			if (SCTP_MID_EQ(idata_supported, control->mid, mid)) {
  ------------------
  |  |  893|  2.89k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 499, False: 2.39k]
  |  |  |  Branch (893:31): [True: 1.51k, False: 1.38k]
  |  |  ------------------
  ------------------
 1667|    499|				break;
 1668|    499|			}
 1669|  2.89k|		}
 1670|  3.52k|	} else {
 1671|  3.52k|		if (idata_supported) {
  ------------------
  |  Branch (1671:7): [True: 780, False: 2.74k]
  ------------------
 1672|  2.04k|			TAILQ_FOREACH(control, &strm->uno_inqueue, next_instrm) {
  ------------------
  |  Branch (1672:4): [True: 2.04k, False: 687]
  ------------------
 1673|  2.04k|				if (SCTP_MID_EQ(idata_supported, control->mid, mid)) {
  ------------------
  |  |  893|  2.04k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 93, False: 1.95k]
  |  |  |  Branch (893:31): [True: 2.04k, False: 0]
  |  |  ------------------
  ------------------
 1674|     93|					break;
 1675|     93|				}
 1676|  2.04k|			}
 1677|  2.74k|		} else {
 1678|       |			control = TAILQ_FIRST(&strm->uno_inqueue);
 1679|  2.74k|		}
 1680|  3.52k|	}
 1681|  6.49k|	return (control);
 1682|  6.49k|}
sctp_indata.c:sctp_mark_non_revokable:
  306|  2.31k|{
  307|  2.31k|	uint32_t gap, i;
  308|  2.31k|	int in_r, in_nr;
  309|       |
  310|  2.31k|	if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
  ------------------
  |  |  590|  2.31k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (310:6): [True: 0, False: 2.31k]
  ------------------
  311|      0|		return;
  312|      0|	}
  313|  2.31k|	if (SCTP_TSN_GE(asoc->cumulative_tsn, tsn)) {
  ------------------
  |  |  890|  2.31k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  2.31k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  4.63k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 2.30k, False: 12]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 2.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  4.63k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 3, False: 2.31k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 3, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 9, False: 2.30k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  314|       |		/*
  315|       |		 * This tsn is behind the cum ack and thus we don't
  316|       |		 * need to worry about it being moved from one to the other.
  317|       |		 */
  318|     12|		return;
  319|     12|	}
  320|  2.30k|	SCTP_CALC_TSN_TO_GAP(gap, tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  2.30k|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  2.30k|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 2.30k, False: 0]
  |  |  ------------------
  |  |  901|  2.30k|						gap = tsn - mapping_tsn; \
  |  |  902|  2.30k|					} else { \
  |  |  903|      0|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|      0|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|      0|					} \
  |  |  905|  2.30k|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 2.30k]
  |  |  ------------------
  ------------------
  321|  2.30k|	in_r = SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap);
  ------------------
  |  |  896|  2.30k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  322|  2.30k|	in_nr = SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  896|  2.30k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  323|  2.30k|	KASSERT(in_r || in_nr, ("%s: Things are really messed up now", __func__));
  ------------------
  |  |  112|  2.30k|	do {                         \
  |  |  113|  2.37k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.23k, False: 68]
  |  |  |  Branch (113:9): [True: 68, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  2.30k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.30k]
  |  |  ------------------
  ------------------
  324|  2.30k|	if (!in_nr) {
  ------------------
  |  Branch (324:6): [True: 2.23k, False: 68]
  ------------------
  325|  2.23k|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|  2.23k|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
  326|  2.23k|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  2.23k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  2.23k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 852, False: 1.38k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 852]
  |  |  |  |  ------------------
  |  |  |  |  884|  2.23k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.38k, False: 852]
  |  |  |  |  |  Branch (884:43): [True: 1.38k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  327|  1.38k|			asoc->highest_tsn_inside_nr_map = tsn;
  328|  1.38k|		}
  329|  2.23k|	}
  330|  2.30k|	if (in_r) {
  ------------------
  |  Branch (330:6): [True: 2.23k, False: 68]
  ------------------
  331|  2.23k|		SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
  ------------------
  |  |  898|  2.23k|#define SCTP_UNSET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] &= ((~(0x01 << ((gap & 0x07)))) & 0xff))
  ------------------
  332|  2.23k|		if (tsn == asoc->highest_tsn_inside_map) {
  ------------------
  |  Branch (332:7): [True: 1.18k, False: 1.05k]
  ------------------
  333|       |			/* We must back down to see what the new highest is. */
  334|  1.22M|			for (i = tsn - 1; SCTP_TSN_GE(i, asoc->mapping_array_base_tsn); i--) {
  335|  1.22M|				SCTP_CALC_TSN_TO_GAP(gap, i, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  1.22M|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  1.22M|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 1.22M, False: 0]
  |  |  ------------------
  |  |  901|  1.22M|						gap = tsn - mapping_tsn; \
  |  |  902|  1.22M|					} else { \
  |  |  903|      0|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|      0|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|      0|					} \
  |  |  905|  1.22M|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 1.22M]
  |  |  ------------------
  ------------------
  336|  1.22M|				if (SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap)) {
  ------------------
  |  |  896|  1.22M|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  |  |  ------------------
  |  |  |  Branch (896:40): [True: 218, False: 1.22M]
  |  |  ------------------
  ------------------
  337|    218|					asoc->highest_tsn_inside_map = i;
  338|    218|					break;
  339|    218|				}
  340|  1.22M|			}
  341|  1.18k|			if (!SCTP_TSN_GE(i, asoc->mapping_array_base_tsn)) {
  ------------------
  |  |  890|  1.18k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  1.18k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  2.36k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 962, False: 218]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 962]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  2.36k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 206, False: 974]
  |  |  |  |  |  |  |  Branch (884:43): [True: 206, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 12, False: 962]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  342|    962|				asoc->highest_tsn_inside_map = asoc->mapping_array_base_tsn - 1;
  343|    962|			}
  344|  1.18k|		}
  345|  2.23k|	}
  346|  2.30k|}
sctp_indata.c:sctp_queue_data_to_stream:
  499|    972|{
  500|       |	/*
  501|       |	 * FIX-ME maybe? What happens when the ssn wraps? If we are getting
  502|       |	 * all the data in one stream this could happen quite rapidly. One
  503|       |	 * could use the TSN to keep track of things, but this scheme breaks
  504|       |	 * down in the other type of stream usage that could occur. Send a
  505|       |	 * single msg to stream 0, send 4Billion messages to stream 1, now
  506|       |	 * send a message to stream 0. You have a situation where the TSN
  507|       |	 * has wrapped but not in the stream. Is this worth worrying about
  508|       |	 * or should we just change our queue sort at the bottom to be by
  509|       |	 * TSN.
  510|       |	 *
  511|       |	 * Could it also be legal for a peer to send ssn 1 with TSN 2 and ssn 2
  512|       |	 * with TSN 1? If the peer is doing some sort of funky TSN/SSN
  513|       |	 * assignment this could happen... and I don't see how this would be
  514|       |	 * a violation. So for now I am undecided an will leave the sort by
  515|       |	 * SSN alone. Maybe a hybrid approach is the answer
  516|       |	 *
  517|       |	 */
  518|    972|	struct sctp_queued_to_read *at;
  519|    972|	int queue_needed;
  520|    972|	uint32_t nxt_todel;
  521|    972|	struct mbuf *op_err;
  522|    972|	struct sctp_stream_in *strm;
  523|    972|	char msg[SCTP_DIAG_INFO_LEN];
  524|       |
  525|    972|	strm = &asoc->strmin[control->sinfo_stream];
  526|    972|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    972|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    972|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (526:6): [True: 0, False: 972]
  ------------------
  527|      0|		sctp_log_strm_del(control, NULL, SCTP_STR_LOG_FROM_INTO_STRD);
  ------------------
  |  |  115|      0|#define SCTP_STR_LOG_FROM_INTO_STRD 10
  ------------------
  528|      0|	}
  529|    972|	if (SCTP_MID_GT((asoc->idata_supported), strm->last_mid_delivered, control->mid)) {
  ------------------
  |  |  891|    972|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|    250|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 59, False: 191]
  |  |  |  |  |  Branch (883:43): [True: 1, False: 58]
  |  |  |  |  ------------------
  |  |  |  |  884|    250|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 188, False: 61]
  |  |  |  |  |  Branch (884:43): [True: 29, False: 159]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|    722|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 64, False: 658]
  |  |  |  |  |  Branch (880:43): [True: 3, False: 61]
  |  |  |  |  ------------------
  |  |  |  |  881|    722|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 612, False: 107]
  |  |  |  |  |  Branch (881:43): [True: 49, False: 563]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 82, False: 890]
  |  |  |  Branch (891:31): [True: 250, False: 722]
  |  |  ------------------
  ------------------
  530|       |		/* The incoming sseq is behind where we last delivered? */
  531|     82|		SCTPDBG(SCTP_DEBUG_INDATA1, "Duplicate S-SEQ: %u delivered: %u from peer, Abort association\n",
  532|     82|			strm->last_mid_delivered, control->mid);
  533|       |		/*
  534|       |		 * throw it in the stream so it gets cleaned up in
  535|       |		 * association destruction
  536|       |		 */
  537|     82|		TAILQ_INSERT_HEAD(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (537:3): [True: 2, False: 80]
  |  Branch (537:3): [Folded, False: 82]
  ------------------
  538|     82|		if (asoc->idata_supported) {
  ------------------
  |  Branch (538:7): [True: 30, False: 52]
  ------------------
  539|     30|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered MID=%8.8x, got TSN=%8.8x, SID=%4.4x, MID=%8.8x",
  ------------------
  |  |  820|     30|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 30]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  540|     30|			              strm->last_mid_delivered, control->sinfo_tsn,
  541|     30|			              control->sinfo_stream, control->mid);
  542|     52|		} else {
  543|     52|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
  ------------------
  |  |  820|     52|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 52]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  544|     52|			              (uint16_t)strm->last_mid_delivered,
  545|     52|			              control->sinfo_tsn,
  546|     52|			              control->sinfo_stream,
  547|     52|			              (uint16_t)control->mid);
  548|     52|		}
  549|     82|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     82|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  550|     82|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2;
  ------------------
  |  |  757|     82|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2;
  ------------------
  |  |  770|     82|#define SCTP_LOC_2  0x00000002
  ------------------
  551|     82|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     82|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  552|     82|		*abort_flag = 1;
  553|     82|		return;
  554|     82|	}
  555|    890|	queue_needed = 1;
  556|    890|	asoc->size_on_all_streams += control->length;
  557|    890|	sctp_ucount_incr(asoc->cnt_on_all_streams);
  ------------------
  |  |  266|    890|#define sctp_ucount_incr(val) { \
  |  |  267|    890|	val++; \
  |  |  268|    890|}
  ------------------
  558|    890|	nxt_todel = strm->last_mid_delivered + 1;
  559|    890|	if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid)) {
  ------------------
  |  |  893|    890|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 200, False: 690]
  |  |  |  Branch (893:31): [True: 220, False: 670]
  |  |  ------------------
  ------------------
  560|       |#if defined(__APPLE__) && !defined(__Userspace__)
  561|       |		struct socket *so;
  562|       |
  563|       |		so = SCTP_INP_SO(stcb->sctp_ep);
  564|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
  565|       |		SCTP_TCB_UNLOCK(stcb);
  566|       |		SCTP_SOCKET_LOCK(so, 1);
  567|       |		SCTP_TCB_LOCK(stcb);
  568|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  569|       |		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  570|       |			SCTP_SOCKET_UNLOCK(so, 1);
  571|       |			return;
  572|       |		}
  573|       |#endif
  574|       |		/* can be delivered right away? */
  575|    200|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    200|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    200|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (575:7): [True: 0, False: 200]
  ------------------
  576|      0|			sctp_log_strm_del(control, NULL, SCTP_STR_LOG_FROM_IMMED_DEL);
  ------------------
  |  |  116|      0|#define SCTP_STR_LOG_FROM_IMMED_DEL 11
  ------------------
  577|      0|		}
  578|       |		/* EY it wont be queued if it could be delivered directly */
  579|    200|		queue_needed = 0;
  580|    200|		if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (580:7): [True: 200, False: 0]
  ------------------
  581|    200|			asoc->size_on_all_streams -= control->length;
  582|    200|		} else {
  583|      0|#ifdef INVARIANTS
  584|      0|			panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  585|       |#else
  586|       |			asoc->size_on_all_streams = 0;
  587|       |#endif
  588|      0|		}
  589|    200|		sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|    200|#define sctp_ucount_decr(val) { \
  |  |  271|    200|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 200, False: 0]
  |  |  ------------------
  |  |  272|    200|		val--; \
  |  |  273|    200|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|    200|}
  ------------------
  590|    200|		strm->last_mid_delivered++;
  591|    200|		sctp_mark_non_revokable(asoc, control->sinfo_tsn);
  592|    200|		sctp_add_to_readq(stcb->sctp_ep, stcb,
  593|    200|		                  control,
  594|    200|		                  &stcb->sctp_socket->so_rcv, 1,
  595|    200|		                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_LOCKED);
  ------------------
  |  |   41|    200|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              		                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_LOCKED);
  ------------------
  |  |  959|    200|#define SCTP_SO_LOCKED		1
  ------------------
  596|    200|		TAILQ_FOREACH_SAFE(control, &strm->inqueue, next_instrm, at) {
  ------------------
  |  | 1129|    200|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    227|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 84, False: 143]
  |  |  |  Branch (1130:24): [True: 84, False: 0]
  |  |  ------------------
  |  | 1131|    200|              (var) = (tvar))
  ------------------
  597|       |			/* all delivered */
  598|     84|			nxt_todel = strm->last_mid_delivered + 1;
  599|     84|			if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid) &&
  ------------------
  |  |  893|    168|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 35, False: 49]
  |  |  |  Branch (893:31): [True: 20, False: 64]
  |  |  ------------------
  ------------------
  600|     35|			    (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG)) {
  ------------------
  |  |  514|     35|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              			    (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG)) {
  ------------------
  |  |  514|     35|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (600:8): [True: 27, False: 8]
  ------------------
  601|     27|				if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|     27|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (601:9): [True: 27, False: 0]
  ------------------
  602|     27|					TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (602:6): [True: 13, False: 14]
  |  Branch (602:6): [Folded, False: 27]
  ------------------
  603|     27|					if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (603:10): [True: 27, False: 0]
  ------------------
  604|     27|						asoc->size_on_all_streams -= control->length;
  605|     27|					} else {
  606|      0|#ifdef INVARIANTS
  607|      0|						panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  608|       |#else
  609|       |						asoc->size_on_all_streams = 0;
  610|       |#endif
  611|      0|					}
  612|     27|					sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|     27|#define sctp_ucount_decr(val) { \
  |  |  271|     27|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 27, False: 0]
  |  |  ------------------
  |  |  272|     27|		val--; \
  |  |  273|     27|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|     27|}
  ------------------
  613|     27|#ifdef INVARIANTS
  614|     27|				} else {
  615|      0|					panic("Huh control: %p is on_strm_q: %d",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  616|      0|					      control, control->on_strm_q);
  617|      0|#endif
  618|      0|				}
  619|     27|				control->on_strm_q = 0;
  620|     27|				strm->last_mid_delivered++;
  621|       |				/*
  622|       |				 * We ignore the return of deliver_data here
  623|       |				 * since we always can hold the chunk on the
  624|       |				 * d-queue. And we have a finite number that
  625|       |				 * can be delivered from the strq.
  626|       |				 */
  627|     27|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|     27|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|     27|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (627:9): [True: 0, False: 27]
  ------------------
  628|      0|					sctp_log_strm_del(control, NULL,
  629|      0|							  SCTP_STR_LOG_FROM_IMMED_DEL);
  ------------------
  |  |  116|      0|#define SCTP_STR_LOG_FROM_IMMED_DEL 11
  ------------------
  630|      0|				}
  631|     27|				sctp_mark_non_revokable(asoc, control->sinfo_tsn);
  632|     27|				sctp_add_to_readq(stcb->sctp_ep, stcb,
  633|     27|				                  control,
  634|     27|				                  &stcb->sctp_socket->so_rcv, 1,
  635|     27|				                  SCTP_READ_LOCK_NOT_HELD,
  ------------------
  |  |   41|     27|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  636|     27|				                  SCTP_SO_LOCKED);
  ------------------
  |  |  959|     27|#define SCTP_SO_LOCKED		1
  ------------------
  637|     27|				continue;
  638|     57|			} else if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid)) {
  ------------------
  |  |  893|     57|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 8, False: 49]
  |  |  |  Branch (893:31): [True: 16, False: 41]
  |  |  ------------------
  ------------------
  639|      8|				*need_reasm = 1;
  640|      8|			}
  641|     57|			break;
  642|     84|		}
  643|       |#if defined(__APPLE__) && !defined(__Userspace__)
  644|       |		SCTP_SOCKET_UNLOCK(so, 1);
  645|       |#endif
  646|    200|	}
  647|    890|	if (queue_needed) {
  ------------------
  |  Branch (647:6): [True: 690, False: 200]
  ------------------
  648|       |		/*
  649|       |		 * Ok, we did not deliver this guy, find the correct place
  650|       |		 * to put it on the queue.
  651|       |		 */
  652|    690|		if (sctp_place_control_in_stream(strm, asoc, control)) {
  ------------------
  |  Branch (652:7): [True: 8, False: 682]
  ------------------
  653|      8|			SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      8|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 8]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  654|      8|			              "Queue to str MID: %u duplicate", control->mid);
  655|      8|			sctp_clean_up_control(stcb, control);
  656|      8|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      8|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  657|      8|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3;
  ------------------
  |  |  757|      8|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3;
  ------------------
  |  |  771|      8|#define SCTP_LOC_3  0x00000003
  ------------------
  658|      8|			sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      8|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  659|      8|			*abort_flag = 1;
  660|      8|		}
  661|    690|	}
  662|    890|}
sctp_indata.c:sctp_place_control_in_stream:
  352|  3.45k|{
  353|  3.45k|	struct sctp_queued_to_read *at;
  354|  3.45k|	struct sctp_readhead *q;
  355|  3.45k|	uint8_t flags, unordered;
  356|       |
  357|  3.45k|	flags = (control->sinfo_flags >> 8);
  358|  3.45k|	unordered = flags & SCTP_DATA_UNORDERED;
  ------------------
  |  |  515|  3.45k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  359|  3.45k|	if (unordered) {
  ------------------
  |  Branch (359:6): [True: 1.42k, False: 2.02k]
  ------------------
  360|  1.42k|		q = &strm->uno_inqueue;
  361|  1.42k|		if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (361:7): [True: 763, False: 665]
  ------------------
  362|    763|			if (!TAILQ_EMPTY(q)) {
  ------------------
  |  Branch (362:8): [True: 4, False: 759]
  ------------------
  363|       |				/* Only one stream can be here in old style  -- abort */
  364|      4|				return (-1);
  365|      4|			}
  366|    763|			TAILQ_INSERT_TAIL(q, control, next_instrm);
  ------------------
  |  Branch (366:4): [Folded, False: 759]
  ------------------
  367|    759|			control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    759|#define SCTP_ON_UNORDERED 2
  ------------------
  368|    759|			return (0);
  369|    763|		}
  370|  2.02k|	} else {
  371|  2.02k|		q = &strm->inqueue;
  372|  2.02k|	}
  373|  2.69k|	if ((flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  2.69k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  2.69k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (373:6): [True: 651, False: 2.03k]
  ------------------
  374|    651|		control->end_added = 1;
  375|    651|		control->first_frag_seen = 1;
  376|    651|		control->last_frag_seen = 1;
  377|    651|	}
  378|  2.69k|	if (TAILQ_EMPTY(q)) {
  ------------------
  |  Branch (378:6): [True: 1.58k, False: 1.11k]
  ------------------
  379|       |		/* Empty queue */
  380|  1.58k|		TAILQ_INSERT_HEAD(q, control, next_instrm);
  ------------------
  |  Branch (380:3): [True: 0, False: 1.58k]
  |  Branch (380:3): [Folded, False: 1.58k]
  ------------------
  381|  1.58k|		if (unordered) {
  ------------------
  |  Branch (381:7): [True: 255, False: 1.32k]
  ------------------
  382|    255|			control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    255|#define SCTP_ON_UNORDERED 2
  ------------------
  383|  1.32k|		} else {
  384|  1.32k|			control->on_strm_q = SCTP_ON_ORDERED;
  ------------------
  |  |  553|  1.32k|#define SCTP_ON_ORDERED 1
  ------------------
  385|  1.32k|		}
  386|  1.58k|		return (0);
  387|  1.58k|	} else {
  388|  3.05k|		TAILQ_FOREACH(at, q, next_instrm) {
  ------------------
  |  Branch (388:3): [True: 3.05k, False: 0]
  ------------------
  389|  3.05k|			if (SCTP_MID_GT(asoc->idata_supported, at->mid, control->mid)) {
  ------------------
  |  |  891|  3.05k|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|  2.05k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.07k, False: 975]
  |  |  |  |  |  Branch (883:43): [True: 121, False: 956]
  |  |  |  |  ------------------
  |  |  |  |  884|  2.05k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 975, False: 956]
  |  |  |  |  |  Branch (884:43): [True: 418, False: 557]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|  1.00k|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 513, False: 492]
  |  |  |  |  |  Branch (880:43): [True: 36, False: 477]
  |  |  |  |  ------------------
  |  |  |  |  881|  1.00k|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 488, False: 481]
  |  |  |  |  |  Branch (881:43): [True: 207, False: 281]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 782, False: 2.27k]
  |  |  |  Branch (891:31): [True: 2.05k, False: 1.00k]
  |  |  ------------------
  ------------------
  390|       |				/*
  391|       |				 * one in queue is bigger than the
  392|       |				 * new one, insert before this one
  393|       |				 */
  394|    782|				TAILQ_INSERT_BEFORE(at, control, next_instrm);
  ------------------
  |  Branch (394:5): [Folded, False: 782]
  ------------------
  395|    782|				if (unordered) {
  ------------------
  |  Branch (395:9): [True: 331, False: 451]
  ------------------
  396|    331|					control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    331|#define SCTP_ON_UNORDERED 2
  ------------------
  397|    451|				} else {
  398|    451|					control->on_strm_q = SCTP_ON_ORDERED;
  ------------------
  |  |  553|    451|#define SCTP_ON_ORDERED 1
  ------------------
  399|    451|				}
  400|    782|				break;
  401|  2.27k|			} else if (SCTP_MID_EQ(asoc->idata_supported, at->mid, control->mid)) {
  ------------------
  |  |  893|  2.27k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 4, False: 2.27k]
  |  |  |  Branch (893:31): [True: 1.51k, False: 762]
  |  |  ------------------
  ------------------
  402|       |				/*
  403|       |				 * Gak, He sent me a duplicate msg
  404|       |				 * id number?? return -1 to abort.
  405|       |				 */
  406|      4|				return (-1);
  407|  2.27k|			} else {
  408|  2.27k|				if (TAILQ_NEXT(at, next_instrm) == NULL) {
  ------------------
  |  Branch (408:9): [True: 324, False: 1.94k]
  ------------------
  409|       |					/*
  410|       |					 * We are at the end, insert
  411|       |					 * it after this one
  412|       |					 */
  413|    324|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    324|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    324|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (413:10): [True: 0, False: 324]
  ------------------
  414|      0|						sctp_log_strm_del(control, at,
  415|      0|								  SCTP_STR_LOG_FROM_INSERT_TL);
  ------------------
  |  |  119|      0|#define SCTP_STR_LOG_FROM_INSERT_TL 14
  ------------------
  416|      0|					}
  417|    324|					TAILQ_INSERT_AFTER(q, at, control, next_instrm);
  ------------------
  |  Branch (417:6): [True: 0, False: 324]
  |  Branch (417:6): [Folded, False: 324]
  ------------------
  418|    324|					if (unordered) {
  ------------------
  |  Branch (418:10): [True: 79, False: 245]
  ------------------
  419|     79|						control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|     79|#define SCTP_ON_UNORDERED 2
  ------------------
  420|    245|					} else {
  421|    245|						control->on_strm_q = SCTP_ON_ORDERED;
  ------------------
  |  |  553|    245|#define SCTP_ON_ORDERED 1
  ------------------
  422|    245|					}
  423|    324|					break;
  424|    324|				}
  425|  2.27k|			}
  426|  3.05k|		}
  427|  1.11k|	}
  428|  1.10k|	return (0);
  429|  2.69k|}
sctp_indata.c:sctp_clean_up_control:
  469|      8|{
  470|       |	/*
  471|       |	 * The control could not be placed and must be cleaned.
  472|       |	 */
  473|      8|	struct sctp_tmit_chunk *chk, *nchk;
  474|      8|	TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
  ------------------
  |  | 1129|      8|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|      8|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 8]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|      8|              (var) = (tvar))
  ------------------
  475|      0|		TAILQ_REMOVE(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (475:3): [True: 0, False: 0]
  |  Branch (475:3): [Folded, False: 0]
  ------------------
  476|      0|		if (chk->data)
  ------------------
  |  Branch (476:7): [True: 0, False: 0]
  ------------------
  477|      0|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  478|      0|		chk->data = NULL;
  479|      0|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (479:3): [Folded, False: 0]
  ------------------
  480|      0|	}
  481|      8|	sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      8|#define sctp_free_remote_addr(__net) { \
  |  |  229|      8|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 8, False: 0]
  |  |  ------------------
  |  |  230|      8|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      8|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      8|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 8]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      8|	} \
  |  |  245|      8|}
  ------------------
  482|      8|	if (control->data) {
  ------------------
  |  Branch (482:6): [True: 8, False: 0]
  ------------------
  483|      8|		sctp_m_freem(control->data);
  ------------------
  |  |   52|      8|#define sctp_m_freem m_freem
  ------------------
  484|      8|		control->data = NULL;
  485|      8|	}
  486|      8|	sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      8|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      8|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 8]
  |  |  ------------------
  |  |  107|      8|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      8|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      8|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      8|	free(element);  \
  |  |  |  |  709|      8|}
  |  |  ------------------
  |  |  109|      8|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      8|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      8|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      8|}
  ------------------
  487|      8|}
sctp_indata.c:sctp_queue_data_for_reasm:
 1376|  4.93k|{
 1377|  4.93k|	uint32_t next_fsn;
 1378|  4.93k|	struct sctp_tmit_chunk *at, *nat;
 1379|  4.93k|	struct sctp_stream_in *strm;
 1380|  4.93k|	int do_wakeup, unordered;
 1381|  4.93k|	uint32_t lenadded;
 1382|       |
 1383|  4.93k|	strm = &asoc->strmin[control->sinfo_stream];
 1384|       |	/*
 1385|       |	 * For old un-ordered data chunks.
 1386|       |	 */
 1387|  4.93k|	if ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|  4.93k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (1387:6): [True: 3.06k, False: 1.87k]
  ------------------
 1388|  3.06k|		unordered = 1;
 1389|  3.06k|	} else {
 1390|  1.87k|		unordered = 0;
 1391|  1.87k|	}
 1392|       |	/* Must be added to the stream-in queue */
 1393|  4.93k|	if (created_control) {
  ------------------
  |  Branch (1393:6): [True: 2.76k, False: 2.17k]
  ------------------
 1394|  2.76k|		if ((unordered == 0) || (asoc->idata_supported)) {
  ------------------
  |  Branch (1394:7): [True: 1.37k, False: 1.38k]
  |  Branch (1394:27): [True: 665, False: 724]
  ------------------
 1395|  2.03k|			sctp_ucount_incr(asoc->cnt_on_all_streams);
  ------------------
  |  |  266|  2.03k|#define sctp_ucount_incr(val) { \
  |  |  267|  2.03k|	val++; \
  |  |  268|  2.03k|}
  ------------------
 1396|  2.03k|		}
 1397|  2.76k|		if (sctp_place_control_in_stream(strm, asoc, control)) {
  ------------------
  |  Branch (1397:7): [True: 0, False: 2.76k]
  ------------------
 1398|       |			/* Duplicate SSN? */
 1399|      0|			sctp_abort_in_reasm(stcb, control, chk,
 1400|      0|					    abort_flag,
 1401|      0|					    SCTP_FROM_SCTP_INDATA + SCTP_LOC_6);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              					    SCTP_FROM_SCTP_INDATA + SCTP_LOC_6);
  ------------------
  |  |  774|      0|#define SCTP_LOC_6  0x00000006
  ------------------
 1402|      0|			sctp_clean_up_control(stcb, control);
 1403|      0|			return;
 1404|      0|		}
 1405|  2.76k|		if ((tsn == (asoc->cumulative_tsn + 1) && (asoc->idata_supported == 0))) {
  ------------------
  |  Branch (1405:8): [True: 53, False: 2.71k]
  |  Branch (1405:45): [True: 37, False: 16]
  ------------------
 1406|       |			/* Ok we created this control and now
 1407|       |			 * lets validate that its legal i.e. there
 1408|       |			 * is a B bit set, if not and we have
 1409|       |			 * up to the cum-ack then its invalid.
 1410|       |			 */
 1411|     37|			if ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == 0) {
  ------------------
  |  |  513|     37|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1411:8): [True: 4, False: 33]
  ------------------
 1412|      4|				sctp_abort_in_reasm(stcb, control, chk,
 1413|      4|				                    abort_flag,
 1414|      4|				                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_7);
  ------------------
  |  |  757|      4|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_7);
  ------------------
  |  |  775|      4|#define SCTP_LOC_7  0x00000007
  ------------------
 1415|      4|				return;
 1416|      4|			}
 1417|     37|		}
 1418|  2.76k|	}
 1419|  4.93k|	if ((asoc->idata_supported == 0) && (unordered == 1)) {
  ------------------
  |  Branch (1419:6): [True: 3.20k, False: 1.72k]
  |  Branch (1419:38): [True: 2.30k, False: 905]
  ------------------
 1420|  2.30k|		sctp_inject_old_unordered_data(stcb, asoc, control, chk, abort_flag);
 1421|  2.30k|		return;
 1422|  2.30k|	}
 1423|       |	/*
 1424|       |	 * Ok we must queue the chunk into the reasembly portion:
 1425|       |	 *  o if its the first it goes to the control mbuf.
 1426|       |	 *  o if its not first but the next in sequence it goes to the control,
 1427|       |	 *    and each succeeding one in order also goes.
 1428|       |	 *  o if its not in order we place it on the list in its place.
 1429|       |	 */
 1430|  2.62k|	if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|  2.62k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1430:6): [True: 879, False: 1.74k]
  ------------------
 1431|       |		/* Its the very first one. */
 1432|    879|		SCTPDBG(SCTP_DEBUG_XXX,
 1433|    879|			"chunk is a first fsn: %u becomes fsn_included\n",
 1434|    879|			chk->rec.data.fsn);
 1435|    879|		if (control->first_frag_seen) {
  ------------------
  |  Branch (1435:7): [True: 3, False: 876]
  ------------------
 1436|       |			/*
 1437|       |			 * Error on senders part, they either
 1438|       |			 * sent us two data chunks with FIRST,
 1439|       |			 * or they sent two un-ordered chunks that
 1440|       |			 * were fragmented at the same time in the same stream.
 1441|       |			 */
 1442|      3|			sctp_abort_in_reasm(stcb, control, chk,
 1443|      3|			                    abort_flag,
 1444|      3|			                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_8);
  ------------------
  |  |  757|      3|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_8);
  ------------------
  |  |  776|      3|#define SCTP_LOC_8  0x00000008
  ------------------
 1445|      3|			return;
 1446|      3|		}
 1447|    876|		control->first_frag_seen = 1;
 1448|    876|		control->sinfo_ppid = chk->rec.data.ppid;
 1449|    876|		control->sinfo_tsn = chk->rec.data.tsn;
 1450|    876|		control->fsn_included = chk->rec.data.fsn;
 1451|    876|		control->data = chk->data;
 1452|    876|		sctp_mark_non_revokable(asoc, chk->rec.data.tsn);
 1453|    876|		chk->data = NULL;
 1454|    876|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    876|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    876|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 876]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    876|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 876, False: 0]
  |  |  ------------------
  |  |  149|    876|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    876|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    876|	do {                         \
  |  |  |  |  |  |  113|    876|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 876]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    876|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 876]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    876|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 876, False: 0]
  |  |  ------------------
  |  |  151|    876|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    876|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    876|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 876, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    876|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    876|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    876|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 876]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|    876|	} \
  |  |  |  |  245|    876|}
  |  |  ------------------
  |  |  152|    876|			(_chk)->whoTo = NULL; \
  |  |  153|    876|		} \
  |  |  154|    876|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    876|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 876]
  |  |  ------------------
  |  |  155|    876|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    876|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|    876|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 876]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    876|		} else { \
  |  |  159|    876|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    876|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    876|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    876|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    876|		} \
  |  |  163|    876|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|    876|}
  ------------------
  |  Branch (1454:3): [Folded, False: 876]
  ------------------
 1455|    876|		sctp_setup_tail_pointer(control);
 1456|    876|		asoc->size_on_all_streams += control->length;
 1457|  1.74k|	} else {
 1458|       |		/* Place the chunk in our list */
 1459|  1.74k|		int inserted=0;
 1460|  1.74k|		if (control->last_frag_seen == 0) {
  ------------------
  |  Branch (1460:7): [True: 1.53k, False: 216]
  ------------------
 1461|       |			/* Still willing to raise highest FSN seen */
 1462|  1.53k|			if (SCTP_TSN_GT(chk->rec.data.fsn, control->top_fsn)) {
  ------------------
  |  |  889|  1.53k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.53k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 163, False: 1.36k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 163]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.53k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 176, False: 1.35k]
  |  |  |  |  |  Branch (884:43): [True: 142, False: 34]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1463|    142|				SCTPDBG(SCTP_DEBUG_XXX,
 1464|    142|					"We have a new top_fsn: %u\n",
 1465|    142|					chk->rec.data.fsn);
 1466|    142|				control->top_fsn = chk->rec.data.fsn;
 1467|    142|			}
 1468|  1.53k|			if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|  1.53k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1468:8): [True: 591, False: 940]
  ------------------
 1469|    591|				SCTPDBG(SCTP_DEBUG_XXX,
 1470|    591|					"The last fsn is now in place fsn: %u\n",
 1471|    591|					chk->rec.data.fsn);
 1472|    591|				control->last_frag_seen = 1;
 1473|    591|				if (SCTP_TSN_GT(control->top_fsn, chk->rec.data.fsn)) {
  ------------------
  |  |  889|    591|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    591|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 23, False: 568]
  |  |  |  |  |  Branch (883:43): [True: 22, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  884|    591|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 58, False: 511]
  |  |  |  |  |  Branch (884:43): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1474|     80|					SCTPDBG(SCTP_DEBUG_XXX,
 1475|     80|						"New fsn: %u is not at top_fsn: %u -- abort\n",
 1476|     80|						chk->rec.data.fsn,
 1477|     80|						control->top_fsn);
 1478|     80|					sctp_abort_in_reasm(stcb, control, chk,
 1479|     80|							    abort_flag,
 1480|     80|							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_9);
  ------------------
  |  |  757|     80|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_9);
  ------------------
  |  |  777|     80|#define SCTP_LOC_9  0x00000009
  ------------------
 1481|     80|					return;
 1482|     80|				}
 1483|    591|			}
 1484|  1.45k|			if (asoc->idata_supported || control->first_frag_seen) {
  ------------------
  |  Branch (1484:8): [True: 820, False: 631]
  |  Branch (1484:33): [True: 45, False: 586]
  ------------------
 1485|       |				/*
 1486|       |				 * For IDATA we always check since we know that
 1487|       |				 * the first fragment is 0. For old DATA we have
 1488|       |				 * to receive the first before we know the first FSN
 1489|       |				 * (which is the TSN).
 1490|       |				 */
 1491|    865|				if (SCTP_TSN_GE(control->fsn_included, chk->rec.data.fsn)) {
  ------------------
  |  |  890|    865|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    865|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.73k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 121, False: 744]
  |  |  |  |  |  |  |  Branch (883:43): [True: 8, False: 113]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.73k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 741, False: 116]
  |  |  |  |  |  |  |  Branch (884:43): [True: 72, False: 669]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 3, False: 782]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1492|       |					/* We have already delivered up to this so its a dup */
 1493|     83|					sctp_abort_in_reasm(stcb, control, chk,
 1494|     83|							    abort_flag,
 1495|     83|							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_10);
  ------------------
  |  |  757|     83|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_10);
  ------------------
  |  |  778|     83|#define SCTP_LOC_10 0x0000000a
  ------------------
 1496|     83|					return;
 1497|     83|				}
 1498|    865|			}
 1499|  1.45k|		} else {
 1500|    216|			if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|    216|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1500:8): [True: 1, False: 215]
  ------------------
 1501|       |				/* Second last? huh? */
 1502|      1|				SCTPDBG(SCTP_DEBUG_XXX,
 1503|      1|					"Duplicate last fsn: %u (top: %u) -- abort\n",
 1504|      1|					chk->rec.data.fsn, control->top_fsn);
 1505|      1|				sctp_abort_in_reasm(stcb, control,
 1506|      1|						    chk, abort_flag,
 1507|      1|						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_11);
  ------------------
  |  |  757|      1|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_11);
  ------------------
  |  |  779|      1|#define SCTP_LOC_11 0x0000000b
  ------------------
 1508|      1|				return;
 1509|      1|			}
 1510|    215|			if (asoc->idata_supported || control->first_frag_seen) {
  ------------------
  |  Branch (1510:8): [True: 140, False: 75]
  |  Branch (1510:33): [True: 40, False: 35]
  ------------------
 1511|       |				/*
 1512|       |				 * For IDATA we always check since we know that
 1513|       |				 * the first fragment is 0. For old DATA we have
 1514|       |				 * to receive the first before we know the first FSN
 1515|       |				 * (which is the TSN).
 1516|       |				 */
 1517|       |
 1518|    180|				if (SCTP_TSN_GE(control->fsn_included, chk->rec.data.fsn)) {
  ------------------
  |  |  890|    180|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    180|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|    360|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 62, False: 118]
  |  |  |  |  |  |  |  Branch (883:43): [True: 8, False: 54]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|    360|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 117, False: 55]
  |  |  |  |  |  |  |  Branch (884:43): [True: 35, False: 82]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 1, False: 136]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1519|       |					/* We have already delivered up to this so its a dup */
 1520|     44|					SCTPDBG(SCTP_DEBUG_XXX,
 1521|     44|						"New fsn: %u is already seen in included_fsn: %u -- abort\n",
 1522|     44|						chk->rec.data.fsn, control->fsn_included);
 1523|     44|					sctp_abort_in_reasm(stcb, control, chk,
 1524|     44|							    abort_flag,
 1525|     44|							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_12);
  ------------------
  |  |  757|     44|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_12);
  ------------------
  |  |  780|     44|#define SCTP_LOC_12 0x0000000c
  ------------------
 1526|     44|					return;
 1527|     44|				}
 1528|    180|			}
 1529|       |			/* validate not beyond top FSN if we have seen last one */
 1530|    171|			if (SCTP_TSN_GT(chk->rec.data.fsn, control->top_fsn)) {
  ------------------
  |  |  889|    171|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    171|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 109, False: 62]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 109]
  |  |  |  |  ------------------
  |  |  |  |  884|    171|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 62, False: 109]
  |  |  |  |  |  Branch (884:43): [True: 59, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1531|     59|				SCTPDBG(SCTP_DEBUG_XXX,
 1532|     59|					"New fsn: %u is beyond or at top_fsn: %u -- abort\n",
 1533|     59|					chk->rec.data.fsn,
 1534|     59|					control->top_fsn);
 1535|     59|				sctp_abort_in_reasm(stcb, control, chk,
 1536|     59|						    abort_flag,
 1537|     59|						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_13);
  ------------------
  |  |  757|     59|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_13);
  ------------------
  |  |  781|     59|#define SCTP_LOC_13 0x0000000d
  ------------------
 1538|     59|				return;
 1539|     59|			}
 1540|    171|		}
 1541|       |		/*
 1542|       |		 * If we reach here, we need to place the
 1543|       |		 * new chunk in the reassembly for this
 1544|       |		 * control.
 1545|       |		 */
 1546|  1.48k|		SCTPDBG(SCTP_DEBUG_XXX,
 1547|  1.48k|			"chunk is a not first fsn: %u needs to be inserted\n",
 1548|  1.48k|			chk->rec.data.fsn);
 1549|  1.48k|		TAILQ_FOREACH(at, &control->reasm, sctp_next) {
  ------------------
  |  Branch (1549:3): [True: 476, False: 1.26k]
  ------------------
 1550|    476|			if (SCTP_TSN_GT(at->rec.data.fsn, chk->rec.data.fsn)) {
  ------------------
  |  |  889|    476|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    476|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 260, False: 216]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 260]
  |  |  |  |  ------------------
  |  |  |  |  884|    476|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 214, False: 262]
  |  |  |  |  |  Branch (884:43): [True: 214, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1551|    214|				if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|    214|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1551:9): [True: 1, False: 213]
  ------------------
 1552|       |					/* Last not at the end? huh? */
 1553|      1|					SCTPDBG(SCTP_DEBUG_XXX,
 1554|      1|					        "Last fragment not last in list: -- abort\n");
 1555|      1|					sctp_abort_in_reasm(stcb, control,
 1556|      1|					                    chk, abort_flag,
 1557|      1|					                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_14);
  ------------------
  |  |  757|      1|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              					                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_14);
  ------------------
  |  |  782|      1|#define SCTP_LOC_14 0x0000000e
  ------------------
 1558|      1|					return;
 1559|      1|				}
 1560|       |				/*
 1561|       |				 * This one in queue is bigger than the new one, insert
 1562|       |				 * the new one before at.
 1563|       |				 */
 1564|    213|				SCTPDBG(SCTP_DEBUG_XXX,
 1565|    213|					"Insert it before fsn: %u\n",
 1566|    213|					at->rec.data.fsn);
 1567|    213|				asoc->size_on_reasm_queue += chk->send_size;
 1568|    213|				sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|    213|#define sctp_ucount_incr(val) { \
  |  |  267|    213|	val++; \
  |  |  268|    213|}
  ------------------
 1569|    213|				TAILQ_INSERT_BEFORE(at, chk, sctp_next);
  ------------------
  |  Branch (1569:5): [Folded, False: 213]
  ------------------
 1570|    213|				inserted = 1;
 1571|    213|				break;
 1572|    262|			} else if (at->rec.data.fsn == chk->rec.data.fsn) {
  ------------------
  |  Branch (1572:15): [True: 2, False: 260]
  ------------------
 1573|       |				/* Gak, He sent me a duplicate str seq number */
 1574|       |				/*
 1575|       |				 * foo bar, I guess I will just free this new guy,
 1576|       |				 * should we abort too? FIX ME MAYBE? Or it COULD be
 1577|       |				 * that the SSN's have wrapped. Maybe I should
 1578|       |				 * compare to TSN somehow... sigh for now just blow
 1579|       |				 * away the chunk!
 1580|       |				 */
 1581|      2|				SCTPDBG(SCTP_DEBUG_XXX,
 1582|      2|					"Duplicate to fsn: %u -- abort\n",
 1583|      2|					at->rec.data.fsn);
 1584|      2|				sctp_abort_in_reasm(stcb, control,
 1585|      2|						    chk, abort_flag,
 1586|      2|						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_15);
  ------------------
  |  |  757|      2|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_15);
  ------------------
  |  |  783|      2|#define SCTP_LOC_15 0x0000000f
  ------------------
 1587|      2|				return;
 1588|      2|			}
 1589|    476|		}
 1590|  1.47k|		if (inserted == 0) {
  ------------------
  |  Branch (1590:7): [True: 1.26k, False: 213]
  ------------------
 1591|       |			/* Goes on the end */
 1592|  1.26k|			SCTPDBG(SCTP_DEBUG_XXX, "Inserting at tail of list fsn: %u\n",
 1593|  1.26k|				chk->rec.data.fsn);
 1594|  1.26k|			asoc->size_on_reasm_queue += chk->send_size;
 1595|  1.26k|			sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|  1.26k|#define sctp_ucount_incr(val) { \
  |  |  267|  1.26k|	val++; \
  |  |  268|  1.26k|}
  ------------------
 1596|  1.26k|			TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (1596:4): [Folded, False: 1.26k]
  ------------------
 1597|  1.26k|		}
 1598|  1.47k|	}
 1599|       |	/*
 1600|       |	 * Ok lets see if we can suck any up into the control
 1601|       |	 * structure that are in seq if it makes sense.
 1602|       |	 */
 1603|  2.35k|	do_wakeup = 0;
 1604|       |	/*
 1605|       |	 * If the first fragment has not been
 1606|       |	 * seen there is no sense in looking.
 1607|       |	 */
 1608|  2.35k|	if (control->first_frag_seen) {
  ------------------
  |  Branch (1608:6): [True: 1.01k, False: 1.33k]
  ------------------
 1609|  1.01k|		next_fsn = control->fsn_included + 1;
 1610|  1.01k|		TAILQ_FOREACH_SAFE(at, &control->reasm, sctp_next, nat) {
  ------------------
  |  | 1129|  1.01k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  1.06k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 188, False: 880]
  |  |  |  Branch (1130:24): [True: 188, False: 0]
  |  |  ------------------
  |  | 1131|  1.01k|              (var) = (tvar))
  ------------------
 1611|    188|			if (at->rec.data.fsn == next_fsn) {
  ------------------
  |  Branch (1611:8): [True: 54, False: 134]
  ------------------
 1612|       |				/* We can add this one now to the control */
 1613|     54|				SCTPDBG(SCTP_DEBUG_XXX,
 1614|     54|					"Adding more to control: %p at: %p fsn: %u next_fsn: %u included: %u\n",
 1615|     54|					control, at,
 1616|     54|					at->rec.data.fsn,
 1617|     54|					next_fsn, control->fsn_included);
 1618|     54|				TAILQ_REMOVE(&control->reasm, at, sctp_next);
  ------------------
  |  Branch (1618:5): [True: 19, False: 35]
  |  Branch (1618:5): [Folded, False: 54]
  ------------------
 1619|     54|				lenadded = sctp_add_chk_to_control(control, strm, stcb, asoc, at, SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|     54|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 1620|     54|				if (control->on_read_q) {
  ------------------
  |  Branch (1620:9): [True: 0, False: 54]
  ------------------
 1621|      0|					do_wakeup = 1;
 1622|     54|				} else {
 1623|       |					/*
 1624|       |					 * We only add to the size-on-all-streams
 1625|       |					 * if its not on the read q. The read q
 1626|       |					 * flag will cause a sballoc so its accounted
 1627|       |					 * for there.
 1628|       |					 */
 1629|     54|					asoc->size_on_all_streams += lenadded;
 1630|     54|				}
 1631|     54|				next_fsn++;
 1632|     54|				if (control->end_added && control->pdapi_started) {
  ------------------
  |  Branch (1632:9): [True: 24, False: 30]
  |  Branch (1632:31): [True: 0, False: 24]
  ------------------
 1633|      0|					if (strm->pd_api_started) {
  ------------------
  |  Branch (1633:10): [True: 0, False: 0]
  ------------------
 1634|      0|						strm->pd_api_started = 0;
 1635|      0|						control->pdapi_started = 0;
 1636|      0|					}
 1637|      0|					if (control->on_read_q == 0) {
  ------------------
  |  Branch (1637:10): [True: 0, False: 0]
  ------------------
 1638|      0|						sctp_add_to_readq(stcb->sctp_ep, stcb,
 1639|      0|								  control,
 1640|      0|								  &stcb->sctp_socket->so_rcv, control->end_added,
 1641|      0|								  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   41|      0|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              								  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1642|      0|					}
 1643|      0|					break;
 1644|      0|				}
 1645|    134|			} else {
 1646|    134|				break;
 1647|    134|			}
 1648|    188|		}
 1649|  1.01k|	}
 1650|  2.35k|	if (do_wakeup) {
  ------------------
  |  Branch (1650:6): [True: 0, False: 2.35k]
  ------------------
 1651|      0|#if defined(__Userspace__)
 1652|      0|		sctp_invoke_recv_callback(stcb->sctp_ep, stcb, control, SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|      0|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 1653|      0|#endif
 1654|       |		/* Need to wakeup the reader */
 1655|      0|		sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1656|      0|	}
 1657|  2.35k|}
sctp_indata.c:sctp_abort_in_reasm:
  436|    277|{
  437|    277|	char msg[SCTP_DIAG_INFO_LEN];
  438|    277|	struct mbuf *oper;
  439|       |
  440|    277|	if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (440:6): [True: 226, False: 51]
  ------------------
  441|    226|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|    226|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 226]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  442|    226|		              "Reass %x,CF:%x,TSN=%8.8x,SID=%4.4x,FSN=%8.8x,MID:%8.8x",
  443|    226|		              opspot,
  444|    226|		              control->fsn_included,
  445|    226|		              chk->rec.data.tsn,
  446|    226|		              chk->rec.data.sid,
  447|    226|		              chk->rec.data.fsn, chk->rec.data.mid);
  448|    226|	} else {
  449|     51|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|     51|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 51]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  450|     51|		              "Reass %x,CI:%x,TSN=%8.8x,SID=%4.4x,FSN=%4.4x,SSN:%4.4x",
  451|     51|		              opspot,
  452|     51|		              control->fsn_included,
  453|     51|		              chk->rec.data.tsn,
  454|     51|		              chk->rec.data.sid,
  455|     51|		              chk->rec.data.fsn,
  456|     51|		              (uint16_t)chk->rec.data.mid);
  457|     51|	}
  458|    277|	oper = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    277|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  459|    277|	sctp_m_freem(chk->data);
  ------------------
  |  |   52|    277|#define sctp_m_freem m_freem
  ------------------
  460|    277|	chk->data = NULL;
  461|    277|	sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    277|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    277|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 277]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    277|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 277, False: 0]
  |  |  ------------------
  |  |  149|    277|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    277|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    277|	do {                         \
  |  |  |  |  |  |  113|    277|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 277]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    277|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 277]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    277|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 277, False: 0]
  |  |  ------------------
  |  |  151|    277|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    277|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    277|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 277, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    277|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    277|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    277|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 277]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|    277|	} \
  |  |  |  |  245|    277|}
  |  |  ------------------
  |  |  152|    277|			(_chk)->whoTo = NULL; \
  |  |  153|    277|		} \
  |  |  154|    277|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    277|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 277]
  |  |  ------------------
  |  |  155|    277|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    277|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|    277|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 277]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    277|		} else { \
  |  |  159|    277|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    277|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    277|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    277|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    277|		} \
  |  |  163|    277|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|    277|}
  ------------------
  |  Branch (461:2): [Folded, False: 277]
  ------------------
  462|    277|	stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1;
  ------------------
  |  |  757|    277|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              	stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1;
  ------------------
  |  |  769|    277|#define SCTP_LOC_1  0x00000001
  ------------------
  463|    277|	sctp_abort_an_association(stcb->sctp_ep, stcb, oper, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    277|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  464|    277|	*abort_flag = 1;
  465|    277|}
sctp_indata.c:sctp_inject_old_unordered_data:
  936|  2.30k|{
  937|  2.30k|	struct sctp_tmit_chunk *at;
  938|  2.30k|	int inserted;
  939|       |	/*
  940|       |	 * Here we need to place the chunk into the control structure
  941|       |	 * sorted in the correct order.
  942|       |	 */
  943|  2.30k|	if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|  2.30k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (943:6): [True: 1.38k, False: 919]
  ------------------
  944|       |		/* Its the very first one. */
  945|  1.38k|		SCTPDBG(SCTP_DEBUG_XXX,
  946|  1.38k|			"chunk is a first fsn: %u becomes fsn_included\n",
  947|  1.38k|			chk->rec.data.fsn);
  948|  1.38k|		at = TAILQ_FIRST(&control->reasm);
  949|  1.38k|		if (at && SCTP_TSN_GT(chk->rec.data.fsn, at->rec.data.fsn)) {
  ------------------
  |  |  889|    790|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    790|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 327, False: 463]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 327]
  |  |  |  |  ------------------
  |  |  |  |  884|    790|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 463, False: 327]
  |  |  |  |  |  Branch (884:43): [True: 463, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (949:7): [True: 790, False: 595]
  ------------------
  950|       |			/*
  951|       |			 * The first chunk in the reassembly is
  952|       |			 * a smaller TSN than this one, even though
  953|       |			 * this has a first, it must be from a subsequent
  954|       |			 * msg.
  955|       |			 */
  956|    463|			goto place_chunk;
  957|    463|		}
  958|    922|		if (control->first_frag_seen) {
  ------------------
  |  Branch (958:7): [True: 410, False: 512]
  ------------------
  959|       |			/*
  960|       |			 * In old un-ordered we can reassembly on
  961|       |			 * one control multiple messages. As long
  962|       |			 * as the next FIRST is greater then the old
  963|       |			 * first (TSN i.e. FSN wise)
  964|       |			 */
  965|    410|			struct mbuf *tdata;
  966|    410|			uint32_t tmp;
  967|       |
  968|    410|			if (SCTP_TSN_GT(chk->rec.data.fsn, control->fsn_included)) {
  ------------------
  |  |  889|    410|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    410|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 159, False: 251]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 159]
  |  |  |  |  ------------------
  |  |  |  |  884|    410|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 251, False: 159]
  |  |  |  |  |  Branch (884:43): [True: 251, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  969|       |				/* Easy way the start of a new guy beyond the lowest */
  970|    251|				goto place_chunk;
  971|    251|			}
  972|    159|			if ((chk->rec.data.fsn == control->fsn_included) ||
  ------------------
  |  Branch (972:8): [True: 0, False: 159]
  ------------------
  973|    159|			    (control->pdapi_started)) {
  ------------------
  |  Branch (973:8): [True: 0, False: 159]
  ------------------
  974|       |				/*
  975|       |				 * Ok this should not happen, if it does
  976|       |				 * we started the pd-api on the higher TSN (since
  977|       |				 * the equals part is a TSN failure it must be that).
  978|       |				 *
  979|       |				 * We are completely hosed in that case since I have
  980|       |				 * no way to recover. This really will only happen
  981|       |				 * if we can get more TSN's higher before the pd-api-point.
  982|       |				 */
  983|      0|				sctp_abort_in_reasm(stcb, control, chk,
  984|      0|						    abort_flag,
  985|      0|						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_4);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_4);
  ------------------
  |  |  772|      0|#define SCTP_LOC_4  0x00000004
  ------------------
  986|       |
  987|      0|				return;
  988|      0|			}
  989|       |			/*
  990|       |			 * Ok we have two firsts and the one we just got
  991|       |			 * is smaller than the one we previously placed.. yuck!
  992|       |			 * We must swap them out.
  993|       |			 */
  994|       |			/* swap the mbufs */
  995|    159|			tdata = control->data;
  996|    159|			control->data = chk->data;
  997|    159|			chk->data = tdata;
  998|       |			/* Save the lengths */
  999|    159|			chk->send_size = control->length;
 1000|       |			/* Recompute length of control and tail pointer */
 1001|    159|			sctp_setup_tail_pointer(control);
 1002|       |			/* Fix the FSN included */
 1003|    159|			tmp = control->fsn_included;
 1004|    159|			control->fsn_included = chk->rec.data.fsn;
 1005|    159|			chk->rec.data.fsn = tmp;
 1006|       |			/* Fix the TSN included */
 1007|    159|			tmp = control->sinfo_tsn;
 1008|    159|			control->sinfo_tsn = chk->rec.data.tsn;
 1009|    159|			chk->rec.data.tsn = tmp;
 1010|       |			/* Fix the PPID included */
 1011|    159|			tmp = control->sinfo_ppid;
 1012|    159|			control->sinfo_ppid = chk->rec.data.ppid;
 1013|    159|			chk->rec.data.ppid = tmp;
 1014|       |			/* Fix tail pointer */
 1015|    159|			goto place_chunk;
 1016|    159|		}
 1017|    512|		control->first_frag_seen = 1;
 1018|    512|		control->fsn_included = chk->rec.data.fsn;
 1019|    512|		control->top_fsn = chk->rec.data.fsn;
 1020|    512|		control->sinfo_tsn = chk->rec.data.tsn;
 1021|    512|		control->sinfo_ppid = chk->rec.data.ppid;
 1022|    512|		control->data = chk->data;
 1023|    512|		sctp_mark_non_revokable(asoc, chk->rec.data.tsn);
 1024|    512|		chk->data = NULL;
 1025|    512|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    512|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    512|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 512]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    512|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 512, False: 0]
  |  |  ------------------
  |  |  149|    512|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    512|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    512|	do {                         \
  |  |  |  |  |  |  113|    512|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 512]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    512|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 512]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    512|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 512, False: 0]
  |  |  ------------------
  |  |  151|    512|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    512|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    512|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 512, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    512|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    512|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    512|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 512]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|    512|	} \
  |  |  |  |  245|    512|}
  |  |  ------------------
  |  |  152|    512|			(_chk)->whoTo = NULL; \
  |  |  153|    512|		} \
  |  |  154|    512|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    512|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 512]
  |  |  ------------------
  |  |  155|    512|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    512|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|    512|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 512]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    512|		} else { \
  |  |  159|    512|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    512|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    512|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    512|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    512|		} \
  |  |  163|    512|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|    512|}
  ------------------
  |  Branch (1025:3): [Folded, False: 512]
  ------------------
 1026|    512|		sctp_setup_tail_pointer(control);
 1027|    512|		return;
 1028|    512|	}
 1029|  1.79k|place_chunk:
 1030|  1.79k|	inserted = 0;
 1031|  4.72k|	TAILQ_FOREACH(at, &control->reasm, sctp_next) {
  ------------------
  |  Branch (1031:2): [True: 4.72k, False: 788]
  ------------------
 1032|  4.72k|		if (SCTP_TSN_GT(at->rec.data.fsn, chk->rec.data.fsn)) {
  ------------------
  |  |  889|  4.72k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.72k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.71k, False: 1.00k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 3.71k]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.72k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.00k, False: 3.71k]
  |  |  |  |  |  Branch (884:43): [True: 1.00k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1033|       |			/*
 1034|       |			 * This one in queue is bigger than the new one, insert
 1035|       |			 * the new one before at.
 1036|       |			 */
 1037|  1.00k|			asoc->size_on_reasm_queue += chk->send_size;
 1038|  1.00k|			sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|  1.00k|#define sctp_ucount_incr(val) { \
  |  |  267|  1.00k|	val++; \
  |  |  268|  1.00k|}
  ------------------
 1039|  1.00k|			inserted = 1;
 1040|  1.00k|			TAILQ_INSERT_BEFORE(at, chk, sctp_next);
  ------------------
  |  Branch (1040:4): [Folded, False: 1.00k]
  ------------------
 1041|  1.00k|			break;
 1042|  3.71k|		} else if (at->rec.data.fsn == chk->rec.data.fsn) {
  ------------------
  |  Branch (1042:14): [True: 0, False: 3.71k]
  ------------------
 1043|       |			/*
 1044|       |			 * They sent a duplicate fsn number. This
 1045|       |			 * really should not happen since the FSN is
 1046|       |			 * a TSN and it should have been dropped earlier.
 1047|       |			 */
 1048|      0|			sctp_abort_in_reasm(stcb, control, chk,
 1049|      0|			                    abort_flag,
 1050|      0|			                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_5);
  ------------------
  |  |  757|      0|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_5);
  ------------------
  |  |  773|      0|#define SCTP_LOC_5  0x00000005
  ------------------
 1051|      0|			return;
 1052|      0|		}
 1053|  4.72k|	}
 1054|  1.79k|	if (inserted == 0) {
  ------------------
  |  Branch (1054:6): [True: 788, False: 1.00k]
  ------------------
 1055|       |		/* Its at the end */
 1056|    788|		asoc->size_on_reasm_queue += chk->send_size;
 1057|    788|		sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|    788|#define sctp_ucount_incr(val) { \
  |  |  267|    788|	val++; \
  |  |  268|    788|}
  ------------------
 1058|    788|		control->top_fsn = chk->rec.data.fsn;
 1059|       |		TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (1059:3): [Folded, False: 788]
  ------------------
 1060|    788|	}
 1061|  1.79k|}
sctp_indata.c:sctp_setup_tail_pointer:
  666|  1.67k|{
  667|  1.67k|	struct mbuf *m, *prev = NULL;
  668|  1.67k|	struct sctp_tcb *stcb;
  669|       |
  670|  1.67k|	stcb = control->stcb;
  671|  1.67k|	control->held_length = 0;
  672|  1.67k|	control->length = 0;
  673|  1.67k|	m = control->data;
  674|  4.01k|	while (m) {
  ------------------
  |  Branch (674:9): [True: 2.33k, False: 1.67k]
  ------------------
  675|  2.33k|		if (SCTP_BUF_LEN(m) == 0) {
  ------------------
  |  |  801|  2.33k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.33k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (675:7): [True: 453, False: 1.88k]
  ------------------
  676|       |			/* Skip mbufs with NO length */
  677|    453|			if (prev == NULL) {
  ------------------
  |  Branch (677:8): [True: 453, False: 0]
  ------------------
  678|       |				/* First one */
  679|    453|				control->data = sctp_m_free(m);
  ------------------
  |  |   51|    453|#define sctp_m_free m_free
  ------------------
  680|    453|				m = control->data;
  681|    453|			} else {
  682|      0|				SCTP_BUF_NEXT(prev) = sctp_m_free(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              				SCTP_BUF_NEXT(prev) = sctp_m_free(m);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
  683|      0|				m = SCTP_BUF_NEXT(prev);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  684|      0|			}
  685|    453|			if (m == NULL) {
  ------------------
  |  Branch (685:8): [True: 0, False: 453]
  ------------------
  686|      0|				control->tail_mbuf = prev;
  687|      0|			}
  688|    453|			continue;
  689|    453|		}
  690|  1.88k|		prev = m;
  691|  1.88k|		atomic_add_int(&control->length, SCTP_BUF_LEN(m));
  ------------------
  |  |   94|  1.88k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  692|  1.88k|		if (control->on_read_q) {
  ------------------
  |  Branch (692:7): [True: 0, False: 1.88k]
  ------------------
  693|       |			/*
  694|       |			 * On read queue so we must increment the
  695|       |			 * SB stuff, we assume caller has done any locks of SB.
  696|       |			 */
  697|      0|			sctp_sballoc(stcb, &stcb->sctp_socket->so_rcv, m);
  ------------------
  |  |  256|      0|#define sctp_sballoc(stcb, sb, m) { \
  |  |  257|      0|	SCTP_SB_INCR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  969|      0|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|      0|{						\
  |  |  |  |  971|      0|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|      0|}
  |  |  ------------------
  |  |  258|      0|	atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  259|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (259:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  260|      0|		atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  261|      0|		atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  262|      0|	} \
  |  |  263|      0|}
  ------------------
  698|      0|		}
  699|  1.88k|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  1.88k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  1.88k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  700|  1.88k|	}
  701|  1.67k|	if (prev) {
  ------------------
  |  Branch (701:6): [True: 1.67k, False: 0]
  ------------------
  702|  1.67k|		control->tail_mbuf = prev;
  703|  1.67k|	}
  704|  1.67k|}
sctp_indata.c:sctp_add_chk_to_control:
 1291|    456|{
 1292|       |	/*
 1293|       |	 * Given a control and a chunk, merge the
 1294|       |	 * data from the chk onto the control and free
 1295|       |	 * up the chunk resources.
 1296|       |	 */
 1297|    456|	uint32_t added = 0;
 1298|    456|	bool i_locked = false;
 1299|       |
 1300|    456|	if (control->on_read_q) {
  ------------------
  |  Branch (1300:6): [True: 0, False: 456]
  ------------------
 1301|      0|		if (hold_rlock == 0) {
  ------------------
  |  Branch (1301:7): [True: 0, False: 0]
  ------------------
 1302|       |			/* Its being pd-api'd so we must do some locks. */
 1303|      0|			SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1304|      0|			i_locked = true;
 1305|      0|		}
 1306|      0|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ) {
  ------------------
  |  |  548|      0|#define SCTP_PCB_FLAGS_SOCKET_CANT_READ	0x40000000
  ------------------
  |  Branch (1306:7): [True: 0, False: 0]
  ------------------
 1307|      0|			goto out;
 1308|      0|		}
 1309|      0|	}
 1310|    456|	if (control->data == NULL) {
  ------------------
  |  Branch (1310:6): [True: 0, False: 456]
  ------------------
 1311|      0|		control->data = chk->data;
 1312|      0|		sctp_setup_tail_pointer(control);
 1313|    456|	} else {
 1314|    456|		sctp_add_to_tail_pointer(control, chk->data, &added);
 1315|    456|	}
 1316|    456|	control->fsn_included = chk->rec.data.fsn;
 1317|    456|	asoc->size_on_reasm_queue -= chk->send_size;
 1318|    456|	sctp_ucount_decr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  270|    456|#define sctp_ucount_decr(val) { \
  |  |  271|    456|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 456, False: 0]
  |  |  ------------------
  |  |  272|    456|		val--; \
  |  |  273|    456|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|    456|}
  ------------------
 1319|    456|	sctp_mark_non_revokable(asoc, chk->rec.data.tsn);
 1320|    456|	chk->data = NULL;
 1321|    456|	if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|    456|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1321:6): [True: 154, False: 302]
  ------------------
 1322|    154|		control->first_frag_seen = 1;
 1323|    154|		control->sinfo_tsn = chk->rec.data.tsn;
 1324|    154|		control->sinfo_ppid = chk->rec.data.ppid;
 1325|    154|	}
 1326|    456|	if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|    456|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1326:6): [True: 211, False: 245]
  ------------------
 1327|       |		/* Its complete */
 1328|    211|		if ((control->on_strm_q) && (control->on_read_q)) {
  ------------------
  |  Branch (1328:7): [True: 211, False: 0]
  |  Branch (1328:31): [True: 0, False: 211]
  ------------------
 1329|      0|			if (control->pdapi_started) {
  ------------------
  |  Branch (1329:8): [True: 0, False: 0]
  ------------------
 1330|      0|				control->pdapi_started = 0;
 1331|      0|				strm->pd_api_started = 0;
 1332|      0|			}
 1333|      0|			if (control->on_strm_q == SCTP_ON_UNORDERED) {
  ------------------
  |  |  554|      0|#define SCTP_ON_UNORDERED 2
  ------------------
  |  Branch (1333:8): [True: 0, False: 0]
  ------------------
 1334|       |				/* Unordered */
 1335|      0|				TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (1335:5): [True: 0, False: 0]
  |  Branch (1335:5): [Folded, False: 0]
  ------------------
 1336|      0|				control->on_strm_q = 0;
 1337|      0|			} else if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|      0|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (1337:15): [True: 0, False: 0]
  ------------------
 1338|       |				/* Ordered */
 1339|      0|				TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (1339:5): [True: 0, False: 0]
  |  Branch (1339:5): [Folded, False: 0]
  ------------------
 1340|       |				/*
 1341|       |				 * Don't need to decrement size_on_all_streams,
 1342|       |				 * since control is on the read queue.
 1343|       |				 */
 1344|      0|				sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|      0|#define sctp_ucount_decr(val) { \
  |  |  271|      0|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  272|      0|		val--; \
  |  |  273|      0|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|      0|}
  ------------------
 1345|      0|				control->on_strm_q = 0;
 1346|      0|#ifdef INVARIANTS
 1347|      0|			} else if (control->on_strm_q) {
  ------------------
  |  Branch (1347:15): [True: 0, False: 0]
  ------------------
 1348|      0|				panic("Unknown state on ctrl: %p on_strm_q: %d", control,
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1349|      0|				      control->on_strm_q);
 1350|      0|#endif
 1351|      0|			}
 1352|      0|		}
 1353|    211|		control->end_added = 1;
 1354|    211|		control->last_frag_seen = 1;
 1355|    211|	}
 1356|    456|out:
 1357|    456|	if (i_locked) {
  ------------------
  |  Branch (1357:6): [True: 0, False: 456]
  ------------------
 1358|      0|		SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1359|      0|	}
 1360|    456|	sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    456|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    456|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 456]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    456|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 456, False: 0]
  |  |  ------------------
  |  |  149|    456|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    456|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    456|	do {                         \
  |  |  |  |  |  |  113|    456|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 456]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    456|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 456]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    456|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 456, False: 0]
  |  |  ------------------
  |  |  151|    456|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    456|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    456|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 456, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    456|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    456|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    456|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 456]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|    456|	} \
  |  |  |  |  245|    456|}
  |  |  ------------------
  |  |  152|    456|			(_chk)->whoTo = NULL; \
  |  |  153|    456|		} \
  |  |  154|    456|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    456|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 24, False: 432]
  |  |  ------------------
  |  |  155|    456|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    432|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|    432|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 432]
  |  |  ------------------
  |  |  156|     24|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|     24|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     24|	free(element);  \
  |  |  |  |  709|     24|}
  |  |  ------------------
  |  |  157|     24|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|     24|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     24|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    432|		} else { \
  |  |  159|    432|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    432|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    432|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    432|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    432|		} \
  |  |  163|    456|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|    456|}
  ------------------
  |  Branch (1360:2): [Folded, False: 432]
  ------------------
 1361|    456|	return (added);
 1362|    456|}
sctp_indata.c:sctp_add_to_tail_pointer:
  708|    456|{
  709|    456|	struct mbuf *prev=NULL;
  710|    456|	struct sctp_tcb *stcb;
  711|       |
  712|    456|	stcb = control->stcb;
  713|    456|	if (stcb == NULL) {
  ------------------
  |  Branch (713:6): [True: 0, False: 456]
  ------------------
  714|      0|#ifdef INVARIANTS
  715|      0|		panic("Control broken");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  716|       |#else
  717|       |		return;
  718|       |#endif
  719|      0|	}
  720|    456|	if (control->tail_mbuf == NULL) {
  ------------------
  |  Branch (720:6): [True: 0, False: 456]
  ------------------
  721|       |		/* TSNH */
  722|      0|		sctp_m_freem(control->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  723|      0|		control->data = m;
  724|      0|		sctp_setup_tail_pointer(control);
  725|      0|		return;
  726|      0|	}
  727|    456|	control->tail_mbuf->m_next = m;
  ------------------
  |  |  217|    456|#define	m_next		m_hdr.mh_next
  ------------------
  728|  1.09k|	while (m) {
  ------------------
  |  Branch (728:9): [True: 643, False: 456]
  ------------------
  729|    643|		if (SCTP_BUF_LEN(m) == 0) {
  ------------------
  |  |  801|    643|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    643|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (729:7): [True: 143, False: 500]
  ------------------
  730|       |			/* Skip mbufs with NO length */
  731|    143|			if (prev == NULL) {
  ------------------
  |  Branch (731:8): [True: 143, False: 0]
  ------------------
  732|       |				/* First one */
  733|    143|				control->tail_mbuf->m_next = sctp_m_free(m);
  ------------------
  |  |  217|    143|#define	m_next		m_hdr.mh_next
  ------------------
              				control->tail_mbuf->m_next = sctp_m_free(m);
  ------------------
  |  |   51|    143|#define sctp_m_free m_free
  ------------------
  734|    143|				m = control->tail_mbuf->m_next;
  ------------------
  |  |  217|    143|#define	m_next		m_hdr.mh_next
  ------------------
  735|    143|			} else {
  736|      0|				SCTP_BUF_NEXT(prev) = sctp_m_free(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              				SCTP_BUF_NEXT(prev) = sctp_m_free(m);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
  737|      0|				m = SCTP_BUF_NEXT(prev);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  738|      0|			}
  739|    143|			if (m == NULL) {
  ------------------
  |  Branch (739:8): [True: 0, False: 143]
  ------------------
  740|      0|				control->tail_mbuf = prev;
  741|      0|			}
  742|    143|			continue;
  743|    143|		}
  744|    500|		prev = m;
  745|    500|		if (control->on_read_q) {
  ------------------
  |  Branch (745:7): [True: 0, False: 500]
  ------------------
  746|       |			/*
  747|       |			 * On read queue so we must increment the
  748|       |			 * SB stuff, we assume caller has done any locks of SB.
  749|       |			 */
  750|      0|			sctp_sballoc(stcb, &stcb->sctp_socket->so_rcv, m);
  ------------------
  |  |  256|      0|#define sctp_sballoc(stcb, sb, m) { \
  |  |  257|      0|	SCTP_SB_INCR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  969|      0|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|      0|{						\
  |  |  |  |  971|      0|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|      0|}
  |  |  ------------------
  |  |  258|      0|	atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  259|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (259:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  260|      0|		atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  261|      0|		atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  262|      0|	} \
  |  |  263|      0|}
  ------------------
  751|      0|		}
  752|    500|		*added += SCTP_BUF_LEN(m);
  ------------------
  |  |  801|    500|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    500|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  753|    500|		atomic_add_int(&control->length, SCTP_BUF_LEN(m));
  ------------------
  |  |   94|    500|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  754|    500|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|    500|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    500|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  755|    500|	}
  756|    456|	if (prev) {
  ------------------
  |  Branch (756:6): [True: 456, False: 0]
  ------------------
  757|    456|		control->tail_mbuf = prev;
  758|    456|	}
  759|    456|}
sctp_indata.c:sctp_deliver_reasm_check:
 1066|  4.66k|{
 1067|       |	/*
 1068|       |	 * Given a stream, strm, see if any of
 1069|       |	 * the SSN's on it that are fragmented
 1070|       |	 * are ready to deliver. If so go ahead
 1071|       |	 * and place them on the read queue. In
 1072|       |	 * so placing if we have hit the end, then
 1073|       |	 * we need to remove them from the stream's queue.
 1074|       |	 */
 1075|  4.66k|	struct sctp_queued_to_read *control, *nctl = NULL;
 1076|  4.66k|	uint32_t next_to_del;
 1077|  4.66k|	uint32_t pd_point;
 1078|  4.66k|	int ret = 0;
 1079|       |
 1080|  4.66k|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (1080:6): [True: 4.66k, False: 0]
  ------------------
 1081|  4.66k|		pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
  ------------------
  |  |   66|  4.66k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 4.66k]
  |  |  ------------------
  ------------------
 1082|  4.66k|			       stcb->sctp_ep->partial_delivery_point);
 1083|  4.66k|	} else {
 1084|      0|		pd_point = stcb->sctp_ep->partial_delivery_point;
 1085|      0|	}
 1086|  4.66k|	control = TAILQ_FIRST(&strm->uno_inqueue);
 1087|       |
 1088|  4.66k|	if ((control != NULL) &&
  ------------------
  |  Branch (1088:6): [True: 3.23k, False: 1.42k]
  ------------------
 1089|  3.23k|	    (asoc->idata_supported == 0)) {
  ------------------
  |  Branch (1089:6): [True: 2.36k, False: 872]
  ------------------
 1090|       |		/* Special handling needed for "old" data format */
 1091|  2.36k|		if (sctp_handle_old_unordered_data(stcb, asoc, strm, control, pd_point, inp_read_lock_held)) {
  ------------------
  |  Branch (1091:7): [True: 2.36k, False: 0]
  ------------------
 1092|  2.36k|			goto done_un;
 1093|  2.36k|		}
 1094|  2.36k|	}
 1095|  2.29k|	if (strm->pd_api_started) {
  ------------------
  |  Branch (1095:6): [True: 0, False: 2.29k]
  ------------------
 1096|       |		/* Can't add more */
 1097|      0|		return (0);
 1098|      0|	}
 1099|  5.88k|	while (control) {
  ------------------
  |  Branch (1099:9): [True: 3.58k, False: 2.29k]
  ------------------
 1100|  3.58k|		SCTPDBG(SCTP_DEBUG_XXX, "Looking at control: %p e(%d) ssn: %u top_fsn: %u inc_fsn: %u -uo\n",
 1101|  3.58k|			control, control->end_added, control->mid, control->top_fsn, control->fsn_included);
 1102|  3.58k|		nctl = TAILQ_NEXT(control, next_instrm);
 1103|  3.58k|		if (control->end_added) {
  ------------------
  |  Branch (1103:7): [True: 17, False: 3.56k]
  ------------------
 1104|       |			/* We just put the last bit on */
 1105|     17|			if (control->on_strm_q) {
  ------------------
  |  Branch (1105:8): [True: 17, False: 0]
  ------------------
 1106|     17|#ifdef INVARIANTS
 1107|     17|				if (control->on_strm_q != SCTP_ON_UNORDERED) {
  ------------------
  |  |  554|     17|#define SCTP_ON_UNORDERED 2
  ------------------
  |  Branch (1107:9): [True: 0, False: 17]
  ------------------
 1108|      0|					panic("Huh control: %p on_q: %d -- not unordered?",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1109|      0|					      control, control->on_strm_q);
 1110|      0|				}
 1111|     17|#endif
 1112|     17|				SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
  ------------------
  |  | 1128|     17|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     17|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     17|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     17|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1113|     17|				TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (1113:5): [True: 7, False: 10]
  |  Branch (1113:5): [Folded, False: 17]
  ------------------
 1114|     17|				if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (1114:9): [True: 17, False: 0]
  ------------------
 1115|     17|					asoc->size_on_all_streams -= control->length;
 1116|     17|				} else {
 1117|      0|#ifdef INVARIANTS
 1118|      0|					panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1119|       |#else
 1120|       |					asoc->size_on_all_streams = 0;
 1121|       |#endif
 1122|      0|				}
 1123|     17|				sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|     17|#define sctp_ucount_decr(val) { \
  |  |  271|     17|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 17, False: 0]
  |  |  ------------------
  |  |  272|     17|		val--; \
  |  |  273|     17|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|     17|}
  ------------------
 1124|     17|				control->on_strm_q = 0;
 1125|     17|			}
 1126|     17|			if (control->on_read_q == 0) {
  ------------------
  |  Branch (1126:8): [True: 17, False: 0]
  ------------------
 1127|     17|				sctp_add_to_readq(stcb->sctp_ep, stcb,
 1128|     17|						  control,
 1129|     17|						  &stcb->sctp_socket->so_rcv, control->end_added,
 1130|     17|						  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     17|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1131|     17|			}
 1132|  3.56k|		} else {
 1133|       |			/* Can we do a PD-API for this un-ordered guy? */
 1134|  3.56k|			if ((control->length >= pd_point) && (strm->pd_api_started == 0)) {
  ------------------
  |  Branch (1134:8): [True: 0, False: 3.56k]
  |  Branch (1134:41): [True: 0, False: 0]
  ------------------
 1135|      0|				strm->pd_api_started = 1;
 1136|      0|				control->pdapi_started = 1;
 1137|      0|				sctp_add_to_readq(stcb->sctp_ep, stcb,
 1138|      0|						  control,
 1139|      0|						  &stcb->sctp_socket->so_rcv, control->end_added,
 1140|      0|						  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1141|       |
 1142|      0|				break;
 1143|      0|			}
 1144|  3.56k|		}
 1145|  3.58k|		control = nctl;
 1146|  3.58k|	}
 1147|  4.66k|done_un:
 1148|  4.66k|	control = TAILQ_FIRST(&strm->inqueue);
 1149|  4.66k|	if (strm->pd_api_started) {
  ------------------
  |  Branch (1149:6): [True: 0, False: 4.66k]
  ------------------
 1150|       |		/* Can't add more */
 1151|      0|		return (0);
 1152|      0|	}
 1153|  4.66k|	if (control == NULL) {
  ------------------
  |  Branch (1153:6): [True: 2.17k, False: 2.48k]
  ------------------
 1154|  2.17k|		return (ret);
 1155|  2.17k|	}
 1156|  2.48k|	if (SCTP_MID_EQ(asoc->idata_supported, strm->last_mid_delivered, control->mid)) {
  ------------------
  |  |  893|  2.48k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 191, False: 2.29k]
  |  |  |  Branch (893:31): [True: 1.04k, False: 1.44k]
  |  |  ------------------
  ------------------
 1157|       |		/* Ok the guy at the top was being partially delivered
 1158|       |		 * completed, so we remove it. Note
 1159|       |		 * the pd_api flag was taken off when the
 1160|       |		 * chunk was merged on in sctp_queue_data_for_reasm below.
 1161|       |		 */
 1162|    191|		nctl = TAILQ_NEXT(control, next_instrm);
 1163|    191|		SCTPDBG(SCTP_DEBUG_XXX,
 1164|    191|			"Looking at control: %p e(%d) ssn: %u top_fsn: %u inc_fsn: %u (lastdel: %u)- o\n",
 1165|    191|			control, control->end_added, control->mid,
 1166|    191|			control->top_fsn, control->fsn_included,
 1167|    191|			strm->last_mid_delivered);
 1168|    191|		if (control->end_added) {
  ------------------
  |  Branch (1168:7): [True: 34, False: 157]
  ------------------
 1169|     34|			if (control->on_strm_q) {
  ------------------
  |  Branch (1169:8): [True: 34, False: 0]
  ------------------
 1170|     34|#ifdef INVARIANTS
 1171|     34|				if (control->on_strm_q != SCTP_ON_ORDERED) {
  ------------------
  |  |  553|     34|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (1171:9): [True: 0, False: 34]
  ------------------
 1172|      0|					panic("Huh control: %p on_q: %d -- not ordered?",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1173|      0|					      control, control->on_strm_q);
 1174|      0|				}
 1175|     34|#endif
 1176|     34|				SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
  ------------------
  |  | 1128|     34|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     34|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     34|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     34|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1177|     34|				TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (1177:5): [True: 21, False: 13]
  |  Branch (1177:5): [Folded, False: 34]
  ------------------
 1178|     34|				if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (1178:9): [True: 34, False: 0]
  ------------------
 1179|     34|					asoc->size_on_all_streams -= control->length;
 1180|     34|				} else {
 1181|      0|#ifdef INVARIANTS
 1182|      0|					panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1183|       |#else
 1184|       |					asoc->size_on_all_streams = 0;
 1185|       |#endif
 1186|      0|				}
 1187|     34|				sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|     34|#define sctp_ucount_decr(val) { \
  |  |  271|     34|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 34, False: 0]
  |  |  ------------------
  |  |  272|     34|		val--; \
  |  |  273|     34|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|     34|}
  ------------------
 1188|     34|				control->on_strm_q = 0;
 1189|     34|			}
 1190|     34|			if (strm->pd_api_started && control->pdapi_started) {
  ------------------
  |  Branch (1190:8): [True: 0, False: 34]
  |  Branch (1190:32): [True: 0, False: 0]
  ------------------
 1191|      0|				control->pdapi_started = 0;
 1192|      0|				strm->pd_api_started = 0;
 1193|      0|			}
 1194|     34|			if (control->on_read_q == 0) {
  ------------------
  |  Branch (1194:8): [True: 34, False: 0]
  ------------------
 1195|     34|				sctp_add_to_readq(stcb->sctp_ep, stcb,
 1196|     34|						  control,
 1197|     34|						  &stcb->sctp_socket->so_rcv, control->end_added,
 1198|     34|						  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     34|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1199|     34|			}
 1200|     34|			control = nctl;
 1201|     34|		}
 1202|    191|	}
 1203|  2.48k|	if (strm->pd_api_started) {
  ------------------
  |  Branch (1203:6): [True: 0, False: 2.48k]
  ------------------
 1204|       |		/* Can't add more must have gotten an un-ordered above being partially delivered. */
 1205|      0|		return (0);
 1206|      0|	}
 1207|  2.49k|deliver_more:
 1208|  2.49k|	next_to_del = strm->last_mid_delivered + 1;
 1209|  2.49k|	if (control) {
  ------------------
  |  Branch (1209:6): [True: 2.47k, False: 20]
  ------------------
 1210|  2.47k|		SCTPDBG(SCTP_DEBUG_XXX,
 1211|  2.47k|			"Looking at control: %p e(%d) ssn: %u top_fsn: %u inc_fsn: %u (nxtdel: %u)- o\n",
 1212|  2.47k|			control, control->end_added, control->mid, control->top_fsn, control->fsn_included,
 1213|  2.47k|			next_to_del);
 1214|  2.47k|		nctl = TAILQ_NEXT(control, next_instrm);
 1215|  2.47k|		if (SCTP_MID_EQ(asoc->idata_supported, control->mid, next_to_del) &&
  ------------------
  |  |  893|  4.95k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 967, False: 1.51k]
  |  |  |  Branch (893:31): [True: 1.04k, False: 1.43k]
  |  |  ------------------
  ------------------
 1216|    967|		    (control->first_frag_seen)) {
  ------------------
  |  Branch (1216:7): [True: 386, False: 581]
  ------------------
 1217|    386|			int done;
 1218|       |
 1219|       |			/* Ok we can deliver it onto the stream. */
 1220|    386|			if (control->end_added) {
  ------------------
  |  Branch (1220:8): [True: 10, False: 376]
  ------------------
 1221|       |				/* We are done with it afterwards */
 1222|     10|				if (control->on_strm_q) {
  ------------------
  |  Branch (1222:9): [True: 10, False: 0]
  ------------------
 1223|     10|#ifdef INVARIANTS
 1224|     10|					if (control->on_strm_q != SCTP_ON_ORDERED) {
  ------------------
  |  |  553|     10|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (1224:10): [True: 0, False: 10]
  ------------------
 1225|      0|						panic("Huh control: %p on_q: %d -- not ordered?",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1226|      0|						      control, control->on_strm_q);
 1227|      0|					}
 1228|     10|#endif
 1229|     10|					SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
  ------------------
  |  | 1128|     10|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     10|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     10|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     10|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1230|     10|					TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (1230:6): [True: 3, False: 7]
  |  Branch (1230:6): [Folded, False: 10]
  ------------------
 1231|     10|					if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (1231:10): [True: 10, False: 0]
  ------------------
 1232|     10|						asoc->size_on_all_streams -= control->length;
 1233|     10|					} else {
 1234|      0|#ifdef INVARIANTS
 1235|      0|						panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1236|       |#else
 1237|       |						asoc->size_on_all_streams = 0;
 1238|       |#endif
 1239|      0|					}
 1240|     10|					sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|     10|#define sctp_ucount_decr(val) { \
  |  |  271|     10|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 10, False: 0]
  |  |  ------------------
  |  |  272|     10|		val--; \
  |  |  273|     10|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|     10|}
  ------------------
 1241|     10|					control->on_strm_q = 0;
 1242|     10|				}
 1243|     10|				ret++;
 1244|     10|			}
 1245|    386|			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|    386|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|    386|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (1245:8): [True: 3, False: 383]
  ------------------
 1246|       |				/* A singleton now slipping through - mark it non-revokable too */
 1247|      3|				sctp_mark_non_revokable(asoc, control->sinfo_tsn);
 1248|    383|			} else if (control->end_added == 0) {
  ------------------
  |  Branch (1248:15): [True: 376, False: 7]
  ------------------
 1249|       |				/* Check if we can defer adding until its all there */
 1250|    376|				if ((control->length < pd_point) || (strm->pd_api_started)) {
  ------------------
  |  Branch (1250:9): [True: 376, False: 0]
  |  Branch (1250:41): [True: 0, False: 0]
  ------------------
 1251|       |					/* Don't need it or cannot add more (one being delivered that way) */
 1252|    376|					goto out;
 1253|    376|				}
 1254|    376|			}
 1255|     10|			done = (control->end_added) && (control->last_frag_seen);
  ------------------
  |  Branch (1255:11): [True: 10, False: 0]
  |  Branch (1255:35): [True: 10, False: 0]
  ------------------
 1256|     10|			if (control->on_read_q == 0) {
  ------------------
  |  Branch (1256:8): [True: 10, False: 0]
  ------------------
 1257|     10|				if (!done) {
  ------------------
  |  Branch (1257:9): [True: 0, False: 10]
  ------------------
 1258|      0|					if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (1258:10): [True: 0, False: 0]
  ------------------
 1259|      0|						asoc->size_on_all_streams -= control->length;
 1260|      0|					} else {
 1261|      0|#ifdef INVARIANTS
 1262|      0|						panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1263|       |#else
 1264|       |						asoc->size_on_all_streams = 0;
 1265|       |#endif
 1266|      0|					}
 1267|      0|					strm->pd_api_started = 1;
 1268|      0|					control->pdapi_started = 1;
 1269|      0|				}
 1270|     10|				sctp_add_to_readq(stcb->sctp_ep, stcb,
 1271|     10|						  control,
 1272|     10|						  &stcb->sctp_socket->so_rcv, control->end_added,
 1273|     10|						  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     10|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1274|     10|			}
 1275|     10|			strm->last_mid_delivered = next_to_del;
 1276|     10|			if (done) {
  ------------------
  |  Branch (1276:8): [True: 10, False: 0]
  ------------------
 1277|     10|				control = nctl;
 1278|     10|				goto deliver_more;
 1279|     10|			}
 1280|     10|		}
 1281|  2.47k|	}
 1282|  2.48k|out:
 1283|  2.48k|	return (ret);
 1284|  2.49k|}
sctp_indata.c:sctp_handle_old_unordered_data:
  791|  2.36k|{
  792|       |	/* Special handling for the old un-ordered data chunk.
  793|       |	 * All the chunks/TSN's go to mid 0. So
  794|       |	 * we have to do the old style watching to see
  795|       |	 * if we have it all. If you return one, no other
  796|       |	 * control entries on the un-ordered queue will
  797|       |	 * be looked at. In theory there should be no others
  798|       |	 * entries in reality, unless the guy is sending both
  799|       |	 * unordered NDATA and unordered DATA...
  800|       |	 */
  801|  2.36k|	struct sctp_tmit_chunk *chk, *lchk, *tchk;
  802|  2.36k|	uint32_t fsn;
  803|  2.36k|	struct sctp_queued_to_read *nc;
  804|  2.36k|	int cnt_added;
  805|       |
  806|  2.36k|	if (control->first_frag_seen == 0) {
  ------------------
  |  Branch (806:6): [True: 893, False: 1.47k]
  ------------------
  807|       |		/* Nothing we can do, we have not seen the first piece yet */
  808|    893|		return (1);
  809|    893|	}
  810|       |	/* Collapse any we can */
  811|  1.47k|	cnt_added = 0;
  812|  1.56k|restart:
  813|  1.56k|	fsn = control->fsn_included + 1;
  814|       |	/* Now what can we add? */
  815|  1.56k|	TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, lchk) {
  ------------------
  |  | 1129|  1.56k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  1.77k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 1.26k, False: 508]
  |  |  |  Branch (1130:24): [True: 1.26k, False: 0]
  |  |  ------------------
  |  | 1131|  1.56k|              (var) = (tvar))
  ------------------
  816|  1.26k|		if (chk->rec.data.fsn == fsn) {
  ------------------
  |  Branch (816:7): [True: 402, False: 866]
  ------------------
  817|       |			/* Ok lets add it */
  818|    402|			sctp_alloc_a_readq(stcb, nc);
  ------------------
  |  |  118|    402|#define sctp_alloc_a_readq(_stcb, _readq) { \
  |  |  119|    402|	(_readq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_readq), struct sctp_queued_to_read); \
  |  |  ------------------
  |  |  |  |  703|    402|        (type *)malloc(zone);
  |  |  ------------------
  |  |  120|    402|	if ((_readq)) { \
  |  |  ------------------
  |  |  |  Branch (120:6): [True: 402, False: 0]
  |  |  ------------------
  |  |  121|    402|	     SCTP_INCR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  682|    402|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    402|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  122|    402|	} \
  |  |  123|    402|}
  ------------------
  819|    402|			if (nc == NULL) {
  ------------------
  |  Branch (819:8): [True: 0, False: 402]
  ------------------
  820|      0|				break;
  821|      0|			}
  822|    402|			memset(nc, 0, sizeof(struct sctp_queued_to_read));
  823|    402|			TAILQ_REMOVE(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (823:4): [True: 271, False: 131]
  |  Branch (823:4): [Folded, False: 402]
  ------------------
  824|    402|			sctp_add_chk_to_control(control, strm, stcb, asoc, chk, inp_read_lock_held);
  825|    402|			fsn++;
  826|    402|			cnt_added++;
  827|    402|			chk = NULL;
  828|    402|			if (control->end_added) {
  ------------------
  |  Branch (828:8): [True: 187, False: 215]
  ------------------
  829|       |				/* We are done */
  830|    187|				if (!TAILQ_EMPTY(&control->reasm)) {
  ------------------
  |  Branch (830:9): [True: 149, False: 38]
  ------------------
  831|       |					/*
  832|       |					 * Ok we have to move anything left on
  833|       |					 * the control queue to a new control.
  834|       |					 */
  835|    149|					sctp_build_readq_entry_from_ctl(nc, control);
  836|    149|					tchk = TAILQ_FIRST(&control->reasm);
  837|    149|					if (tchk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|    149|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (837:10): [True: 128, False: 21]
  ------------------
  838|    128|						TAILQ_REMOVE(&control->reasm, tchk, sctp_next);
  ------------------
  |  Branch (838:7): [True: 87, False: 41]
  |  Branch (838:7): [Folded, False: 128]
  ------------------
  839|    128|						if (asoc->size_on_reasm_queue >= tchk->send_size) {
  ------------------
  |  Branch (839:11): [True: 128, False: 0]
  ------------------
  840|    128|							asoc->size_on_reasm_queue -= tchk->send_size;
  841|    128|						} else {
  842|      0|#ifdef INVARIANTS
  843|      0|						panic("size_on_reasm_queue = %u smaller than chunk length %u", asoc->size_on_reasm_queue, tchk->send_size);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  844|       |#else
  845|       |						asoc->size_on_reasm_queue = 0;
  846|       |#endif
  847|      0|						}
  848|    128|						sctp_ucount_decr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  270|    128|#define sctp_ucount_decr(val) { \
  |  |  271|    128|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 128, False: 0]
  |  |  ------------------
  |  |  272|    128|		val--; \
  |  |  273|    128|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|    128|}
  ------------------
  849|    128|						nc->first_frag_seen = 1;
  850|    128|						nc->fsn_included = tchk->rec.data.fsn;
  851|    128|						nc->data = tchk->data;
  852|    128|						nc->sinfo_ppid = tchk->rec.data.ppid;
  853|    128|						nc->sinfo_tsn = tchk->rec.data.tsn;
  854|    128|						sctp_mark_non_revokable(asoc, tchk->rec.data.tsn);
  855|    128|						tchk->data = NULL;
  856|    128|						sctp_free_a_chunk(stcb, tchk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    128|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    128|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 128]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    128|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 128, False: 0]
  |  |  ------------------
  |  |  149|    128|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    128|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    128|	do {                         \
  |  |  |  |  |  |  113|    128|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 128]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    128|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 128]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    128|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 128, False: 0]
  |  |  ------------------
  |  |  151|    128|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    128|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    128|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    128|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    128|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    128|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 128]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|    128|	} \
  |  |  |  |  245|    128|}
  |  |  ------------------
  |  |  152|    128|			(_chk)->whoTo = NULL; \
  |  |  153|    128|		} \
  |  |  154|    128|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    128|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 13, False: 115]
  |  |  ------------------
  |  |  155|    128|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    115|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|    115|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 115]
  |  |  ------------------
  |  |  156|     13|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|     13|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     13|	free(element);  \
  |  |  |  |  709|     13|}
  |  |  ------------------
  |  |  157|     13|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|     13|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     13|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    115|		} else { \
  |  |  159|    115|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    115|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    115|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    115|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    115|		} \
  |  |  163|    128|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|    128|}
  ------------------
  |  Branch (856:7): [Folded, False: 115]
  ------------------
  857|    128|						sctp_setup_tail_pointer(nc);
  858|    128|						tchk = TAILQ_FIRST(&control->reasm);
  859|    128|					}
  860|       |					/* Spin the rest onto the queue */
  861|    610|					while (tchk) {
  ------------------
  |  Branch (861:13): [True: 461, False: 149]
  ------------------
  862|    461|						TAILQ_REMOVE(&control->reasm, tchk, sctp_next);
  ------------------
  |  Branch (862:7): [True: 353, False: 108]
  |  Branch (862:7): [Folded, False: 461]
  ------------------
  863|    461|						TAILQ_INSERT_TAIL(&nc->reasm, tchk, sctp_next);
  ------------------
  |  Branch (863:7): [Folded, False: 461]
  ------------------
  864|    461|						tchk = TAILQ_FIRST(&control->reasm);
  865|    461|					}
  866|       |					/* Now lets add it to the queue after removing control */
  867|    149|					TAILQ_INSERT_TAIL(&strm->uno_inqueue, nc, next_instrm);
  ------------------
  |  Branch (867:6): [Folded, False: 149]
  ------------------
  868|    149|					nc->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    149|#define SCTP_ON_UNORDERED 2
  ------------------
  869|    149|					if (control->on_strm_q) {
  ------------------
  |  Branch (869:10): [True: 149, False: 0]
  ------------------
  870|    149|						TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (870:7): [True: 149, False: 0]
  |  Branch (870:7): [Folded, False: 149]
  ------------------
  871|    149|						control->on_strm_q = 0;
  872|    149|					}
  873|    149|				}
  874|    187|				if (control->pdapi_started) {
  ------------------
  |  Branch (874:9): [True: 0, False: 187]
  ------------------
  875|      0|					strm->pd_api_started = 0;
  876|      0|					control->pdapi_started = 0;
  877|      0|				}
  878|    187|				if (control->on_strm_q) {
  ------------------
  |  Branch (878:9): [True: 38, False: 149]
  ------------------
  879|     38|					TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (879:6): [True: 0, False: 38]
  |  Branch (879:6): [Folded, False: 38]
  ------------------
  880|     38|					control->on_strm_q = 0;
  881|     38|					SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
  ------------------
  |  | 1128|     38|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     38|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     38|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     38|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  882|     38|				}
  883|    187|				if (control->on_read_q == 0) {
  ------------------
  |  Branch (883:9): [True: 187, False: 0]
  ------------------
  884|    187|					sctp_add_to_readq(stcb->sctp_ep, stcb, control,
  885|    187|							  &stcb->sctp_socket->so_rcv, control->end_added,
  886|    187|							  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    187|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  887|    187|#if defined(__Userspace__)
  888|    187|				} else {
  889|      0|					sctp_invoke_recv_callback(stcb->sctp_ep, stcb, control, inp_read_lock_held);
  890|      0|#endif
  891|      0|				}
  892|    187|				sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    187|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  893|    187|				if ((nc->first_frag_seen) && !TAILQ_EMPTY(&nc->reasm)) {
  ------------------
  |  Branch (893:9): [True: 128, False: 59]
  |  Branch (893:34): [True: 87, False: 41]
  ------------------
  894|       |					/* Switch to the new guy and continue */
  895|     87|					control = nc;
  896|     87|					goto restart;
  897|    100|				} else {
  898|    100|					if (nc->on_strm_q == 0) {
  ------------------
  |  Branch (898:10): [True: 38, False: 62]
  ------------------
  899|     38|						sctp_free_a_readq(stcb, nc);
  ------------------
  |  |  105|     38|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|     38|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 38]
  |  |  ------------------
  |  |  107|     38|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|     38|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|     38|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     38|	free(element);  \
  |  |  |  |  709|     38|}
  |  |  ------------------
  |  |  109|     38|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|     38|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     38|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|     38|}
  ------------------
  900|     38|					}
  901|    100|				}
  902|    100|				return (1);
  903|    215|			} else {
  904|    215|				sctp_free_a_readq(stcb, nc);
  ------------------
  |  |  105|    215|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|    215|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 215]
  |  |  ------------------
  |  |  107|    215|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|    215|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|    215|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    215|	free(element);  \
  |  |  |  |  709|    215|}
  |  |  ------------------
  |  |  109|    215|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|    215|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    215|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|    215|}
  ------------------
  905|    215|			}
  906|    866|		} else {
  907|       |			/* Can't add more */
  908|    866|			break;
  909|    866|		}
  910|  1.26k|	}
  911|  1.37k|	if (cnt_added && strm->pd_api_started) {
  ------------------
  |  Branch (911:6): [True: 170, False: 1.20k]
  |  Branch (911:19): [True: 0, False: 170]
  ------------------
  912|      0|#if defined(__Userspace__)
  913|      0|		sctp_invoke_recv_callback(stcb->sctp_ep, stcb, control, inp_read_lock_held);
  914|      0|#endif
  915|      0|		sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  916|      0|	}
  917|  1.37k|	if ((control->length > pd_point) && (strm->pd_api_started == 0)) {
  ------------------
  |  Branch (917:6): [True: 0, False: 1.37k]
  |  Branch (917:38): [True: 0, False: 0]
  ------------------
  918|      0|		strm->pd_api_started = 1;
  919|      0|		control->pdapi_started = 1;
  920|      0|		sctp_add_to_readq(stcb->sctp_ep, stcb, control,
  921|      0|		                  &stcb->sctp_socket->so_rcv, control->end_added,
  922|      0|		                  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  923|      0|		sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  924|      0|		return (0);
  925|  1.37k|	} else {
  926|  1.37k|		return (1);
  927|  1.37k|	}
  928|  1.37k|}
sctp_indata.c:sctp_build_readq_entry_from_ctl:
  763|    149|{
  764|    149|	memset(nc, 0, sizeof(struct sctp_queued_to_read));
  765|    149|	nc->sinfo_stream = control->sinfo_stream;
  766|    149|	nc->mid = control->mid;
  767|    149|	TAILQ_INIT(&nc->reasm);
  ------------------
  |  Branch (767:2): [Folded, False: 149]
  ------------------
  768|    149|	nc->top_fsn = control->top_fsn;
  769|    149|	nc->mid = control->mid;
  770|    149|	nc->sinfo_flags = control->sinfo_flags;
  771|    149|	nc->sinfo_ppid = control->sinfo_ppid;
  772|    149|	nc->sinfo_context = control->sinfo_context;
  773|    149|	nc->fsn_included = 0xffffffff;
  774|    149|	nc->sinfo_tsn = control->sinfo_tsn;
  775|    149|	nc->sinfo_cumtsn = control->sinfo_cumtsn;
  776|    149|	nc->sinfo_assoc_id = control->sinfo_assoc_id;
  777|    149|	nc->whoFrom = control->whoFrom;
  778|    149|	atomic_add_int(&nc->whoFrom->ref_count, 1);
  ------------------
  |  |   94|    149|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  779|    149|	nc->stcb = control->stcb;
  780|    149|	nc->port_from = control->port_from;
  781|    149|	nc->do_not_ref_stcb = control->do_not_ref_stcb;
  782|    149|}
sctp_indata.c:sctp_kick_prsctp_reorder_queue:
 5301|  5.08k|{
 5302|  5.08k|	struct sctp_queued_to_read *control, *ncontrol;
 5303|  5.08k|	struct sctp_association *asoc;
 5304|  5.08k|	uint32_t mid;
 5305|  5.08k|	int need_reasm_check = 0;
 5306|       |
 5307|  5.08k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  5.08k|	do {                         \
  |  |  113|  5.08k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.08k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.08k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.08k]
  |  |  ------------------
  ------------------
 5308|  5.08k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.08k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.08k|	do {                         \
  |  |  |  |  113|  5.08k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.08k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.08k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.08k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5309|  5.08k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  5.08k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.08k|	do {                         \
  |  |  |  |  113|  5.08k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.08k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.08k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.08k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5310|       |
 5311|  5.08k|	asoc = &stcb->asoc;
 5312|  5.08k|	mid = strmin->last_mid_delivered;
 5313|       |	/*
 5314|       |	 * First deliver anything prior to and including the stream no that
 5315|       |	 * came in.
 5316|       |	 */
 5317|  5.08k|	TAILQ_FOREACH_SAFE(control, &strmin->inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  5.08k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  5.08k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 5.08k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  5.08k|              (var) = (tvar))
  ------------------
 5318|      0|		if (SCTP_MID_GE(asoc->idata_supported, mid, control->mid)) {
  ------------------
  |  |  892|      0|#define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  882|      0|#define SCTP_UINT16_GE(a, b) (SCTP_UINT16_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  880|      0|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (880:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (880:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  881|      0|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (881:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (881:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (882:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (892:30): [True: 0, False: 0]
  |  |  |  Branch (892:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5319|       |			/* this is deliverable now */
 5320|      0|			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|      0|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|      0|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (5320:8): [True: 0, False: 0]
  ------------------
 5321|      0|				if (control->on_strm_q) {
  ------------------
  |  Branch (5321:9): [True: 0, False: 0]
  ------------------
 5322|      0|					if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|      0|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (5322:10): [True: 0, False: 0]
  ------------------
 5323|      0|						TAILQ_REMOVE(&strmin->inqueue, control, next_instrm);
  ------------------
  |  Branch (5323:7): [True: 0, False: 0]
  |  Branch (5323:7): [Folded, False: 0]
  ------------------
 5324|      0|					} else if (control->on_strm_q == SCTP_ON_UNORDERED) {
  ------------------
  |  |  554|      0|#define SCTP_ON_UNORDERED 2
  ------------------
  |  Branch (5324:17): [True: 0, False: 0]
  ------------------
 5325|      0|						TAILQ_REMOVE(&strmin->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (5325:7): [True: 0, False: 0]
  |  Branch (5325:7): [Folded, False: 0]
  ------------------
 5326|      0|#ifdef INVARIANTS
 5327|      0|					} else {
 5328|      0|						panic("strmin: %p ctl: %p unknown %d",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5329|      0|						      strmin, control, control->on_strm_q);
 5330|      0|#endif
 5331|      0|					}
 5332|      0|					control->on_strm_q = 0;
 5333|      0|				}
 5334|       |				/* subtract pending on streams */
 5335|      0|				if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (5335:9): [True: 0, False: 0]
  ------------------
 5336|      0|					asoc->size_on_all_streams -= control->length;
 5337|      0|				} else {
 5338|      0|#ifdef INVARIANTS
 5339|      0|					panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5340|       |#else
 5341|       |					asoc->size_on_all_streams = 0;
 5342|       |#endif
 5343|      0|				}
 5344|      0|				sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|      0|#define sctp_ucount_decr(val) { \
  |  |  271|      0|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  272|      0|		val--; \
  |  |  273|      0|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|      0|}
  ------------------
 5345|       |				/* deliver it to at least the delivery-q */
 5346|      0|				if (stcb->sctp_socket) {
  ------------------
  |  Branch (5346:9): [True: 0, False: 0]
  ------------------
 5347|      0|					sctp_mark_non_revokable(asoc, control->sinfo_tsn);
 5348|      0|					sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 5349|      0|					                  &stcb->sctp_socket->so_rcv, 1,
 5350|      0|					                  SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   40|      0|#define SCTP_READ_LOCK_HELD 1
  ------------------
              					                  SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5351|      0|				}
 5352|      0|			} else {
 5353|       |				/* Its a fragmented message */
 5354|      0|				if (control->first_frag_seen) {
  ------------------
  |  Branch (5354:9): [True: 0, False: 0]
  ------------------
 5355|       |					/* Make it so this is next to deliver, we restore later */
 5356|      0|					strmin->last_mid_delivered = control->mid - 1;
 5357|      0|					need_reasm_check = 1;
 5358|      0|					break;
 5359|      0|				}
 5360|      0|			}
 5361|      0|		} else {
 5362|       |			/* no more delivery now. */
 5363|      0|			break;
 5364|      0|		}
 5365|      0|	}
 5366|  5.08k|	if (need_reasm_check) {
  ------------------
  |  Branch (5366:6): [True: 0, False: 5.08k]
  ------------------
 5367|      0|		int ret;
 5368|      0|		ret = sctp_deliver_reasm_check(stcb, &stcb->asoc, strmin, SCTP_READ_LOCK_HELD);
  ------------------
  |  |   40|      0|#define SCTP_READ_LOCK_HELD 1
  ------------------
 5369|      0|		if (SCTP_MID_GT(asoc->idata_supported, mid, strmin->last_mid_delivered)) {
  ------------------
  |  |  891|      0|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|      0|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (880:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  881|      0|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (881:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 0, False: 0]
  |  |  |  Branch (891:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5370|       |			/* Restore the next to deliver unless we are ahead */
 5371|      0|			strmin->last_mid_delivered = mid;
 5372|      0|		}
 5373|      0|		if (ret == 0) {
  ------------------
  |  Branch (5373:7): [True: 0, False: 0]
  ------------------
 5374|       |			/* Left the front Partial one on */
 5375|      0|			return;
 5376|      0|		}
 5377|      0|		need_reasm_check = 0;
 5378|      0|	}
 5379|       |	/*
 5380|       |	 * now we must deliver things in queue the normal way  if any are
 5381|       |	 * now ready.
 5382|       |	 */
 5383|  5.08k|	mid = strmin->last_mid_delivered + 1;
 5384|  5.08k|	TAILQ_FOREACH_SAFE(control, &strmin->inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  5.08k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  5.08k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 5.08k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  5.08k|              (var) = (tvar))
  ------------------
 5385|      0|		if (SCTP_MID_EQ(asoc->idata_supported, mid, control->mid)) {
  ------------------
  |  |  893|      0|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 0, False: 0]
  |  |  |  Branch (893:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5386|      0|			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|      0|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|      0|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (5386:8): [True: 0, False: 0]
  ------------------
 5387|       |				/* this is deliverable now */
 5388|      0|				if (control->on_strm_q) {
  ------------------
  |  Branch (5388:9): [True: 0, False: 0]
  ------------------
 5389|      0|					if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|      0|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (5389:10): [True: 0, False: 0]
  ------------------
 5390|      0|						TAILQ_REMOVE(&strmin->inqueue, control, next_instrm);
  ------------------
  |  Branch (5390:7): [True: 0, False: 0]
  |  Branch (5390:7): [Folded, False: 0]
  ------------------
 5391|      0|					} else if (control->on_strm_q == SCTP_ON_UNORDERED) {
  ------------------
  |  |  554|      0|#define SCTP_ON_UNORDERED 2
  ------------------
  |  Branch (5391:17): [True: 0, False: 0]
  ------------------
 5392|      0|						TAILQ_REMOVE(&strmin->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (5392:7): [True: 0, False: 0]
  |  Branch (5392:7): [Folded, False: 0]
  ------------------
 5393|      0|#ifdef INVARIANTS
 5394|      0|					} else {
 5395|      0|						panic("strmin: %p ctl: %p unknown %d",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5396|      0|						      strmin, control, control->on_strm_q);
 5397|      0|#endif
 5398|      0|					}
 5399|      0|					control->on_strm_q = 0;
 5400|      0|				}
 5401|       |				/* subtract pending on streams */
 5402|      0|				if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (5402:9): [True: 0, False: 0]
  ------------------
 5403|      0|					asoc->size_on_all_streams -= control->length;
 5404|      0|				} else {
 5405|      0|#ifdef INVARIANTS
 5406|      0|					panic("size_on_all_streams = %u smaller than control length %u", asoc->size_on_all_streams, control->length);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5407|       |#else
 5408|       |					asoc->size_on_all_streams = 0;
 5409|       |#endif
 5410|      0|				}
 5411|      0|				sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|      0|#define sctp_ucount_decr(val) { \
  |  |  271|      0|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  272|      0|		val--; \
  |  |  273|      0|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|      0|}
  ------------------
 5412|       |				/* deliver it to at least the delivery-q */
 5413|      0|				strmin->last_mid_delivered = control->mid;
 5414|      0|				if (stcb->sctp_socket) {
  ------------------
  |  Branch (5414:9): [True: 0, False: 0]
  ------------------
 5415|      0|					sctp_mark_non_revokable(asoc, control->sinfo_tsn);
 5416|      0|					sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 5417|      0|					                  &stcb->sctp_socket->so_rcv, 1,
 5418|      0|					                  SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   40|      0|#define SCTP_READ_LOCK_HELD 1
  ------------------
              					                  SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5419|      0|				}
 5420|      0|				mid = strmin->last_mid_delivered + 1;
 5421|      0|			} else {
 5422|       |				/* Its a fragmented message */
 5423|      0|				if (control->first_frag_seen) {
  ------------------
  |  Branch (5423:9): [True: 0, False: 0]
  ------------------
 5424|       |					/* Make it so this is next to deliver */
 5425|      0|					strmin->last_mid_delivered = control->mid - 1;
 5426|      0|					need_reasm_check = 1;
 5427|      0|					break;
 5428|      0|				}
 5429|      0|			}
 5430|      0|		} else {
 5431|      0|			break;
 5432|      0|		}
 5433|      0|	}
 5434|  5.08k|	if (need_reasm_check) {
  ------------------
  |  Branch (5434:6): [True: 0, False: 5.08k]
  ------------------
 5435|      0|		(void)sctp_deliver_reasm_check(stcb, &stcb->asoc, strmin, SCTP_READ_LOCK_HELD);
  ------------------
  |  |   40|      0|#define SCTP_READ_LOCK_HELD 1
  ------------------
 5436|      0|	}
 5437|  5.08k|}

sctp_is_there_unsent_data:
  192|  9.97k|{
  193|  9.97k|	int unsent_data;
  194|  9.97k|	unsigned int i;
  195|  9.97k|	struct sctp_stream_queue_pending *sp;
  196|  9.97k|	struct sctp_association *asoc;
  197|       |
  198|  9.97k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  9.97k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  9.97k|	do {                         \
  |  |  |  |  113|  9.97k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 9.97k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  9.97k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 9.97k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  199|       |
  200|       |	/* This function returns if any stream has true unsent data on it.
  201|       |	 * Note that as it looks through it will clean up any places that
  202|       |	 * have old data that has been sent but left at top of stream queue.
  203|       |	 */
  204|  9.97k|	asoc = &stcb->asoc;
  205|  9.97k|	unsent_data = 0;
  206|  9.97k|	if (!stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, asoc)) {
  ------------------
  |  Branch (206:6): [True: 3.05k, False: 6.91k]
  ------------------
  207|       |		/* Check to see if some data queued */
  208|  3.05k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (208:15): [True: 3.05k, False: 0]
  ------------------
  209|       |			/*sa_ignore FREED_MEMORY*/
  210|  3.05k|			sp = TAILQ_FIRST(&stcb->asoc.strmout[i].outqueue);
  211|  3.05k|			if (sp == NULL) {
  ------------------
  |  Branch (211:8): [True: 0, False: 3.05k]
  ------------------
  212|      0|				continue;
  213|      0|			}
  214|  3.05k|			if ((sp->msg_is_complete) &&
  ------------------
  |  Branch (214:8): [True: 3.05k, False: 0]
  ------------------
  215|  3.05k|			    (sp->length == 0) &&
  ------------------
  |  Branch (215:8): [True: 0, False: 3.05k]
  ------------------
  216|      0|			    (sp->sender_all_done)) {
  ------------------
  |  Branch (216:8): [True: 0, False: 0]
  ------------------
  217|       |				/* We are doing differed cleanup. Last
  218|       |				 * time through when we took all the data
  219|       |				 * the sender_all_done was not set.
  220|       |				 */
  221|      0|				if (sp->put_last_out == 0) {
  ------------------
  |  Branch (221:9): [True: 0, False: 0]
  ------------------
  222|      0|					SCTP_PRINTF("Gak, put out entire msg with NO end!-1\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
  223|      0|					SCTP_PRINTF("sender_done:%d len:%d msg_comp:%d put_last_out:%d\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
  224|      0|					            sp->sender_all_done,
  225|      0|					            sp->length,
  226|      0|					            sp->msg_is_complete,
  227|      0|					            sp->put_last_out);
  228|      0|				}
  229|      0|				atomic_subtract_int(&stcb->asoc.stream_queue_cnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
  230|      0|				TAILQ_REMOVE(&stcb->asoc.strmout[i].outqueue, sp, next);
  ------------------
  |  Branch (230:5): [True: 0, False: 0]
  |  Branch (230:5): [Folded, False: 0]
  ------------------
  231|      0|				stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, &asoc->strmout[i], sp);
  232|      0|				if (sp->net) {
  ------------------
  |  Branch (232:9): [True: 0, False: 0]
  ------------------
  233|      0|					sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
  234|      0|					sp->net = NULL;
  235|      0|				}
  236|      0|				if (sp->data) {
  ------------------
  |  Branch (236:9): [True: 0, False: 0]
  ------------------
  237|      0|					sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  238|      0|					sp->data = NULL;
  239|      0|				}
  240|      0|				sctp_free_a_strmoq(stcb, sp, so_locked);
  ------------------
  |  |  125|      0|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|      0|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  131|      0|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|}
  ------------------
  241|      0|				if (!TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) {
  ------------------
  |  Branch (241:9): [True: 0, False: 0]
  ------------------
  242|      0|					unsent_data++;
  243|      0|				}
  244|  3.05k|			} else {
  245|  3.05k|				unsent_data++;
  246|  3.05k|			}
  247|  3.05k|			if (unsent_data > 0) {
  ------------------
  |  Branch (247:8): [True: 3.05k, False: 0]
  ------------------
  248|  3.05k|				break;
  249|  3.05k|			}
  250|  3.05k|		}
  251|  3.05k|	}
  252|  9.97k|	return (unsent_data);
  253|  9.97k|}
sctp_reset_in_stream:
 3697|    471|{
 3698|    471|	uint32_t i;
 3699|    471|	uint16_t temp;
 3700|       |
 3701|       |	/*
 3702|       |	 * We set things to 0xffffffff since this is the last delivered sequence
 3703|       |	 * and we will be sending in 0 after the reset.
 3704|       |	 */
 3705|       |
 3706|    471|	if (number_entries) {
  ------------------
  |  Branch (3706:6): [True: 194, False: 277]
  ------------------
 3707|  4.18k|		for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (3707:15): [True: 3.98k, False: 194]
  ------------------
 3708|  3.98k|			temp = ntohs(list[i]);
 3709|  3.98k|			if (temp >= stcb->asoc.streamincnt) {
  ------------------
  |  Branch (3709:8): [True: 2.53k, False: 1.45k]
  ------------------
 3710|  2.53k|				continue;
 3711|  2.53k|			}
 3712|  1.45k|			stcb->asoc.strmin[temp].last_mid_delivered = 0xffffffff;
 3713|  1.45k|		}
 3714|    277|	} else {
 3715|    277|		list = NULL;
 3716|  71.4k|		for (i = 0; i < stcb->asoc.streamincnt; i++) {
  ------------------
  |  Branch (3716:15): [True: 71.1k, False: 277]
  ------------------
 3717|  71.1k|			stcb->asoc.strmin[i].last_mid_delivered = 0xffffffff;
 3718|  71.1k|		}
 3719|    277|	}
 3720|    471|	sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_RECV, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  719|    471|#define SCTP_NOTIFY_STR_RESET_RECV              17
  ------------------
              	sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_RECV, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    471|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3721|    471|}
sctp_common_input_processing:
 5707|  23.7k|{
 5708|  23.7k|	char msg[SCTP_DIAG_INFO_LEN];
 5709|  23.7k|	struct mbuf *m = *mm, *op_err;
 5710|  23.7k|	struct sctp_inpcb *inp = NULL, *inp_decr = NULL;
 5711|  23.7k|	struct sctp_tcb *stcb = NULL;
 5712|  23.7k|	struct sctp_nets *net = NULL;
 5713|  23.7k|#if defined(__Userspace__)
 5714|  23.7k|	struct socket *upcall_socket = NULL;
 5715|  23.7k|#endif
 5716|  23.7k|	uint32_t high_tsn;
 5717|  23.7k|	uint32_t cksum_in_hdr;
 5718|  23.7k|	int un_sent;
 5719|  23.7k|	int cnt_ctrl_ready = 0;
 5720|  23.7k|	int fwd_tsn_seen = 0, data_processed = 0;
 5721|  23.7k|	bool cksum_validated, stcb_looked_up;
 5722|       |
 5723|  23.7k|	SCTP_STAT_INCR(sctps_recvdatagrams);
  ------------------
  |  | 1112|  23.7k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  23.7k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  23.7k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5724|       |#ifdef SCTP_AUDITING_ENABLED
 5725|       |	sctp_audit_log(0xE0, 1);
 5726|       |	sctp_auditing(0, inp, stcb, net);
 5727|       |#endif
 5728|       |
 5729|  23.7k|	stcb_looked_up = false;
 5730|  23.7k|	if (compute_crc != 0) {
  ------------------
  |  Branch (5730:6): [True: 0, False: 23.7k]
  ------------------
 5731|      0|		cksum_validated = false;
 5732|      0|		cksum_in_hdr = sh->checksum;
 5733|      0|		if (cksum_in_hdr != htonl(0)) {
  ------------------
  |  Branch (5733:7): [True: 0, False: 0]
  ------------------
 5734|      0|			uint32_t cksum_calculated;
 5735|       |
 5736|      0|validate_cksum:
 5737|      0|			sh->checksum = 0;
 5738|      0|			cksum_calculated = sctp_calculate_cksum(m, iphlen);
 5739|      0|			sh->checksum = cksum_in_hdr;
 5740|      0|			if (cksum_calculated != cksum_in_hdr) {
  ------------------
  |  Branch (5740:8): [True: 0, False: 0]
  ------------------
 5741|      0|				if (stcb_looked_up) {
  ------------------
  |  Branch (5741:9): [True: 0, False: 0]
  ------------------
 5742|       |					/*
 5743|       |					 * The packet has a zero checksum, which
 5744|       |					 * is not the correct CRC, no stcb has
 5745|       |					 * been found or an stcb has been found
 5746|       |					 * but an incorrect zero checksum is not
 5747|       |					 * acceptable.
 5748|       |					 */
 5749|      0|					KASSERT(cksum_in_hdr == htonl(0),
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5750|      0|					        ("cksum in header not zero: %x",
 5751|      0|					         ntohl(cksum_in_hdr)));
 5752|      0|					if ((inp == NULL) &&
  ------------------
  |  Branch (5752:10): [True: 0, False: 0]
  ------------------
 5753|      0|					    (SCTP_BASE_SYSCTL(sctp_ootb_with_zero_cksum) == 1)) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (5753:10): [True: 0, False: 0]
  ------------------
 5754|       |						/*
 5755|       |						 * This is an OOTB packet,
 5756|       |						 * depending on the sysctl
 5757|       |						 * variable, pretend that the
 5758|       |						 * checksum is acceptable,
 5759|       |						 * to allow an appropriate
 5760|       |						 * response (ABORT, for examlpe)
 5761|       |						 * to be sent.
 5762|       |						 */
 5763|      0|						KASSERT(stcb == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5764|      0|						        ("stcb is %p", stcb));
 5765|      0|						SCTP_STAT_INCR(sctps_recvzerocrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5766|      0|						goto cksum_validated;
 5767|      0|					}
 5768|      0|				} else {
 5769|      0|					stcb = sctp_findassociation_addr(m, offset, src, dst,
 5770|      0|					                                 sh, ch, &inp, &net, vrf_id);
 5771|      0|				}
 5772|      0|				SCTPDBG(SCTP_DEBUG_INPUT1, "Bad cksum in SCTP packet:%x calculated:%x m:%p mlen:%d iphlen:%d\n",
 5773|      0|				        ntohl(cksum_in_hdr), ntohl(cksum_calculated), (void *)m, length, iphlen);
 5774|      0|#if defined(INET) || defined(INET6)
 5775|      0|				if ((ch->chunk_type != SCTP_INITIATION) &&
  ------------------
  |  |  455|      0|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (5775:9): [True: 0, False: 0]
  ------------------
 5776|      0|				    (net != NULL) && (net->port != port)) {
  ------------------
  |  Branch (5776:9): [True: 0, False: 0]
  |  Branch (5776:26): [True: 0, False: 0]
  ------------------
 5777|      0|					if (net->port == 0) {
  ------------------
  |  Branch (5777:10): [True: 0, False: 0]
  ------------------
 5778|       |						/* UDP encapsulation turned on. */
 5779|      0|						net->mtu -= sizeof(struct udphdr);
 5780|      0|						if (stcb->asoc.smallest_mtu > net->mtu) {
  ------------------
  |  Branch (5780:11): [True: 0, False: 0]
  ------------------
 5781|      0|							sctp_pathmtu_adjustment(stcb, net->mtu, true);
 5782|      0|						}
 5783|      0|					} else if (port == 0) {
  ------------------
  |  Branch (5783:17): [True: 0, False: 0]
  ------------------
 5784|       |						/* UDP encapsulation turned off. */
 5785|      0|						net->mtu += sizeof(struct udphdr);
 5786|       |						/* XXX Update smallest_mtu */
 5787|      0|					}
 5788|      0|					net->port = port;
 5789|      0|				}
 5790|      0|#endif
 5791|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5792|       |				if (net != NULL) {
 5793|       |					net->flowtype = mflowtype;
 5794|       |					net->flowid = mflowid;
 5795|       |				}
 5796|       |				SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 5797|       |#endif
 5798|      0|				if ((inp != NULL) && (stcb != NULL)) {
  ------------------
  |  Branch (5798:9): [True: 0, False: 0]
  |  Branch (5798:26): [True: 0, False: 0]
  ------------------
 5799|      0|					if (stcb->asoc.pktdrop_supported) {
  ------------------
  |  Branch (5799:10): [True: 0, False: 0]
  ------------------
 5800|      0|						sctp_send_packet_dropped(stcb, net, m, length, iphlen, 1);
 5801|      0|						sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_INPUT_ERROR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  363|      0|#define SCTP_OUTPUT_FROM_INPUT_ERROR    2
  ------------------
              						sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_INPUT_ERROR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5802|      0|					}
 5803|      0|				} else if ((inp != NULL) && (stcb == NULL)) {
  ------------------
  |  Branch (5803:16): [True: 0, False: 0]
  |  Branch (5803:33): [True: 0, False: 0]
  ------------------
 5804|      0|					inp_decr = inp;
 5805|      0|				}
 5806|      0|				SCTP_STAT_INCR(sctps_badsum);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5807|      0|				SCTP_STAT_INCR_COUNTER32(sctps_checksumerrors);
  ------------------
  |  | 1127|      0|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5808|      0|				goto out;
 5809|      0|			} else {
 5810|      0|				cksum_validated = true;
 5811|      0|			}
 5812|      0|		}
 5813|      0|		KASSERT(cksum_validated || cksum_in_hdr == htonl(0),
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5814|      0|		        ("cksum 0x%08x not zero and not validated", ntohl(cksum_in_hdr)));
 5815|      0|		if (!cksum_validated) {
  ------------------
  |  Branch (5815:7): [True: 0, False: 0]
  ------------------
 5816|      0|			stcb = sctp_findassociation_addr(m, offset, src, dst,
 5817|      0|			                                 sh, ch, &inp, &net, vrf_id);
 5818|      0|			stcb_looked_up = true;
 5819|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (5819:8): [True: 0, False: 0]
  ------------------
 5820|      0|				goto validate_cksum;
 5821|      0|			}
 5822|      0|			if (stcb->asoc.rcv_edmid == SCTP_EDMID_NONE) {
  ------------------
  |  |  809|      0|#define SCTP_EDMID_NONE             0
  ------------------
  |  Branch (5822:8): [True: 0, False: 0]
  ------------------
 5823|      0|				goto validate_cksum;
 5824|      0|			}
 5825|      0|			KASSERT(stcb->asoc.rcv_edmid == SCTP_EDMID_LOWER_LAYER_DTLS,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5826|      0|				("Unexpected EDMID %u", stcb->asoc.rcv_edmid));
 5827|      0|			SCTP_STAT_INCR(sctps_recvzerocrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5828|      0|		}
 5829|      0|	}
 5830|  23.7k|cksum_validated:
 5831|       |	/* Destination port of 0 is illegal, based on RFC4960. */
 5832|  23.7k|	if (sh->dest_port == htons(0)) {
  ------------------
  |  Branch (5832:6): [True: 0, False: 23.7k]
  ------------------
 5833|      0|		SCTP_STAT_INCR(sctps_hdrops);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5834|      0|		if ((stcb == NULL) && (inp != NULL)) {
  ------------------
  |  Branch (5834:7): [True: 0, False: 0]
  |  Branch (5834:25): [True: 0, False: 0]
  ------------------
 5835|      0|			inp_decr = inp;
 5836|      0|		}
 5837|      0|		goto out;
 5838|      0|	}
 5839|  23.7k|	if (!stcb_looked_up) {
  ------------------
  |  Branch (5839:6): [True: 23.7k, False: 0]
  ------------------
 5840|  23.7k|		stcb = sctp_findassociation_addr(m, offset, src, dst,
 5841|  23.7k|		                                 sh, ch, &inp, &net, vrf_id);
 5842|  23.7k|	}
 5843|  23.7k|#if defined(INET) || defined(INET6)
 5844|  23.7k|	if ((ch->chunk_type != SCTP_INITIATION) &&
  ------------------
  |  |  455|  23.7k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (5844:6): [True: 23.7k, False: 19]
  ------------------
 5845|  23.7k|	    (net != NULL) && (net->port != port)) {
  ------------------
  |  Branch (5845:6): [True: 23.7k, False: 0]
  |  Branch (5845:23): [True: 0, False: 23.7k]
  ------------------
 5846|      0|		if (net->port == 0) {
  ------------------
  |  Branch (5846:7): [True: 0, False: 0]
  ------------------
 5847|       |			/* UDP encapsulation turned on. */
 5848|      0|			net->mtu -= sizeof(struct udphdr);
 5849|      0|			if (stcb->asoc.smallest_mtu > net->mtu) {
  ------------------
  |  Branch (5849:8): [True: 0, False: 0]
  ------------------
 5850|      0|				sctp_pathmtu_adjustment(stcb, net->mtu, true);
 5851|      0|			}
 5852|      0|		} else if (port == 0) {
  ------------------
  |  Branch (5852:14): [True: 0, False: 0]
  ------------------
 5853|       |			/* UDP encapsulation turned off. */
 5854|      0|			net->mtu += sizeof(struct udphdr);
 5855|       |			/* XXX Update smallest_mtu */
 5856|      0|		}
 5857|      0|		net->port = port;
 5858|      0|	}
 5859|  23.7k|#endif
 5860|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5861|       |	if (net != NULL) {
 5862|       |		net->flowtype = mflowtype;
 5863|       |		net->flowid = mflowid;
 5864|       |	}
 5865|       |#endif
 5866|  23.7k|	if (inp == NULL) {
  ------------------
  |  Branch (5866:6): [True: 0, False: 23.7k]
  ------------------
 5867|      0|		SCTP_STAT_INCR(sctps_noport);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5868|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5869|       |		SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 5870|       |		if (badport_bandlim(BANDLIM_SCTP_OOTB) < 0) {
 5871|       |			goto out;
 5872|       |		}
 5873|       |#endif
 5874|      0|		if (ch->chunk_type == SCTP_SHUTDOWN_ACK) {
  ------------------
  |  |  462|      0|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (5874:7): [True: 0, False: 0]
  ------------------
 5875|      0|			SCTP_STAT_INCR_COUNTER64(sctps_incontrolchunks);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5876|      0|			sctp_send_shutdown_complete2(src, dst, sh,
 5877|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5878|       |			                             mflowtype, mflowid, fibnum,
 5879|       |#endif
 5880|      0|			                             vrf_id, port);
 5881|      0|			goto out;
 5882|      0|		}
 5883|      0|		if (ch->chunk_type == SCTP_SHUTDOWN_COMPLETE) {
  ------------------
  |  |  468|      0|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (5883:7): [True: 0, False: 0]
  ------------------
 5884|      0|			SCTP_STAT_INCR_COUNTER64(sctps_incontrolchunks);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5885|      0|			goto out;
 5886|      0|		}
 5887|      0|		if (ch->chunk_type != SCTP_ABORT_ASSOCIATION) {
  ------------------
  |  |  460|      0|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (5887:7): [True: 0, False: 0]
  ------------------
 5888|      0|			if ((SCTP_BASE_SYSCTL(sctp_blackhole) == 0) ||
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (5888:8): [True: 0, False: 0]
  ------------------
 5889|      0|			    ((SCTP_BASE_SYSCTL(sctp_blackhole) == 1) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (5889:9): [True: 0, False: 0]
  ------------------
 5890|      0|			     (ch->chunk_type != SCTP_INIT))) {
  ------------------
  |  |   92|      0|#define SCTP_INIT	0x0001
  ------------------
  |  Branch (5890:9): [True: 0, False: 0]
  ------------------
 5891|      0|				op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 5892|      0|				                             "Out of the blue");
 5893|      0|				sctp_send_abort(m, iphlen, src, dst,
 5894|      0|				                sh, 0, op_err,
 5895|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5896|       |				                mflowtype, mflowid, fibnum,
 5897|       |#endif
 5898|      0|				                vrf_id, port);
 5899|      0|			}
 5900|      0|		}
 5901|      0|		goto out;
 5902|  23.7k|	} else if (stcb == NULL) {
  ------------------
  |  Branch (5902:13): [True: 0, False: 23.7k]
  ------------------
 5903|      0|		inp_decr = inp;
 5904|      0|	}
 5905|  23.7k|	SCTPDBG(SCTP_DEBUG_INPUT1, "Ok, Common input processing called, m:%p iphlen:%d offset:%d length:%d stcb:%p\n",
 5906|  23.7k|		(void *)m, iphlen, offset, length, (void *)stcb);
 5907|  23.7k|	if (stcb) {
  ------------------
  |  Branch (5907:6): [True: 23.7k, False: 0]
  ------------------
 5908|       |		/* always clear this before beginning a packet */
 5909|  23.7k|		stcb->asoc.authenticated = 0;
 5910|  23.7k|		stcb->asoc.seen_a_sack_this_pkt = 0;
 5911|  23.7k|		SCTPDBG(SCTP_DEBUG_INPUT1, "stcb:%p state:%x\n",
 5912|  23.7k|			(void *)stcb, stcb->asoc.state);
 5913|       |
 5914|  23.7k|		if ((stcb->asoc.state & SCTP_STATE_WAS_ABORTED) ||
  ------------------
  |  |  467|  23.7k|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (5914:7): [True: 0, False: 23.7k]
  ------------------
 5915|  23.7k|		    (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED)) {
  ------------------
  |  |  465|  23.7k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (5915:7): [True: 0, False: 23.7k]
  ------------------
 5916|       |			/*-
 5917|       |			 * If we hit here, we had a ref count
 5918|       |			 * up when the assoc was aborted and the
 5919|       |			 * timer is clearing out the assoc, we should
 5920|       |			 * NOT respond to any packet.. its OOTB.
 5921|       |			 */
 5922|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5923|      0|			stcb = NULL;
 5924|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5925|       |			SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 5926|       |#endif
 5927|      0|			SCTP_SNPRINTF(msg, sizeof(msg), "OOTB, %s:%d at %s", __FILE__, __LINE__, __func__);
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 5928|      0|			op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 5929|      0|			                             msg);
 5930|      0|			sctp_handle_ootb(m, iphlen, offset, src, dst, sh, inp, op_err,
 5931|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5932|       |			                 mflowtype, mflowid, inp->fibnum,
 5933|       |#endif
 5934|      0|			                 vrf_id, port);
 5935|      0|			goto out;
 5936|      0|		}
 5937|  23.7k|	}
 5938|  23.7k|#if defined(__Userspace__)
 5939|  23.7k|	if ((stcb != NULL) &&
  ------------------
  |  Branch (5939:6): [True: 23.7k, False: 0]
  ------------------
 5940|  23.7k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) &&
  ------------------
  |  |  546|  23.7k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5940:6): [True: 23.7k, False: 0]
  ------------------
 5941|  23.7k|	    (stcb->sctp_socket != NULL)) {
  ------------------
  |  Branch (5941:6): [True: 23.7k, False: 0]
  ------------------
 5942|  23.7k|		if (stcb->sctp_socket->so_head != NULL) {
  ------------------
  |  Branch (5942:7): [True: 0, False: 23.7k]
  ------------------
 5943|      0|			upcall_socket = stcb->sctp_socket->so_head;
 5944|  23.7k|		} else {
 5945|  23.7k|			upcall_socket = stcb->sctp_socket;
 5946|  23.7k|		}
 5947|  23.7k|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|  23.7k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  23.7k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5948|  23.7k|		soref(upcall_socket);
  ------------------
  |  |  404|  23.7k|#define	soref(so) do {							\
  |  |  405|  23.7k|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|  23.7k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  23.7k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  406|  23.7k|	++(so)->so_count;						\
  |  |  407|  23.7k|	SCTPDBG(SCTP_DEBUG_USR, "soref(%p) -> %d, %s:%s:%d\n",		\
  |  |  408|  23.7k|		(so), (so)->so_count,					\
  |  |  409|  23.7k|		__func__, __FILE__, __LINE__)				\
  |  |  410|  23.7k|} while (0)
  |  |  ------------------
  |  |  |  Branch (410:10): [Folded, False: 23.7k]
  |  |  ------------------
  ------------------
 5949|  23.7k|		SOCK_UNLOCK(upcall_socket);
  ------------------
  |  |  529|  23.7k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  23.7k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5950|  23.7k|	}
 5951|  23.7k|#endif
 5952|  23.7k|	if (IS_SCTP_CONTROL(ch)) {
  ------------------
  |  |  385|  23.7k|#define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  454|  23.7k|#define SCTP_DATA		0x00
  |  |  ------------------
  |  |               #define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  474|  21.7k|#define SCTP_IDATA		0x40
  |  |  ------------------
  |  |  |  Branch (385:29): [True: 21.7k, False: 1.99k]
  |  |  |  Branch (385:63): [True: 20.1k, False: 1.58k]
  |  |  ------------------
  ------------------
 5953|       |		/* process the control portion of the SCTP packet */
 5954|       |		/* sa_ignore NO_NULL_CHK */
 5955|  20.1k|		stcb = sctp_process_control(m, iphlen, &offset, length,
 5956|  20.1k|		                            src, dst, sh, ch,
 5957|  20.1k|		                            inp, stcb, &net, &fwd_tsn_seen,
 5958|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5959|       |		                            mflowtype, mflowid, fibnum,
 5960|       |#endif
 5961|  20.1k|		                            vrf_id, port);
 5962|  20.1k|		if (stcb) {
  ------------------
  |  Branch (5962:7): [True: 19.2k, False: 954]
  ------------------
 5963|       |			/* This covers us if the cookie-echo was there
 5964|       |			 * and it changes our INP.
 5965|       |			 */
 5966|  19.2k|			inp = stcb->sctp_ep;
 5967|  19.2k|#if defined(INET) || defined(INET6)
 5968|  19.2k|			if ((ch->chunk_type != SCTP_INITIATION) &&
  ------------------
  |  |  455|  19.2k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (5968:8): [True: 19.2k, False: 2]
  ------------------
 5969|  19.2k|			    (net != NULL) && (net->port != port)) {
  ------------------
  |  Branch (5969:8): [True: 19.2k, False: 0]
  |  Branch (5969:25): [True: 0, False: 19.2k]
  ------------------
 5970|      0|				if (net->port == 0) {
  ------------------
  |  Branch (5970:9): [True: 0, False: 0]
  ------------------
 5971|       |					/* UDP encapsulation turned on. */
 5972|      0|					net->mtu -= sizeof(struct udphdr);
 5973|      0|					if (stcb->asoc.smallest_mtu > net->mtu) {
  ------------------
  |  Branch (5973:10): [True: 0, False: 0]
  ------------------
 5974|      0|						sctp_pathmtu_adjustment(stcb, net->mtu, true);
 5975|      0|					}
 5976|      0|				} else if (port == 0) {
  ------------------
  |  Branch (5976:16): [True: 0, False: 0]
  ------------------
 5977|       |					/* UDP encapsulation turned off. */
 5978|      0|					net->mtu += sizeof(struct udphdr);
 5979|       |					/* XXX Update smallest_mtu */
 5980|      0|				}
 5981|      0|				net->port = port;
 5982|      0|			}
 5983|  19.2k|#endif
 5984|  19.2k|		}
 5985|  20.1k|	} else {
 5986|       |		/*
 5987|       |		 * no control chunks, so pre-process DATA chunks (these
 5988|       |		 * checks are taken care of by control processing)
 5989|       |		 */
 5990|       |
 5991|       |		/*
 5992|       |		 * if DATA only packet, and auth is required, then punt...
 5993|       |		 * can't have authenticated without any AUTH (control)
 5994|       |		 * chunks
 5995|       |		 */
 5996|  3.58k|		if ((stcb != NULL) &&
  ------------------
  |  Branch (5996:7): [True: 3.58k, False: 0]
  ------------------
 5997|  3.58k|		    sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.local_auth_chunks)) {
  ------------------
  |  |  100|  3.58k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 3.58k]
  |  |  |  Branch (100:51): [True: 0, False: 3.58k]
  |  |  ------------------
  ------------------
 5998|       |			/* "silently" ignore */
 5999|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6000|       |			SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 6001|       |#endif
 6002|      0|			SCTP_STAT_INCR(sctps_recvauthmissing);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6003|      0|			goto out;
 6004|      0|		}
 6005|  3.58k|		if (stcb == NULL) {
  ------------------
  |  Branch (6005:7): [True: 0, False: 3.58k]
  ------------------
 6006|       |			/* out of the blue DATA chunk */
 6007|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6008|       |			SCTP_PROBE5(receive, NULL, NULL, m, NULL, sh);
 6009|       |#endif
 6010|      0|			SCTP_SNPRINTF(msg, sizeof(msg), "OOTB, %s:%d at %s", __FILE__, __LINE__, __func__);
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 6011|      0|			op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 6012|      0|			                             msg);
 6013|      0|			sctp_handle_ootb(m, iphlen, offset, src, dst, sh, inp, op_err,
 6014|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6015|       |			                 mflowtype, mflowid, fibnum,
 6016|       |#endif
 6017|      0|					 vrf_id, port);
 6018|      0|			goto out;
 6019|      0|		}
 6020|  3.58k|		if (stcb->asoc.my_vtag != ntohl(sh->v_tag)) {
  ------------------
  |  Branch (6020:7): [True: 0, False: 3.58k]
  ------------------
 6021|       |			/* v_tag mismatch! */
 6022|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6023|       |			SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 6024|       |#endif
 6025|      0|			SCTP_STAT_INCR(sctps_badvtag);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6026|      0|			goto out;
 6027|      0|		}
 6028|  3.58k|	}
 6029|       |
 6030|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6031|       |	SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 6032|       |#endif
 6033|  23.7k|	if (stcb == NULL) {
  ------------------
  |  Branch (6033:6): [True: 954, False: 22.7k]
  ------------------
 6034|       |		/*
 6035|       |		 * no valid TCB for this packet, or we found it's a bad
 6036|       |		 * packet while processing control, or we're done with this
 6037|       |		 * packet (done or skip rest of data), so we drop it...
 6038|       |		 */
 6039|    954|		goto out;
 6040|    954|	}
 6041|  22.7k|#if defined(__Userspace__)
 6042|  22.7k|	if ((upcall_socket == NULL) &&
  ------------------
  |  Branch (6042:6): [True: 0, False: 22.7k]
  ------------------
 6043|      0|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) &&
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6043:6): [True: 0, False: 0]
  ------------------
 6044|      0|	    (stcb->sctp_socket != NULL)) {
  ------------------
  |  Branch (6044:6): [True: 0, False: 0]
  ------------------
 6045|      0|		if (stcb->sctp_socket->so_head != NULL) {
  ------------------
  |  Branch (6045:7): [True: 0, False: 0]
  ------------------
 6046|      0|			upcall_socket = stcb->sctp_socket->so_head;
 6047|      0|		} else {
 6048|      0|			upcall_socket = stcb->sctp_socket;
 6049|      0|		}
 6050|      0|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|      0|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6051|      0|		soref(upcall_socket);
  ------------------
  |  |  404|      0|#define	soref(so) do {							\
  |  |  405|      0|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|      0|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  406|      0|	++(so)->so_count;						\
  |  |  407|      0|	SCTPDBG(SCTP_DEBUG_USR, "soref(%p) -> %d, %s:%s:%d\n",		\
  |  |  408|      0|		(so), (so)->so_count,					\
  |  |  409|      0|		__func__, __FILE__, __LINE__)				\
  |  |  410|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (410:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6052|      0|		SOCK_UNLOCK(upcall_socket);
  ------------------
  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6053|      0|	}
 6054|  22.7k|#endif
 6055|       |
 6056|       |	/*
 6057|       |	 * DATA chunk processing
 6058|       |	 */
 6059|       |	/* plow through the data chunks while length > offset */
 6060|       |
 6061|       |	/*
 6062|       |	 * Rest should be DATA only.  Check authentication state if AUTH for
 6063|       |	 * DATA is required.
 6064|       |	 */
 6065|  22.7k|	if ((length > offset) &&
  ------------------
  |  Branch (6065:6): [True: 5.15k, False: 17.6k]
  ------------------
 6066|  5.15k|	    (stcb != NULL) &&
  ------------------
  |  Branch (6066:6): [True: 5.15k, False: 0]
  ------------------
 6067|  5.15k|	    sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.local_auth_chunks) &&
  ------------------
  |  |  100|  27.9k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 5.15k]
  |  |  |  Branch (100:51): [True: 0, False: 5.15k]
  |  |  ------------------
  ------------------
 6068|      0|	    !stcb->asoc.authenticated) {
  ------------------
  |  Branch (6068:6): [True: 0, False: 0]
  ------------------
 6069|       |		/* "silently" ignore */
 6070|      0|		SCTP_STAT_INCR(sctps_recvauthmissing);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6071|      0|		SCTPDBG(SCTP_DEBUG_AUTH1,
 6072|      0|			"Data chunk requires AUTH, skipped\n");
 6073|      0|		goto trigger_send;
 6074|      0|	}
 6075|  22.7k|	if (length > offset) {
  ------------------
  |  Branch (6075:6): [True: 5.15k, False: 17.6k]
  ------------------
 6076|  5.15k|		int retval;
 6077|       |
 6078|       |		/*
 6079|       |		 * First check to make sure our state is correct. We would
 6080|       |		 * not get here unless we really did have a tag, so we don't
 6081|       |		 * abort if this happens, just dump the chunk silently.
 6082|       |		 */
 6083|  5.15k|		switch (SCTP_GET_STATE(stcb)) {
  ------------------
  |  |  472|  5.15k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.15k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
 6084|  1.62k|		case SCTP_STATE_COOKIE_ECHOED:
  ------------------
  |  |  458|  1.62k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (6084:3): [True: 1.62k, False: 3.53k]
  ------------------
 6085|       |			/*
 6086|       |			 * we consider data with valid tags in this state
 6087|       |			 * shows us the cookie-ack was lost. Imply it was
 6088|       |			 * there.
 6089|       |			 */
 6090|  1.62k|			sctp_handle_cookie_ack((struct sctp_cookie_ack_chunk *)ch, stcb, net);
 6091|  1.62k|			break;
 6092|    313|		case SCTP_STATE_COOKIE_WAIT:
  ------------------
  |  |  457|    313|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (6092:3): [True: 313, False: 4.84k]
  ------------------
 6093|       |			/*
 6094|       |			 * We consider OOTB any data sent during asoc setup.
 6095|       |			 */
 6096|    313|			SCTP_SNPRINTF(msg, sizeof(msg), "OOTB, %s:%d at %s", __FILE__, __LINE__, __func__);
  ------------------
  |  |  820|    313|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 313]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 6097|    313|			op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|    313|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 6098|    313|			                             msg);
 6099|    313|			sctp_handle_ootb(m, iphlen, offset, src, dst, sh, inp, op_err,
 6100|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6101|       |			                 mflowtype, mflowid, inp->fibnum,
 6102|       |#endif
 6103|    313|					 vrf_id, port);
 6104|    313|			goto out;
 6105|       |			/*sa_ignore NOTREACHED*/
 6106|      0|			break;
 6107|      0|		case SCTP_STATE_EMPTY:	/* should not happen */
  ------------------
  |  |  455|      0|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (6107:3): [True: 0, False: 5.15k]
  ------------------
 6108|      0|		case SCTP_STATE_INUSE:	/* should not happen */
  ------------------
  |  |  456|      0|#define SCTP_STATE_INUSE		0x0001
  ------------------
  |  Branch (6108:3): [True: 0, False: 5.15k]
  ------------------
 6109|      7|		case SCTP_STATE_SHUTDOWN_RECEIVED:	/* This is a peer error */
  ------------------
  |  |  461|      7|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (6109:3): [True: 7, False: 5.15k]
  ------------------
 6110|     18|		case SCTP_STATE_SHUTDOWN_ACK_SENT:
  ------------------
  |  |  462|     18|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (6110:3): [True: 11, False: 5.14k]
  ------------------
 6111|     18|		default:
  ------------------
  |  Branch (6111:3): [True: 0, False: 5.15k]
  ------------------
 6112|     18|			goto out;
 6113|       |			/*sa_ignore NOTREACHED*/
 6114|     18|			break;
 6115|  3.20k|		case SCTP_STATE_OPEN:
  ------------------
  |  |  459|  3.20k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (6115:3): [True: 3.20k, False: 1.95k]
  ------------------
 6116|  3.20k|		case SCTP_STATE_SHUTDOWN_SENT:
  ------------------
  |  |  460|  3.20k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (6116:3): [True: 0, False: 5.15k]
  ------------------
 6117|  3.20k|			break;
 6118|  5.15k|		}
 6119|       |		/* plow through the data chunks while length > offset */
 6120|  4.82k|		retval = sctp_process_data(mm, iphlen, &offset, length,
 6121|  4.82k|		                           inp, stcb, net, &high_tsn);
 6122|  4.82k|		if (retval == 2) {
  ------------------
  |  Branch (6122:7): [True: 800, False: 4.02k]
  ------------------
 6123|       |			/*
 6124|       |			 * The association aborted, NO UNLOCK needed since
 6125|       |			 * the association is destroyed.
 6126|       |			 */
 6127|    800|			stcb = NULL;
 6128|    800|			goto out;
 6129|    800|		}
 6130|  4.02k|		if (retval == 0) {
  ------------------
  |  Branch (6130:7): [True: 4.02k, False: 0]
  ------------------
 6131|  4.02k|			data_processed = 1;
 6132|  4.02k|		}
 6133|       |		/*
 6134|       |		 * Anything important needs to have been m_copy'ed in
 6135|       |		 * process_data
 6136|       |		 */
 6137|  4.02k|	}
 6138|       |
 6139|       |	/* take care of ecn */
 6140|  21.6k|	if ((data_processed == 1) &&
  ------------------
  |  Branch (6140:6): [True: 4.02k, False: 17.6k]
  ------------------
 6141|  4.02k|	    (stcb->asoc.ecn_supported == 1) &&
  ------------------
  |  Branch (6141:6): [True: 4.02k, False: 0]
  ------------------
 6142|  4.02k|	    ((ecn_bits & SCTP_CE_BITS) == SCTP_CE_BITS)) {
  ------------------
  |  |  443|  4.02k|#define SCTP_CE_BITS		0x03
  ------------------
              	    ((ecn_bits & SCTP_CE_BITS) == SCTP_CE_BITS)) {
  ------------------
  |  |  443|  4.02k|#define SCTP_CE_BITS		0x03
  ------------------
  |  Branch (6142:6): [True: 0, False: 4.02k]
  ------------------
 6143|       |		/* Yep, we need to add a ECNE */
 6144|      0|		sctp_send_ecn_echo(stcb, net, high_tsn);
 6145|      0|	}
 6146|       |
 6147|  21.6k|	if ((data_processed == 0) && (fwd_tsn_seen)) {
  ------------------
  |  Branch (6147:6): [True: 17.6k, False: 4.02k]
  |  Branch (6147:31): [True: 805, False: 16.8k]
  ------------------
 6148|    805|		int was_a_gap;
 6149|    805|		uint32_t highest_tsn;
 6150|       |
 6151|    805|		if (SCTP_TSN_GT(stcb->asoc.highest_tsn_inside_nr_map, stcb->asoc.highest_tsn_inside_map)) {
  ------------------
  |  |  889|    805|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    805|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 805]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    805|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 149, False: 656]
  |  |  |  |  |  Branch (884:43): [True: 149, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6152|    149|			highest_tsn = stcb->asoc.highest_tsn_inside_nr_map;
 6153|    656|		} else {
 6154|    656|			highest_tsn = stcb->asoc.highest_tsn_inside_map;
 6155|    656|		}
 6156|    805|		was_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn);
  ------------------
  |  |  889|    805|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    805|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 26, False: 779]
  |  |  |  |  |  Branch (883:43): [True: 26, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    805|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 779]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6157|    805|		stcb->asoc.send_sack = 1;
 6158|    805|		sctp_sack_check(stcb, was_a_gap);
 6159|  20.8k|	} else if (fwd_tsn_seen) {
  ------------------
  |  Branch (6159:13): [True: 234, False: 20.6k]
  ------------------
 6160|    234|		stcb->asoc.send_sack = 1;
 6161|    234|	}
 6162|       |	/* trigger send of any chunks in queue... */
 6163|  21.6k|trigger_send:
 6164|       |#ifdef SCTP_AUDITING_ENABLED
 6165|       |	sctp_audit_log(0xE0, 2);
 6166|       |	sctp_auditing(1, inp, stcb, net);
 6167|       |#endif
 6168|  21.6k|	SCTPDBG(SCTP_DEBUG_INPUT1,
 6169|  21.6k|		"Check for chunk output prw:%d tqe:%d tf=%d\n",
 6170|  21.6k|		stcb->asoc.peers_rwnd,
 6171|  21.6k|		TAILQ_EMPTY(&stcb->asoc.control_send_queue),
 6172|  21.6k|		stcb->asoc.total_flight);
 6173|  21.6k|	un_sent = (stcb->asoc.total_output_queue_size - stcb->asoc.total_flight);
 6174|  21.6k|	if (!TAILQ_EMPTY(&stcb->asoc.control_send_queue)) {
  ------------------
  |  Branch (6174:6): [True: 16.1k, False: 5.51k]
  ------------------
 6175|  16.1k|		cnt_ctrl_ready = stcb->asoc.ctrl_queue_cnt - stcb->asoc.ecn_echo_cnt_onq;
 6176|  16.1k|	}
 6177|  21.6k|	if (!TAILQ_EMPTY(&stcb->asoc.asconf_send_queue) ||
  ------------------
  |  Branch (6177:6): [True: 0, False: 21.6k]
  ------------------
 6178|  21.6k|	    cnt_ctrl_ready ||
  ------------------
  |  Branch (6178:6): [True: 16.1k, False: 5.51k]
  ------------------
 6179|  5.51k|	    stcb->asoc.trigger_reset ||
  ------------------
  |  Branch (6179:6): [True: 0, False: 5.51k]
  ------------------
 6180|  5.51k|	    ((un_sent > 0) &&
  ------------------
  |  Branch (6180:7): [True: 334, False: 5.18k]
  ------------------
 6181|  16.4k|	     (stcb->asoc.peers_rwnd > 0 || stcb->asoc.total_flight == 0))) {
  ------------------
  |  Branch (6181:8): [True: 284, False: 50]
  |  Branch (6181:37): [True: 50, False: 0]
  ------------------
 6182|  16.4k|		SCTPDBG(SCTP_DEBUG_INPUT3, "Calling chunk OUTPUT\n");
 6183|  16.4k|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  364|  16.4k|#define SCTP_OUTPUT_FROM_CONTROL_PROC   3
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  16.4k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 6184|  16.4k|		SCTPDBG(SCTP_DEBUG_INPUT3, "chunk OUTPUT returns\n");
 6185|  16.4k|	}
 6186|       |#ifdef SCTP_AUDITING_ENABLED
 6187|       |	sctp_audit_log(0xE0, 3);
 6188|       |	sctp_auditing(2, inp, stcb, net);
 6189|       |#endif
 6190|  23.7k| out:
 6191|  23.7k|	if (stcb != NULL) {
  ------------------
  |  Branch (6191:6): [True: 21.9k, False: 1.75k]
  ------------------
 6192|  21.9k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  21.9k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  21.9k|	do {                         \
  |  |  |  |  113|  21.9k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 21.9k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  21.9k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 21.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6193|  21.9k|	}
 6194|  23.7k|#if defined(__Userspace__)
 6195|  23.7k|	if (upcall_socket != NULL) {
  ------------------
  |  Branch (6195:6): [True: 23.7k, False: 0]
  ------------------
 6196|  23.7k|		if (upcall_socket->so_upcall != NULL) {
  ------------------
  |  Branch (6196:7): [True: 23.7k, False: 0]
  ------------------
 6197|  23.7k|			if (soreadable(upcall_socket) ||
  ------------------
  |  |  443|  47.5k|    ((int)((so)->so_rcv.sb_cc) >= (so)->so_rcv.sb_lowat || \
  |  |  ------------------
  |  |  |  Branch (443:6): [True: 8.68k, False: 15.0k]
  |  |  ------------------
  |  |  444|  23.7k|	((so)->so_rcv.sb_state & SBS_CANTRCVMORE) || \
  |  |  ------------------
  |  |  |  |  360|  15.0k|#define	SBS_CANTRCVMORE		0x0020	/* can't receive more data from peer */
  |  |  ------------------
  |  |  |  Branch (444:2): [True: 0, False: 15.0k]
  |  |  ------------------
  |  |  445|  23.7k|	!TAILQ_EMPTY(&(so)->so_comp) || (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (445:2): [True: 0, False: 15.0k]
  |  |  |  Branch (445:34): [True: 0, False: 15.0k]
  |  |  ------------------
  ------------------
 6198|  15.0k|			    sowriteable(upcall_socket) ||
  ------------------
  |  |  458|  38.8k|    ((sbspace(&(so)->so_snd) >= (so)->so_snd.sb_lowat && \
  |  |  ------------------
  |  |  |  |  434|  15.0k|    ((long) min((int)((sb)->sb_hiwat - (sb)->sb_cc), \
  |  |  |  |  ------------------
  |  |  |  |  |  |   66|  15.0k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (66:19): [True: 0, False: 15.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  435|  15.0k|	 (int)((sb)->sb_mbmax - (sb)->sb_mbcnt)))
  |  |  ------------------
  |  |  |  Branch (458:7): [True: 15.0k, False: 0]
  |  |  ------------------
  |  |  459|  15.0k|      (((so)->so_state&SS_ISCONNECTED))) ||              \
  |  |  ------------------
  |  |  |  |  340|  15.0k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  |  |  ------------------
  |  |  |  Branch (459:7): [True: 3.61k, False: 11.4k]
  |  |  ------------------
  |  |  460|  15.0k|     ((so)->so_snd.sb_state & SBS_CANTSENDMORE) || \
  |  |  ------------------
  |  |  |  |  359|  11.4k|#define	SBS_CANTSENDMORE	0x0010	/* can't send more data to peer */
  |  |  ------------------
  |  |  |  Branch (460:6): [True: 0, False: 11.4k]
  |  |  ------------------
  |  |  461|  38.8k|     (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (461:6): [True: 0, False: 11.4k]
  |  |  ------------------
  ------------------
 6199|  12.2k|			    upcall_socket->so_error) {
  ------------------
  |  Branch (6199:8): [True: 0, False: 11.4k]
  ------------------
 6200|  12.2k|				(*upcall_socket->so_upcall)(upcall_socket, upcall_socket->so_upcallarg, M_NOWAIT);
  ------------------
  |  |   60|  12.2k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 6201|  12.2k|			}
 6202|  23.7k|		}
 6203|  23.7k|		ACCEPT_LOCK();
  ------------------
  |  |  256|  23.7k|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6204|  23.7k|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|  23.7k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  23.7k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6205|  23.7k|		sorele(upcall_socket);
  ------------------
  |  |  412|  23.7k|#define	sorele(so) do {							\
  |  |  413|  23.7k|	ACCEPT_LOCK_ASSERT();						\
  |  |  ------------------
  |  |  |  |  263|  23.7k|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  414|  23.7k|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|  23.7k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  23.7k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  415|  23.7k|	KASSERT((so)->so_count > 0, ("sorele"));			\
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  416|  23.7k|	if (--(so)->so_count == 0) {					\
  |  |  ------------------
  |  |  |  Branch (416:6): [True: 0, False: 23.7k]
  |  |  ------------------
  |  |  417|      0|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  418|      0|			(so), (so)->so_count,				\
  |  |  419|      0|			__func__, __FILE__, __LINE__)			\
  |  |  420|      0|		sofree(so);						\
  |  |  421|      0|	}								\
  |  |  422|  23.7k|	else {								\
  |  |  423|  23.7k|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  424|  23.7k|			(so), (so)->so_count,				\
  |  |  425|  23.7k|			__func__, __FILE__, __LINE__)			\
  |  |  426|  23.7k|		SOCK_UNLOCK(so);					\
  |  |  ------------------
  |  |  |  |  529|  23.7k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|  23.7k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  427|  23.7k|		ACCEPT_UNLOCK();					\
  |  |  ------------------
  |  |  |  |  257|  23.7k|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  428|  23.7k|	}								\
  |  |  429|  23.7k|} while (0)
  |  |  ------------------
  |  |  |  Branch (429:10): [Folded, False: 23.7k]
  |  |  ------------------
  ------------------
 6206|  23.7k|	}
 6207|  23.7k|#endif
 6208|  23.7k|	if (inp_decr != NULL) {
  ------------------
  |  Branch (6208:6): [True: 0, False: 23.7k]
  ------------------
 6209|       |		/* reduce ref-count */
 6210|      0|		SCTP_INP_WLOCK(inp_decr);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6211|      0|		SCTP_INP_DECR_REF(inp_decr);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 6212|      0|		SCTP_INP_WUNLOCK(inp_decr);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6213|      0|	}
 6214|  23.7k|	return;
 6215|  23.7k|}
sctp_input.c:sctp_process_control:
 4714|  20.1k|{
 4715|  20.1k|	struct sctp_association *asoc;
 4716|  20.1k|	struct mbuf *op_err;
 4717|  20.1k|	char msg[SCTP_DIAG_INFO_LEN];
 4718|  20.1k|	uint32_t vtag_in;
 4719|  20.1k|	int num_chunks = 0;	/* number of control chunks processed */
 4720|  20.1k|	uint32_t chk_length, contiguous;
 4721|  20.1k|	int ret;
 4722|  20.1k|	int abort_no_unlock = 0;
 4723|  20.1k|	int ecne_seen = 0;
 4724|  20.1k|	int abort_flag;
 4725|       |	/*
 4726|       |	 * How big should this be, and should it be alloc'd? Lets try the
 4727|       |	 * d-mtu-ceiling for now (2k) and that should hopefully work ...
 4728|       |	 * until we get into jumbo grams and such..
 4729|       |	 */
 4730|  20.1k|	uint8_t chunk_buf[SCTP_CHUNK_BUFFER_SIZE];
 4731|  20.1k|	int got_auth = 0;
 4732|  20.1k|	uint32_t auth_offset = 0, auth_len = 0;
 4733|  20.1k|	int auth_skipped = 0;
 4734|  20.1k|	int asconf_cnt = 0;
 4735|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4736|       |	struct socket *so;
 4737|       |#endif
 4738|       |
 4739|  20.1k|	SCTPDBG(SCTP_DEBUG_INPUT1, "sctp_process_control: iphlen=%u, offset=%u, length=%u stcb:%p\n",
 4740|  20.1k|		iphlen, *offset, length, (void *)stcb);
 4741|       |
 4742|  20.1k|	if (stcb) {
  ------------------
  |  Branch (4742:6): [True: 20.1k, False: 0]
  ------------------
 4743|  20.1k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  20.1k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  20.1k|	do {                         \
  |  |  |  |  113|  20.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 20.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  20.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 20.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4744|  20.1k|	}
 4745|       |	/* validate chunk header length... */
 4746|  20.1k|	if (ntohs(ch->chunk_length) < sizeof(*ch)) {
  ------------------
  |  Branch (4746:6): [True: 5, False: 20.1k]
  ------------------
 4747|      5|		SCTPDBG(SCTP_DEBUG_INPUT1, "Invalid header length %d\n",
 4748|      5|			ntohs(ch->chunk_length));
 4749|      5|		*offset = length;
 4750|      5|		return (stcb);
 4751|      5|	}
 4752|       |	/*
 4753|       |	 * validate the verification tag
 4754|       |	 */
 4755|  20.1k|	vtag_in = ntohl(sh->v_tag);
 4756|       |
 4757|  20.1k|	if (ch->chunk_type == SCTP_INITIATION) {
  ------------------
  |  |  455|  20.1k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4757:6): [True: 17, False: 20.1k]
  ------------------
 4758|     17|		SCTPDBG(SCTP_DEBUG_INPUT1, "Its an INIT of len:%d vtag:%x\n",
 4759|     17|			ntohs(ch->chunk_length), vtag_in);
 4760|     17|		if (vtag_in != 0) {
  ------------------
  |  Branch (4760:7): [True: 17, False: 0]
  ------------------
 4761|       |			/* protocol error- silently discard... */
 4762|     17|			SCTP_STAT_INCR(sctps_badvtag);
  ------------------
  |  | 1112|     17|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     17|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     17|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4763|     17|			if (stcb != NULL) {
  ------------------
  |  Branch (4763:8): [True: 17, False: 0]
  ------------------
 4764|     17|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     17|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     17|	do {                         \
  |  |  |  |  113|     17|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     17|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4765|     17|			}
 4766|     17|			return (NULL);
 4767|     17|		}
 4768|  20.1k|	} else if (ch->chunk_type != SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  20.1k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (4768:13): [True: 20.1k, False: 35]
  ------------------
 4769|       |		/*
 4770|       |		 * If there is no stcb, skip the AUTH chunk and process
 4771|       |		 * later after a stcb is found (to validate the lookup was
 4772|       |		 * valid.
 4773|       |		 */
 4774|  20.1k|		if ((ch->chunk_type == SCTP_AUTHENTICATION) &&
  ------------------
  |  |  470|  20.1k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (4774:7): [True: 2.24k, False: 17.8k]
  ------------------
 4775|  2.24k|		    (stcb == NULL) &&
  ------------------
  |  Branch (4775:7): [True: 0, False: 2.24k]
  ------------------
 4776|      0|		    (inp->auth_supported == 1)) {
  ------------------
  |  Branch (4776:7): [True: 0, False: 0]
  ------------------
 4777|       |			/* save this chunk for later processing */
 4778|      0|			auth_skipped = 1;
 4779|      0|			auth_offset = *offset;
 4780|      0|			auth_len = ntohs(ch->chunk_length);
 4781|       |
 4782|       |			/* (temporarily) move past this chunk */
 4783|      0|			*offset += SCTP_SIZE32(auth_len);
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4784|      0|			if (*offset >= length) {
  ------------------
  |  Branch (4784:8): [True: 0, False: 0]
  ------------------
 4785|       |				/* no more data left in the mbuf chain */
 4786|      0|				*offset = length;
 4787|      0|				return (NULL);
 4788|      0|			}
 4789|      0|			ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 4790|      0|								   sizeof(struct sctp_chunkhdr), chunk_buf);
 4791|      0|		}
 4792|  20.1k|		if (ch == NULL) {
  ------------------
  |  Branch (4792:7): [True: 0, False: 20.1k]
  ------------------
 4793|       |			/* Help */
 4794|      0|			*offset = length;
 4795|      0|			return (stcb);
 4796|      0|		}
 4797|  20.1k|		if (ch->chunk_type == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  20.1k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (4797:7): [True: 0, False: 20.1k]
  ------------------
 4798|      0|			goto process_control_chunks;
 4799|      0|		}
 4800|       |		/*
 4801|       |		 * first check if it's an ASCONF with an unknown src addr we
 4802|       |		 * need to look inside to find the association
 4803|       |		 */
 4804|  20.1k|		if (ch->chunk_type == SCTP_ASCONF && stcb == NULL) {
  ------------------
  |  |  489|  40.2k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (4804:7): [True: 9, False: 20.1k]
  |  Branch (4804:40): [True: 0, False: 9]
  ------------------
 4805|      0|			struct sctp_chunkhdr *asconf_ch = ch;
 4806|      0|			uint32_t asconf_offset = 0, asconf_len = 0;
 4807|       |
 4808|       |			/* inp's refcount may be reduced */
 4809|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 4810|       |
 4811|      0|			asconf_offset = *offset;
 4812|      0|			do {
 4813|      0|				asconf_len = ntohs(asconf_ch->chunk_length);
 4814|      0|				if (asconf_len < sizeof(struct sctp_asconf_paramhdr))
  ------------------
  |  Branch (4814:9): [True: 0, False: 0]
  ------------------
 4815|      0|					break;
 4816|      0|				stcb = sctp_findassociation_ep_asconf(m,
 4817|      0|				                                      *offset,
 4818|      0|				                                      dst,
 4819|      0|				                                      sh, &inp, netp, vrf_id);
 4820|      0|				if (stcb != NULL)
  ------------------
  |  Branch (4820:9): [True: 0, False: 0]
  ------------------
 4821|      0|					break;
 4822|      0|				asconf_offset += SCTP_SIZE32(asconf_len);
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4823|      0|				asconf_ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, asconf_offset,
 4824|      0|										  sizeof(struct sctp_chunkhdr), chunk_buf);
 4825|      0|			} while (asconf_ch != NULL && asconf_ch->chunk_type == SCTP_ASCONF);
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (4825:13): [True: 0, False: 0]
  |  Branch (4825:34): [True: 0, False: 0]
  ------------------
 4826|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (4826:8): [True: 0, False: 0]
  ------------------
 4827|       |				/*
 4828|       |				 * reduce inp's refcount if not reduced in
 4829|       |				 * sctp_findassociation_ep_asconf().
 4830|       |				 */
 4831|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 4832|      0|			}
 4833|       |
 4834|       |			/* now go back and verify any auth chunk to be sure */
 4835|      0|			if (auth_skipped && (stcb != NULL)) {
  ------------------
  |  Branch (4835:8): [True: 0, False: 0]
  |  Branch (4835:24): [True: 0, False: 0]
  ------------------
 4836|      0|				struct sctp_auth_chunk *auth;
 4837|       |
 4838|      0|				if (auth_len <= SCTP_CHUNK_BUFFER_SIZE) {
  ------------------
  |  |  689|      0|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
  |  Branch (4838:9): [True: 0, False: 0]
  ------------------
 4839|      0|					auth = (struct sctp_auth_chunk *)sctp_m_getptr(m, auth_offset, auth_len, chunk_buf);
 4840|      0|					got_auth = 1;
 4841|      0|					auth_skipped = 0;
 4842|      0|				} else {
 4843|      0|					auth = NULL;
 4844|      0|				}
 4845|      0|				if ((auth == NULL) || sctp_handle_auth(stcb, auth, m,
  ------------------
  |  Branch (4845:9): [True: 0, False: 0]
  |  Branch (4845:27): [True: 0, False: 0]
  ------------------
 4846|      0|								       auth_offset)) {
 4847|       |					/* auth HMAC failed so dump it */
 4848|      0|					*offset = length;
 4849|      0|					return (stcb);
 4850|      0|				} else {
 4851|       |					/* remaining chunks are HMAC checked */
 4852|      0|					stcb->asoc.authenticated = 1;
 4853|      0|				}
 4854|      0|			}
 4855|      0|		}
 4856|  20.1k|		if (stcb == NULL) {
  ------------------
  |  Branch (4856:7): [True: 0, False: 20.1k]
  ------------------
 4857|      0|			SCTP_SNPRINTF(msg, sizeof(msg), "OOTB, %s:%d at %s", __FILE__, __LINE__, __func__);
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 4858|      0|			op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 4859|      0|			                             msg);
 4860|       |			/* no association, so it's out of the blue... */
 4861|      0|			sctp_handle_ootb(m, iphlen, *offset, src, dst, sh, inp, op_err,
 4862|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4863|       |			                 mflowtype, mflowid, inp->fibnum,
 4864|       |#endif
 4865|      0|					 vrf_id, port);
 4866|      0|			*offset = length;
 4867|      0|			return (NULL);
 4868|      0|		}
 4869|  20.1k|		asoc = &stcb->asoc;
 4870|       |		/* ABORT and SHUTDOWN can use either v_tag... */
 4871|  20.1k|		if ((ch->chunk_type == SCTP_ABORT_ASSOCIATION) ||
  ------------------
  |  |  460|  20.1k|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (4871:7): [True: 61, False: 20.0k]
  ------------------
 4872|  20.0k|		    (ch->chunk_type == SCTP_SHUTDOWN_COMPLETE) ||
  ------------------
  |  |  468|  20.0k|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (4872:7): [True: 27, False: 20.0k]
  ------------------
 4873|  20.0k|		    (ch->chunk_type == SCTP_PACKET_DROPPED)) {
  ------------------
  |  |  479|  20.0k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (4873:7): [True: 468, False: 19.5k]
  ------------------
 4874|       |			/* Take the T-bit always into account. */
 4875|    556|			if ((((ch->chunk_flags & SCTP_HAD_NO_TCB) == 0) &&
  ------------------
  |  |  493|    556|#define SCTP_HAD_NO_TCB		0x01
  ------------------
  |  Branch (4875:9): [True: 538, False: 18]
  ------------------
 4876|    538|			     (vtag_in == asoc->my_vtag)) ||
  ------------------
  |  Branch (4876:9): [True: 538, False: 0]
  ------------------
 4877|     18|			    (((ch->chunk_flags & SCTP_HAD_NO_TCB) == SCTP_HAD_NO_TCB) &&
  ------------------
  |  |  493|     18|#define SCTP_HAD_NO_TCB		0x01
  ------------------
              			    (((ch->chunk_flags & SCTP_HAD_NO_TCB) == SCTP_HAD_NO_TCB) &&
  ------------------
  |  |  493|     18|#define SCTP_HAD_NO_TCB		0x01
  ------------------
  |  Branch (4877:9): [True: 18, False: 0]
  ------------------
 4878|     18|			     (asoc->peer_vtag != htonl(0)) &&
  ------------------
  |  Branch (4878:9): [True: 16, False: 2]
  ------------------
 4879|    538|			     (vtag_in == asoc->peer_vtag))) {
  ------------------
  |  Branch (4879:9): [True: 0, False: 16]
  ------------------
 4880|       |				/* this is valid */
 4881|    538|			} else {
 4882|       |				/* drop this packet... */
 4883|     18|				SCTP_STAT_INCR(sctps_badvtag);
  ------------------
  |  | 1112|     18|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     18|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     18|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4884|     18|				if (stcb != NULL) {
  ------------------
  |  Branch (4884:9): [True: 18, False: 0]
  ------------------
 4885|     18|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     18|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     18|	do {                         \
  |  |  |  |  113|     18|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 18]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     18|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 18]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4886|     18|				}
 4887|     18|				return (NULL);
 4888|     18|			}
 4889|  19.5k|		} else {
 4890|       |			/* for all other chunks, vtag must match */
 4891|  19.5k|			if (vtag_in != asoc->my_vtag) {
  ------------------
  |  Branch (4891:8): [True: 0, False: 19.5k]
  ------------------
 4892|       |				/* invalid vtag... */
 4893|      0|				SCTPDBG(SCTP_DEBUG_INPUT3,
 4894|      0|					"invalid vtag: %xh, expect %xh\n",
 4895|      0|					vtag_in, asoc->my_vtag);
 4896|      0|				SCTP_STAT_INCR(sctps_badvtag);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4897|      0|				if (stcb != NULL) {
  ------------------
  |  Branch (4897:9): [True: 0, False: 0]
  ------------------
 4898|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4899|      0|				}
 4900|      0|				*offset = length;
 4901|      0|				return (NULL);
 4902|      0|			}
 4903|  19.5k|		}
 4904|  20.1k|	}			/* end if !SCTP_COOKIE_ECHO */
 4905|       |	/*
 4906|       |	 * process all control chunks...
 4907|       |	 */
 4908|  20.1k|	if (((ch->chunk_type == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|  20.1k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (4908:7): [True: 83, False: 20.0k]
  ------------------
 4909|  20.0k|	     (ch->chunk_type == SCTP_NR_SELECTIVE_ACK) ||
  ------------------
  |  |  472|  20.0k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (4909:7): [True: 67, False: 19.9k]
  ------------------
 4910|  19.9k|	     (ch->chunk_type == SCTP_HEARTBEAT_REQUEST)) &&
  ------------------
  |  |  458|  19.9k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (4910:7): [True: 131, False: 19.8k]
  ------------------
 4911|    281|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|    281|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    281|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|    281|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4911:6): [True: 52, False: 229]
  ------------------
 4912|       |		/* implied cookie-ack.. we must have lost the ack */
 4913|     52|		sctp_handle_cookie_ack((struct sctp_cookie_ack_chunk *)ch, stcb,
 4914|     52|				       *netp);
 4915|     52|	}
 4916|       |
 4917|  20.1k| process_control_chunks:
 4918|   707k|	while (IS_SCTP_CONTROL(ch)) {
  ------------------
  |  |  385|   707k|#define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  454|   707k|#define SCTP_DATA		0x00
  |  |  ------------------
  |  |               #define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  474|   705k|#define SCTP_IDATA		0x40
  |  |  ------------------
  |  |  |  Branch (385:29): [True: 705k, False: 1.36k]
  |  |  |  Branch (385:63): [True: 705k, False: 210]
  |  |  ------------------
  ------------------
 4919|       |		/* validate chunk length */
 4920|   705k|		chk_length = ntohs(ch->chunk_length);
 4921|   705k|		SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_process_control: processing a chunk type=%u, len=%u\n",
 4922|   705k|			ch->chunk_type, chk_length);
 4923|   705k|		SCTP_LTRACE_CHK(inp, stcb, ch->chunk_type, chk_length);
 4924|   705k|		if (chk_length < sizeof(*ch) ||
  ------------------
  |  Branch (4924:7): [True: 127, False: 705k]
  ------------------
 4925|   705k|		    (*offset + (int)chk_length) > length) {
  ------------------
  |  Branch (4925:7): [True: 1.16k, False: 704k]
  ------------------
 4926|  1.29k|			*offset = length;
 4927|  1.29k|			return (stcb);
 4928|  1.29k|		}
 4929|   704k|		SCTP_STAT_INCR_COUNTER64(sctps_incontrolchunks);
  ------------------
  |  | 1128|   704k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|   704k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|   704k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|   704k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4930|       |		/*
 4931|       |		 * INIT and INIT-ACK only gets the init ack "header" portion
 4932|       |		 * only because we don't have to process the peer's COOKIE.
 4933|       |		 * All others get a complete chunk.
 4934|       |		 */
 4935|   704k|		switch (ch->chunk_type) {
 4936|      9|		case SCTP_INITIATION:
  ------------------
  |  |  455|      9|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4936:3): [True: 9, False: 704k]
  ------------------
 4937|      9|			contiguous = sizeof(struct sctp_init_chunk);
 4938|      9|			break;
 4939|  8.41k|		case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|  8.41k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (4939:3): [True: 8.41k, False: 696k]
  ------------------
 4940|  8.41k|			contiguous = sizeof(struct sctp_init_ack_chunk);
 4941|  8.41k|			break;
 4942|   696k|		default:
  ------------------
  |  Branch (4942:3): [True: 696k, False: 8.42k]
  ------------------
 4943|   696k|			contiguous = min(chk_length, sizeof(chunk_buf));
  ------------------
  |  |   66|   696k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 1.35k, False: 694k]
  |  |  ------------------
  ------------------
 4944|   696k|			break;
 4945|   704k|		}
 4946|   704k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 4947|   704k|		                                           contiguous,
 4948|   704k|		                                           chunk_buf);
 4949|   704k|		if (ch == NULL) {
  ------------------
  |  Branch (4949:7): [True: 2, False: 704k]
  ------------------
 4950|      2|			*offset = length;
 4951|      2|			return (stcb);
 4952|      2|		}
 4953|       |
 4954|   704k|		num_chunks++;
 4955|       |		/* Save off the last place we got a control from */
 4956|   704k|		if (stcb != NULL) {
  ------------------
  |  Branch (4956:7): [True: 704k, False: 0]
  ------------------
 4957|   704k|			if (((netp != NULL) && (*netp != NULL)) || (ch->chunk_type == SCTP_ASCONF)) {
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (4957:9): [True: 704k, False: 0]
  |  Branch (4957:27): [True: 704k, False: 0]
  |  Branch (4957:47): [True: 0, False: 0]
  ------------------
 4958|       |				/*
 4959|       |				 * allow last_control to be NULL if
 4960|       |				 * ASCONF... ASCONF processing will find the
 4961|       |				 * right net later
 4962|       |				 */
 4963|   704k|				if ((netp != NULL) && (*netp != NULL))
  ------------------
  |  Branch (4963:9): [True: 704k, False: 0]
  |  Branch (4963:27): [True: 704k, False: 0]
  ------------------
 4964|   704k|					stcb->asoc.last_control_chunk_from = *netp;
 4965|   704k|			}
 4966|   704k|		}
 4967|       |#ifdef SCTP_AUDITING_ENABLED
 4968|       |		sctp_audit_log(0xB0, ch->chunk_type);
 4969|       |#endif
 4970|       |
 4971|       |		/* check to see if this chunk required auth, but isn't */
 4972|   704k|		if ((stcb != NULL) &&
  ------------------
  |  Branch (4972:7): [True: 704k, False: 0]
  ------------------
 4973|   704k|		    sctp_auth_is_required_chunk(ch->chunk_type, stcb->asoc.local_auth_chunks) &&
  ------------------
  |  |  100|  1.40M|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 12.3k, False: 692k]
  |  |  |  Branch (100:51): [True: 0, False: 704k]
  |  |  ------------------
  ------------------
 4974|  12.3k|		    !stcb->asoc.authenticated) {
  ------------------
  |  Branch (4974:7): [True: 736, False: 11.6k]
  ------------------
 4975|       |			/* "silently" ignore */
 4976|    736|			SCTP_STAT_INCR(sctps_recvauthmissing);
  ------------------
  |  | 1112|    736|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    736|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    736|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4977|    736|			goto next_chunk;
 4978|    736|		}
 4979|   703k|		switch (ch->chunk_type) {
 4980|      9|		case SCTP_INITIATION:
  ------------------
  |  |  455|      9|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4980:3): [True: 9, False: 703k]
  ------------------
 4981|      9|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_INIT\n");
 4982|       |			/* The INIT chunk must be the only chunk. */
 4983|      9|			if ((num_chunks > 1) ||
  ------------------
  |  Branch (4983:8): [True: 9, False: 0]
  ------------------
 4984|      9|			    (length - *offset > (int)SCTP_SIZE32(chk_length))) {
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (4984:8): [True: 0, False: 0]
  ------------------
 4985|       |				/*
 4986|       |				 * RFC 4960bis requires stopping the
 4987|       |				 * processing of the packet.
 4988|       |				 */
 4989|      9|				*offset = length;
 4990|      9|				return (stcb);
 4991|      9|			}
 4992|       |			/* Honor our resource limit. */
 4993|      0|			if (chk_length > SCTP_LARGEST_INIT_ACCEPTED) {
  ------------------
  |  |   69|      0|#define SCTP_LARGEST_INIT_ACCEPTED (65535 - 2048)
  ------------------
  |  Branch (4993:8): [True: 0, False: 0]
  ------------------
 4994|      0|				op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
  ------------------
  |  |  369|      0|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
 4995|      0|				sctp_send_abort(m, iphlen, src, dst, sh, 0, op_err,
 4996|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4997|       |				                mflowtype, mflowid, inp->fibnum,
 4998|       |#endif
 4999|      0|				                vrf_id, port);
 5000|      0|				*offset = length;
 5001|      0|				if (stcb != NULL) {
  ------------------
  |  Branch (5001:9): [True: 0, False: 0]
  ------------------
 5002|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5003|      0|				}
 5004|      0|				return (NULL);
 5005|      0|			}
 5006|      0|			sctp_handle_init(m, iphlen, *offset, src, dst, sh,
 5007|      0|			                 (struct sctp_init_chunk *)ch, inp,
 5008|      0|			                 stcb, *netp,
 5009|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5010|       |			                 mflowtype, mflowid,
 5011|       |#endif
 5012|      0|			                 vrf_id, port);
 5013|      0|			*offset = length;
 5014|      0|			if (stcb != NULL) {
  ------------------
  |  Branch (5014:8): [True: 0, False: 0]
  ------------------
 5015|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5016|      0|			}
 5017|      0|			return (NULL);
 5018|      0|			break;
 5019|    118|		case SCTP_PAD_CHUNK:
  ------------------
  |  |  484|    118|#define SCTP_PAD_CHUNK          0x84
  ------------------
  |  Branch (5019:3): [True: 118, False: 703k]
  ------------------
 5020|    118|			break;
 5021|  8.40k|		case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|  8.40k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (5021:3): [True: 8.40k, False: 695k]
  ------------------
 5022|  8.40k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_INIT_ACK\n");
 5023|  8.40k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  8.40k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5023:8): [True: 0, False: 8.40k]
  ------------------
 5024|       |				/* We are not interested anymore */
 5025|      0|				if ((stcb != NULL) && (stcb->asoc.total_output_queue_size)) {
  ------------------
  |  Branch (5025:9): [True: 0, False: 0]
  |  Branch (5025:27): [True: 0, False: 0]
  ------------------
 5026|      0|					;
 5027|      0|				} else {
 5028|      0|					*offset = length;
 5029|      0|					if (stcb != NULL) {
  ------------------
  |  Branch (5029:10): [True: 0, False: 0]
  ------------------
 5030|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5031|       |						so = SCTP_INP_SO(inp);
 5032|       |						atomic_add_int(&stcb->asoc.refcnt, 1);
 5033|       |						SCTP_TCB_UNLOCK(stcb);
 5034|       |						SCTP_SOCKET_LOCK(so, 1);
 5035|       |						SCTP_TCB_LOCK(stcb);
 5036|       |						atomic_subtract_int(&stcb->asoc.refcnt, 1);
 5037|       |#endif
 5038|      0|						(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
 5039|      0|						                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_29);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              						                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_29);
  ------------------
  |  |  797|      0|#define SCTP_LOC_29 0x0000001d
  ------------------
 5040|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5041|       |						SCTP_SOCKET_UNLOCK(so, 1);
 5042|       |#endif
 5043|      0|					}
 5044|      0|					return (NULL);
 5045|      0|				}
 5046|      0|			}
 5047|       |			/* The INIT-ACK chunk must be the only chunk. */
 5048|  8.40k|			if ((num_chunks > 1) ||
  ------------------
  |  Branch (5048:8): [True: 8, False: 8.40k]
  ------------------
 5049|  8.40k|			    (length - *offset > (int)SCTP_SIZE32(chk_length))) {
  ------------------
  |  |  383|  8.40k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (5049:8): [True: 21, False: 8.38k]
  ------------------
 5050|     29|				*offset = length;
 5051|     29|				return (stcb);
 5052|     29|			}
 5053|  8.38k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5053:8): [True: 8.38k, False: 0]
  |  Branch (5053:26): [True: 8.38k, False: 0]
  ------------------
 5054|  8.38k|				ret = sctp_handle_init_ack(m, iphlen, *offset,
 5055|  8.38k|				                           src, dst, sh,
 5056|  8.38k|				                           (struct sctp_init_ack_chunk *)ch,
 5057|  8.38k|				                           stcb, *netp,
 5058|  8.38k|				                           &abort_no_unlock,
 5059|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5060|       |				                           mflowtype, mflowid,
 5061|       |#endif
 5062|  8.38k|				                           vrf_id);
 5063|  8.38k|			} else {
 5064|      0|				ret = -1;
 5065|      0|			}
 5066|  8.38k|			*offset = length;
 5067|  8.38k|			if (abort_no_unlock) {
  ------------------
  |  Branch (5067:8): [True: 493, False: 7.88k]
  ------------------
 5068|    493|				return (NULL);
 5069|    493|			}
 5070|       |			/*
 5071|       |			 * Special case, I must call the output routine to
 5072|       |			 * get the cookie echoed
 5073|       |			 */
 5074|  7.88k|			if ((stcb != NULL) && (ret == 0)) {
  ------------------
  |  Branch (5074:8): [True: 7.88k, False: 0]
  |  Branch (5074:26): [True: 7.88k, False: 1]
  ------------------
 5075|  7.88k|				sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  364|  7.88k|#define SCTP_OUTPUT_FROM_CONTROL_PROC   3
  ------------------
              				sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  7.88k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5076|  7.88k|			}
 5077|  7.88k|			return (stcb);
 5078|      0|			break;
 5079|  6.93k|		case SCTP_SELECTIVE_ACK:
  ------------------
  |  |  457|  6.93k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (5079:3): [True: 6.93k, False: 696k]
  ------------------
 5080|  9.01k|		case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|  9.01k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (5080:3): [True: 2.08k, False: 701k]
  ------------------
 5081|  9.01k|		{
 5082|  9.01k|			int abort_now = 0;
 5083|  9.01k|			uint32_t a_rwnd, cum_ack;
 5084|  9.01k|			uint16_t num_seg, num_nr_seg, num_dup;
 5085|  9.01k|			uint8_t flags;
 5086|  9.01k|			int offset_seg, offset_dup;
 5087|       |
 5088|  9.01k|			SCTPDBG(SCTP_DEBUG_INPUT3, "%s\n",
 5089|  9.01k|				ch->chunk_type == SCTP_SELECTIVE_ACK ? "SCTP_SACK" : "SCTP_NR_SACK");
 5090|  9.01k|			SCTP_STAT_INCR(sctps_recvsacks);
  ------------------
  |  | 1112|  9.01k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  9.01k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  9.01k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5091|  9.01k|			if (stcb == NULL) {
  ------------------
  |  Branch (5091:8): [True: 0, False: 9.01k]
  ------------------
 5092|      0|				SCTPDBG(SCTP_DEBUG_INDATA1, "No stcb when processing %s chunk\n",
 5093|      0|				        (ch->chunk_type == SCTP_SELECTIVE_ACK) ? "SCTP_SACK" : "SCTP_NR_SACK");
 5094|      0|				break;
 5095|      0|			}
 5096|  9.01k|			if (ch->chunk_type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  9.01k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (5096:8): [True: 6.93k, False: 2.08k]
  ------------------
 5097|  6.93k|				if (chk_length < sizeof(struct sctp_sack_chunk)) {
  ------------------
  |  Branch (5097:9): [True: 4.32k, False: 2.60k]
  ------------------
 5098|  4.32k|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size on SACK chunk, too small\n");
 5099|  4.32k|					break;
 5100|  4.32k|				}
 5101|  6.93k|			} else {
 5102|  2.08k|				if (stcb->asoc.nrsack_supported == 0) {
  ------------------
  |  Branch (5102:9): [True: 2, False: 2.07k]
  ------------------
 5103|      2|					goto unknown_chunk;
 5104|      2|				}
 5105|  2.07k|				if (chk_length < sizeof(struct sctp_nr_sack_chunk)) {
  ------------------
  |  Branch (5105:9): [True: 1.85k, False: 225]
  ------------------
 5106|  1.85k|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size on NR_SACK chunk, too small\n");
 5107|  1.85k|					break;
 5108|  1.85k|				}
 5109|  2.07k|			}
 5110|  2.83k|			if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  472|  2.83k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.83k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|  2.83k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (5110:8): [True: 200, False: 2.63k]
  ------------------
 5111|       |				/*-
 5112|       |				 * If we have sent a shutdown-ack, we will pay no
 5113|       |				 * attention to a sack sent in to us since
 5114|       |				 * we don't care anymore.
 5115|       |				 */
 5116|    200|				break;
 5117|    200|			}
 5118|  2.63k|			flags = ch->chunk_flags;
 5119|  2.63k|			if (ch->chunk_type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  2.63k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (5119:8): [True: 2.40k, False: 225]
  ------------------
 5120|  2.40k|				struct sctp_sack_chunk *sack;
 5121|       |
 5122|  2.40k|				sack = (struct sctp_sack_chunk *)ch;
 5123|  2.40k|				cum_ack = ntohl(sack->sack.cum_tsn_ack);
 5124|  2.40k|				num_seg = ntohs(sack->sack.num_gap_ack_blks);
 5125|  2.40k|				num_nr_seg = 0;
 5126|  2.40k|				num_dup = ntohs(sack->sack.num_dup_tsns);
 5127|  2.40k|				a_rwnd = ntohl(sack->sack.a_rwnd);
 5128|  2.40k|				if (sizeof(struct sctp_sack_chunk) +
  ------------------
  |  Branch (5128:9): [True: 742, False: 1.66k]
  ------------------
 5129|  2.40k|				    num_seg * sizeof(struct sctp_gap_ack_block) +
 5130|  2.40k|				    num_dup * sizeof(uint32_t) != chk_length) {
 5131|    742|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size of SACK chunk\n");
 5132|    742|					break;
 5133|    742|				}
 5134|  1.66k|				offset_seg = *offset + sizeof(struct sctp_sack_chunk);
 5135|  1.66k|				offset_dup = offset_seg + num_seg * sizeof(struct sctp_gap_ack_block);
 5136|  1.66k|			} else {
 5137|    225|				struct sctp_nr_sack_chunk *nr_sack;
 5138|       |
 5139|    225|				nr_sack = (struct sctp_nr_sack_chunk *)ch;
 5140|    225|				cum_ack = ntohl(nr_sack->nr_sack.cum_tsn_ack);
 5141|    225|				num_seg = ntohs(nr_sack->nr_sack.num_gap_ack_blks);
 5142|    225|				num_nr_seg = ntohs(nr_sack->nr_sack.num_nr_gap_ack_blks);
 5143|    225|				num_dup = ntohs(nr_sack->nr_sack.num_dup_tsns);
 5144|    225|				a_rwnd = ntohl(nr_sack->nr_sack.a_rwnd);
 5145|    225|				if (sizeof(struct sctp_nr_sack_chunk) +
  ------------------
  |  Branch (5145:9): [True: 175, False: 50]
  ------------------
 5146|    225|				    (num_seg + num_nr_seg) * sizeof(struct sctp_gap_ack_block) +
 5147|    225|				    num_dup * sizeof(uint32_t) != chk_length) {
 5148|    175|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size of NR_SACK chunk\n");
 5149|    175|					break;
 5150|    175|				}
 5151|     50|				offset_seg = *offset + sizeof(struct sctp_nr_sack_chunk);
 5152|     50|				offset_dup = offset_seg + (num_seg + num_nr_seg) * sizeof(struct sctp_gap_ack_block);
 5153|     50|			}
 5154|  1.71k|			SCTPDBG(SCTP_DEBUG_INPUT3, "%s process cum_ack:%x num_seg:%d a_rwnd:%d\n",
 5155|  1.71k|				(ch->chunk_type == SCTP_SELECTIVE_ACK) ? "SCTP_SACK" : "SCTP_NR_SACK",
 5156|  1.71k|			        cum_ack, num_seg, a_rwnd);
 5157|  1.71k|			stcb->asoc.seen_a_sack_this_pkt = 1;
 5158|  1.71k|			if ((stcb->asoc.pr_sctp_cnt == 0) &&
  ------------------
  |  Branch (5158:8): [True: 1.71k, False: 0]
  ------------------
 5159|  1.71k|			    (num_seg == 0) && (num_nr_seg == 0) &&
  ------------------
  |  Branch (5159:8): [True: 1.24k, False: 475]
  |  Branch (5159:26): [True: 1.20k, False: 38]
  ------------------
 5160|  1.71k|			    SCTP_TSN_GE(cum_ack, stcb->asoc.last_acked_seq) &&
  ------------------
  |  |  890|  1.20k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  2.92k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  2.40k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 253, False: 951]
  |  |  |  |  |  |  |  Branch (883:43): [True: 8, False: 245]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  2.40k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 951, False: 245]
  |  |  |  |  |  |  |  Branch (884:43): [True: 43, False: 908]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 1.15k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5161|     51|			    (stcb->asoc.saw_sack_with_frags == 0) &&
  ------------------
  |  Branch (5161:8): [True: 51, False: 0]
  ------------------
 5162|     51|			    (stcb->asoc.saw_sack_with_nr_frags == 0) &&
  ------------------
  |  Branch (5162:8): [True: 51, False: 0]
  ------------------
 5163|     51|			    (!TAILQ_EMPTY(&stcb->asoc.sent_queue))) {
  ------------------
  |  Branch (5163:8): [True: 24, False: 27]
  ------------------
 5164|       |				/*
 5165|       |				 * We have a SIMPLE sack having no
 5166|       |				 * prior segments and data on sent
 5167|       |				 * queue to be acked. Use the
 5168|       |				 * faster path sack processing. We
 5169|       |				 * also allow window update sacks
 5170|       |				 * with no missing segments to go
 5171|       |				 * this way too.
 5172|       |				 */
 5173|     24|				sctp_express_handle_sack(stcb, cum_ack, a_rwnd,
 5174|     24|				                         &abort_now, ecne_seen);
 5175|  1.69k|			} else {
 5176|  1.69k|				if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5176:9): [True: 1.69k, False: 0]
  |  Branch (5176:27): [True: 1.69k, False: 0]
  ------------------
 5177|  1.69k|					sctp_handle_sack(m, offset_seg, offset_dup, stcb,
 5178|  1.69k|					                 num_seg, num_nr_seg, num_dup, &abort_now, flags,
 5179|  1.69k|					                 cum_ack, a_rwnd, ecne_seen);
 5180|  1.69k|				}
 5181|  1.69k|			}
 5182|  1.71k|			if (abort_now) {
  ------------------
  |  Branch (5182:8): [True: 72, False: 1.64k]
  ------------------
 5183|       |				/* ABORT signal from sack processing */
 5184|     72|				*offset = length;
 5185|     72|				return (NULL);
 5186|     72|			}
 5187|  1.64k|			if (TAILQ_EMPTY(&stcb->asoc.send_queue) &&
  ------------------
  |  Branch (5187:8): [True: 1.60k, False: 45]
  ------------------
 5188|  1.64k|			    TAILQ_EMPTY(&stcb->asoc.sent_queue) &&
  ------------------
  |  Branch (5188:8): [True: 227, False: 1.37k]
  ------------------
 5189|    227|			    (stcb->asoc.stream_queue_cnt == 0)) {
  ------------------
  |  Branch (5189:8): [True: 64, False: 163]
  ------------------
 5190|     64|				sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb,  0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  730|     64|#define SCTP_NOTIFY_SENDER_DRY                  28
  ------------------
              				sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb,  0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     64|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5191|     64|			}
 5192|  1.64k|			break;
 5193|  1.71k|		}
 5194|  28.8k|		case SCTP_HEARTBEAT_REQUEST:
  ------------------
  |  |  458|  28.8k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (5194:3): [True: 28.8k, False: 674k]
  ------------------
 5195|  28.8k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_HEARTBEAT\n");
 5196|  28.8k|			if ((stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5196:8): [True: 28.8k, False: 0]
  |  Branch (5196:26): [True: 28.8k, False: 0]
  |  Branch (5196:44): [True: 28.8k, False: 0]
  ------------------
 5197|  28.8k|				SCTP_STAT_INCR(sctps_recvheartbeat);
  ------------------
  |  | 1112|  28.8k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  28.8k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  28.8k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5198|  28.8k|				sctp_send_heartbeat_ack(stcb, m, *offset,
 5199|  28.8k|				                        chk_length, *netp);
 5200|  28.8k|			}
 5201|  28.8k|			break;
 5202|  10.2k|		case SCTP_HEARTBEAT_ACK:
  ------------------
  |  |  459|  10.2k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (5202:3): [True: 10.2k, False: 693k]
  ------------------
 5203|  10.2k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_HEARTBEAT_ACK\n");
 5204|  10.2k|			if ((stcb == NULL) || (chk_length != sizeof(struct sctp_heartbeat_chunk))) {
  ------------------
  |  Branch (5204:8): [True: 0, False: 10.2k]
  |  Branch (5204:26): [True: 7.37k, False: 2.85k]
  ------------------
 5205|       |				/* Its not ours */
 5206|  7.37k|				break;
 5207|  7.37k|			}
 5208|  2.85k|			SCTP_STAT_INCR(sctps_recvheartbeatack);
  ------------------
  |  | 1112|  2.85k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.85k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.85k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5209|  2.85k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5209:8): [True: 2.85k, False: 0]
  |  Branch (5209:26): [True: 2.85k, False: 0]
  ------------------
 5210|  2.85k|				sctp_handle_heartbeat_ack((struct sctp_heartbeat_chunk *)ch,
 5211|  2.85k|				                          stcb, *netp);
 5212|  2.85k|			}
 5213|  2.85k|			break;
 5214|     82|		case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|     82|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (5214:3): [True: 82, False: 703k]
  ------------------
 5215|     82|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ABORT, stcb %p\n",
 5216|     82|				(void *)stcb);
 5217|     82|			*offset = length;
 5218|     82|			if ((stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5218:8): [True: 82, False: 0]
  |  Branch (5218:26): [True: 82, False: 0]
  |  Branch (5218:44): [True: 82, False: 0]
  ------------------
 5219|     82|				if (sctp_handle_abort((struct sctp_abort_chunk *)ch, stcb, *netp)) {
  ------------------
  |  Branch (5219:9): [True: 78, False: 4]
  ------------------
 5220|     78|					return (NULL);
 5221|     78|				} else {
 5222|      4|					return (stcb);
 5223|      4|				}
 5224|     82|			} else {
 5225|      0|				return (NULL);
 5226|      0|			}
 5227|      0|			break;
 5228|  5.12k|		case SCTP_SHUTDOWN:
  ------------------
  |  |  461|  5.12k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (5228:3): [True: 5.12k, False: 698k]
  ------------------
 5229|  5.12k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_SHUTDOWN, stcb %p\n",
 5230|  5.12k|				(void *)stcb);
 5231|  5.12k|			if ((stcb == NULL) || (chk_length != sizeof(struct sctp_shutdown_chunk))) {
  ------------------
  |  Branch (5231:8): [True: 0, False: 5.12k]
  |  Branch (5231:26): [True: 2.76k, False: 2.36k]
  ------------------
 5232|  2.76k|				break;
 5233|  2.76k|			}
 5234|  2.36k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5234:8): [True: 2.36k, False: 0]
  |  Branch (5234:26): [True: 2.36k, False: 0]
  ------------------
 5235|  2.36k|				abort_flag = 0;
 5236|  2.36k|				sctp_handle_shutdown((struct sctp_shutdown_chunk *)ch,
 5237|  2.36k|				                     stcb, *netp, &abort_flag);
 5238|  2.36k|				if (abort_flag) {
  ------------------
  |  Branch (5238:9): [True: 112, False: 2.25k]
  ------------------
 5239|    112|					*offset = length;
 5240|    112|					return (NULL);
 5241|    112|				}
 5242|  2.36k|			}
 5243|  2.25k|			break;
 5244|  2.25k|		case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|    592|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (5244:3): [True: 592, False: 703k]
  ------------------
 5245|    592|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_SHUTDOWN_ACK, stcb %p\n", (void *)stcb);
 5246|    592|			if ((chk_length == sizeof(struct sctp_shutdown_ack_chunk)) &&
  ------------------
  |  Branch (5246:8): [True: 12, False: 580]
  ------------------
 5247|     12|			    (stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5247:8): [True: 12, False: 0]
  |  Branch (5247:26): [True: 12, False: 0]
  |  Branch (5247:44): [True: 12, False: 0]
  ------------------
 5248|     12|				sctp_handle_shutdown_ack((struct sctp_shutdown_ack_chunk *)ch, stcb, *netp);
 5249|     12|				*offset = length;
 5250|     12|				return (NULL);
 5251|     12|			}
 5252|    580|			break;
 5253|   420k|		case SCTP_OPERATION_ERROR:
  ------------------
  |  |  463|   420k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (5253:3): [True: 420k, False: 283k]
  ------------------
 5254|   420k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_OP_ERR\n");
 5255|   420k|			if ((stcb != NULL) && (netp != NULL) && (*netp != NULL) &&
  ------------------
  |  Branch (5255:8): [True: 420k, False: 0]
  |  Branch (5255:26): [True: 420k, False: 0]
  |  Branch (5255:44): [True: 420k, False: 0]
  ------------------
 5256|   420k|			    sctp_handle_error(ch, stcb, *netp, contiguous) < 0) {
  ------------------
  |  Branch (5256:8): [True: 0, False: 420k]
  ------------------
 5257|      0|				*offset = length;
 5258|      0|				return (NULL);
 5259|      0|			}
 5260|   420k|			break;
 5261|   420k|		case SCTP_COOKIE_ECHO:
  ------------------
  |  |  464|     42|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (5261:3): [True: 42, False: 703k]
  ------------------
 5262|     42|			SCTPDBG(SCTP_DEBUG_INPUT3,
 5263|     42|				"SCTP_COOKIE_ECHO, stcb %p\n", (void *)stcb);
 5264|     42|			if ((stcb != NULL) && (stcb->asoc.total_output_queue_size > 0)) {
  ------------------
  |  Branch (5264:8): [True: 42, False: 0]
  |  Branch (5264:26): [True: 26, False: 16]
  ------------------
 5265|     26|				;
 5266|     26|			} else {
 5267|     16|				if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|     16|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5267:9): [True: 0, False: 16]
  ------------------
 5268|       |					/* We are not interested anymore */
 5269|      0|				abend:
 5270|      0|					if (stcb != NULL) {
  ------------------
  |  Branch (5270:10): [True: 0, False: 0]
  ------------------
 5271|      0|						SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5272|      0|					}
 5273|      0|					*offset = length;
 5274|      0|					return (NULL);
 5275|      0|				}
 5276|     16|			}
 5277|       |			/*-
 5278|       |			 * First are we accepting? We do this again here
 5279|       |			 * since it is possible that a previous endpoint WAS
 5280|       |			 * listening responded to a INIT-ACK and then
 5281|       |			 * closed. We opened and bound.. and are now no
 5282|       |			 * longer listening.
 5283|       |			 *
 5284|       |			 * XXXGL: notes on checking listen queue length.
 5285|       |			 * 1) SCTP_IS_LISTENING() doesn't necessarily mean
 5286|       |			 *    SOLISTENING(), because a listening "UDP type"
 5287|       |			 *    socket isn't listening in terms of the socket
 5288|       |			 *    layer.  It is a normal data flow socket, that
 5289|       |			 *    can fork off new connections.  Thus, we should
 5290|       |			 *    look into sol_qlen only in case we are !UDP.
 5291|       |			 * 2) Checking sol_qlen in general requires locking
 5292|       |			 *    the socket, and this code lacks that.
 5293|       |			 */
 5294|     42|			if ((stcb == NULL) &&
  ------------------
  |  Branch (5294:8): [True: 0, False: 42]
  ------------------
 5295|      0|			    (!SCTP_IS_LISTENING(inp) ||
  ------------------
  |  | 1152|      0|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|      0|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  ------------------
  |  Branch (5295:9): [True: 0, False: 0]
  ------------------
 5296|      0|			     (((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) == 0) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5296:10): [True: 0, False: 0]
  ------------------
 5297|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5298|       |			      inp->sctp_socket->sol_qlen >= inp->sctp_socket->sol_qlimit))) {
 5299|       |#else
 5300|      0|			      inp->sctp_socket->so_qlen >= inp->sctp_socket->so_qlimit))) {
  ------------------
  |  Branch (5300:10): [True: 0, False: 0]
  ------------------
 5301|      0|#endif
 5302|      0|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5302:9): [True: 0, False: 0]
  ------------------
 5303|      0|				    (SCTP_BASE_SYSCTL(sctp_abort_if_one_2_one_hits_limit))) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (5303:9): [True: 0, False: 0]
  ------------------
 5304|      0|					op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
  ------------------
  |  |  369|      0|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
 5305|      0|					sctp_abort_association(inp, stcb, m, iphlen,
 5306|      0|					                       src, dst, sh, op_err,
 5307|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5308|       |					                       mflowtype, mflowid,
 5309|       |#endif
 5310|      0|					                       vrf_id, port);
 5311|      0|				}
 5312|      0|				*offset = length;
 5313|      0|				return (NULL);
 5314|     42|			} else {
 5315|     42|				struct mbuf *ret_buf;
 5316|     42|				struct sctp_inpcb *linp;
 5317|     42|				struct sctp_tmit_chunk *chk;
 5318|       |
 5319|     42|				if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE |
  ------------------
  |  |  546|     42|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5319:9): [True: 0, False: 42]
  ------------------
 5320|     42|				    SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|     42|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
 5321|      0|					goto abend;
 5322|      0|				}
 5323|       |
 5324|     42|				if (stcb) {
  ------------------
  |  Branch (5324:9): [True: 42, False: 0]
  ------------------
 5325|     42|					linp = NULL;
 5326|     42|				} else {
 5327|      0|					linp = inp;
 5328|      0|				}
 5329|       |
 5330|     42|				if (linp != NULL) {
  ------------------
  |  Branch (5330:9): [True: 0, False: 42]
  ------------------
 5331|      0|					SCTP_ASOC_CREATE_LOCK(linp);
  ------------------
  |  |  427|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5332|      0|				}
 5333|       |
 5334|     42|				if (netp != NULL) {
  ------------------
  |  Branch (5334:9): [True: 42, False: 0]
  ------------------
 5335|     42|					struct sctp_tcb *locked_stcb;
 5336|       |
 5337|     42|					locked_stcb = stcb;
 5338|     42|					ret_buf =
 5339|     42|						sctp_handle_cookie_echo(m, iphlen,
 5340|     42|						                        *offset,
 5341|     42|						                        src, dst,
 5342|     42|						                        sh,
 5343|     42|						                        (struct sctp_cookie_echo_chunk *)ch,
 5344|     42|						                        &inp, &stcb, netp,
 5345|     42|						                        auth_skipped,
 5346|     42|						                        auth_offset,
 5347|     42|						                        auth_len,
 5348|     42|						                        &locked_stcb,
 5349|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5350|       |						                        mflowtype,
 5351|       |						                        mflowid,
 5352|       |#endif
 5353|     42|						                        vrf_id,
 5354|     42|						                        port);
 5355|     42|					if ((locked_stcb != NULL) && (locked_stcb != stcb)) {
  ------------------
  |  Branch (5355:10): [True: 42, False: 0]
  |  Branch (5355:35): [True: 0, False: 42]
  ------------------
 5356|      0|						SCTP_TCB_UNLOCK(locked_stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5357|      0|					}
 5358|     42|					if (stcb != NULL) {
  ------------------
  |  Branch (5358:10): [True: 42, False: 0]
  ------------------
 5359|     42|						SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     42|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     42|	do {                         \
  |  |  |  |  113|     42|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 42]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     42|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5360|     42|					}
 5361|     42|				} else {
 5362|      0|					ret_buf = NULL;
 5363|      0|				}
 5364|     42|				if (linp != NULL) {
  ------------------
  |  Branch (5364:9): [True: 0, False: 42]
  ------------------
 5365|      0|					SCTP_ASOC_CREATE_UNLOCK(linp);
  ------------------
  |  |  430|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5366|      0|				}
 5367|     42|				if (ret_buf == NULL) {
  ------------------
  |  Branch (5367:9): [True: 42, False: 0]
  ------------------
 5368|     42|					if (stcb != NULL) {
  ------------------
  |  Branch (5368:10): [True: 42, False: 0]
  ------------------
 5369|     42|						SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     42|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     42|	do {                         \
  |  |  |  |  113|     42|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 42]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     42|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5370|     42|					}
 5371|     42|					SCTPDBG(SCTP_DEBUG_INPUT3,
 5372|     42|						"GAK, null buffer\n");
 5373|     42|					*offset = length;
 5374|     42|					return (NULL);
 5375|     42|				}
 5376|       |				/* if AUTH skipped, see if it verified... */
 5377|      0|				if (auth_skipped) {
  ------------------
  |  Branch (5377:9): [True: 0, False: 0]
  ------------------
 5378|      0|					got_auth = 1;
 5379|      0|					auth_skipped = 0;
 5380|      0|				}
 5381|       |				/* Restart the timer if we have pending data */
 5382|      0|				TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (5382:5): [True: 0, False: 0]
  ------------------
 5383|      0|					if (chk->whoTo != NULL) {
  ------------------
  |  Branch (5383:10): [True: 0, False: 0]
  ------------------
 5384|      0|						break;
 5385|      0|					}
 5386|      0|				}
 5387|      0|				if (chk != NULL) {
  ------------------
  |  Branch (5387:9): [True: 0, False: 0]
  ------------------
 5388|      0|					sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 5389|      0|				}
 5390|      0|			}
 5391|      0|			break;
 5392|  23.4k|		case SCTP_COOKIE_ACK:
  ------------------
  |  |  465|  23.4k|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (5392:3): [True: 23.4k, False: 680k]
  ------------------
 5393|  23.4k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_COOKIE_ACK, stcb %p\n", (void *)stcb);
 5394|  23.4k|			if ((stcb == NULL) || chk_length != sizeof(struct sctp_cookie_ack_chunk)) {
  ------------------
  |  Branch (5394:8): [True: 0, False: 23.4k]
  |  Branch (5394:26): [True: 1.73k, False: 21.7k]
  ------------------
 5395|  1.73k|				break;
 5396|  1.73k|			}
 5397|  21.7k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  21.7k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5397:8): [True: 0, False: 21.7k]
  ------------------
 5398|       |				/* We are not interested anymore */
 5399|      0|				if ((stcb) && (stcb->asoc.total_output_queue_size)) {
  ------------------
  |  Branch (5399:9): [True: 0, False: 0]
  |  Branch (5399:19): [True: 0, False: 0]
  ------------------
 5400|      0|					;
 5401|      0|				} else if (stcb) {
  ------------------
  |  Branch (5401:16): [True: 0, False: 0]
  ------------------
 5402|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5403|       |					so = SCTP_INP_SO(inp);
 5404|       |					atomic_add_int(&stcb->asoc.refcnt, 1);
 5405|       |					SCTP_TCB_UNLOCK(stcb);
 5406|       |					SCTP_SOCKET_LOCK(so, 1);
 5407|       |					SCTP_TCB_LOCK(stcb);
 5408|       |					atomic_subtract_int(&stcb->asoc.refcnt, 1);
 5409|       |#endif
 5410|      0|					(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
 5411|      0|					                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_30);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              					                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_30);
  ------------------
  |  |  798|      0|#define SCTP_LOC_30 0x0000001e
  ------------------
 5412|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5413|       |					SCTP_SOCKET_UNLOCK(so, 1);
 5414|       |#endif
 5415|      0|					*offset = length;
 5416|      0|					return (NULL);
 5417|      0|				}
 5418|      0|			}
 5419|  21.7k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5419:8): [True: 21.7k, False: 0]
  |  Branch (5419:26): [True: 21.7k, False: 0]
  ------------------
 5420|  21.7k|				sctp_handle_cookie_ack((struct sctp_cookie_ack_chunk *)ch, stcb, *netp);
 5421|  21.7k|			}
 5422|  21.7k|			break;
 5423|  7.49k|		case SCTP_ECN_ECHO:
  ------------------
  |  |  466|  7.49k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (5423:3): [True: 7.49k, False: 696k]
  ------------------
 5424|  7.49k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ECN_ECHO\n");
 5425|  7.49k|			if (stcb == NULL) {
  ------------------
  |  Branch (5425:8): [True: 0, False: 7.49k]
  ------------------
 5426|      0|				break;
 5427|      0|			}
 5428|  7.49k|			if (stcb->asoc.ecn_supported == 0) {
  ------------------
  |  Branch (5428:8): [True: 0, False: 7.49k]
  ------------------
 5429|      0|				goto unknown_chunk;
 5430|      0|			}
 5431|  7.49k|			if ((chk_length != sizeof(struct sctp_ecne_chunk)) &&
  ------------------
  |  Branch (5431:8): [True: 6.27k, False: 1.22k]
  ------------------
 5432|  6.27k|			    (chk_length != sizeof(struct old_sctp_ecne_chunk))) {
  ------------------
  |  Branch (5432:8): [True: 1.09k, False: 5.18k]
  ------------------
 5433|  1.09k|				break;
 5434|  1.09k|			}
 5435|  6.40k|			sctp_handle_ecn_echo((struct sctp_ecne_chunk *)ch, stcb);
 5436|  6.40k|			ecne_seen = 1;
 5437|  6.40k|			break;
 5438|  1.05k|		case SCTP_ECN_CWR:
  ------------------
  |  |  467|  1.05k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (5438:3): [True: 1.05k, False: 702k]
  ------------------
 5439|  1.05k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ECN_CWR\n");
 5440|  1.05k|			if (stcb == NULL) {
  ------------------
  |  Branch (5440:8): [True: 0, False: 1.05k]
  ------------------
 5441|      0|				break;
 5442|      0|			}
 5443|  1.05k|			if (stcb->asoc.ecn_supported == 0) {
  ------------------
  |  Branch (5443:8): [True: 0, False: 1.05k]
  ------------------
 5444|      0|				goto unknown_chunk;
 5445|      0|			}
 5446|  1.05k|			if (chk_length != sizeof(struct sctp_cwr_chunk)) {
  ------------------
  |  Branch (5446:8): [True: 290, False: 768]
  ------------------
 5447|    290|				break;
 5448|    290|			}
 5449|    768|			sctp_handle_ecn_cwr((struct sctp_cwr_chunk *)ch, stcb, *netp);
 5450|    768|			break;
 5451|     27|		case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|     27|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (5451:3): [True: 27, False: 703k]
  ------------------
 5452|     27|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_SHUTDOWN_COMPLETE, stcb %p\n", (void *)stcb);
 5453|       |			/* must be first and only chunk */
 5454|     27|			if ((num_chunks > 1) ||
  ------------------
  |  Branch (5454:8): [True: 9, False: 18]
  ------------------
 5455|     18|			    (length - *offset > (int)SCTP_SIZE32(chk_length))) {
  ------------------
  |  |  383|     18|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (5455:8): [True: 7, False: 11]
  ------------------
 5456|     16|				*offset = length;
 5457|     16|				return (stcb);
 5458|     16|			}
 5459|     11|			if ((chk_length == sizeof(struct sctp_shutdown_complete_chunk)) &&
  ------------------
  |  Branch (5459:8): [True: 3, False: 8]
  ------------------
 5460|      3|			    (stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5460:8): [True: 3, False: 0]
  |  Branch (5460:26): [True: 3, False: 0]
  |  Branch (5460:44): [True: 3, False: 0]
  ------------------
 5461|      3|				sctp_handle_shutdown_complete((struct sctp_shutdown_complete_chunk *)ch,
 5462|      3|				                              stcb, *netp);
 5463|      3|				*offset = length;
 5464|      3|				return (NULL);
 5465|      3|			}
 5466|      8|			break;
 5467|  9.76k|		case SCTP_ASCONF:
  ------------------
  |  |  489|  9.76k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (5467:3): [True: 9.76k, False: 693k]
  ------------------
 5468|  9.76k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ASCONF\n");
 5469|  9.76k|			if (stcb != NULL) {
  ------------------
  |  Branch (5469:8): [True: 9.76k, False: 0]
  ------------------
 5470|  9.76k|				if (stcb->asoc.asconf_supported == 0) {
  ------------------
  |  Branch (5470:9): [True: 404, False: 9.36k]
  ------------------
 5471|    404|					goto unknown_chunk;
 5472|    404|				}
 5473|  9.36k|				sctp_handle_asconf(m, *offset, src,
 5474|  9.36k|				                   (struct sctp_asconf_chunk *)ch, stcb, asconf_cnt == 0);
 5475|  9.36k|				asconf_cnt++;
 5476|  9.36k|			}
 5477|  9.36k|			break;
 5478|  9.36k|		case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|  1.86k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (5478:3): [True: 1.86k, False: 701k]
  ------------------
 5479|  1.86k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ASCONF_ACK\n");
 5480|  1.86k|			if (stcb == NULL) {
  ------------------
  |  Branch (5480:8): [True: 0, False: 1.86k]
  ------------------
 5481|      0|				break;
 5482|      0|			}
 5483|  1.86k|			if (stcb->asoc.asconf_supported == 0) {
  ------------------
  |  Branch (5483:8): [True: 393, False: 1.46k]
  ------------------
 5484|    393|				goto unknown_chunk;
 5485|    393|			}
 5486|  1.46k|			if (chk_length < sizeof(struct sctp_asconf_ack_chunk)) {
  ------------------
  |  Branch (5486:8): [True: 1.06k, False: 409]
  ------------------
 5487|  1.06k|				break;
 5488|  1.06k|			}
 5489|    409|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5489:8): [True: 409, False: 0]
  |  Branch (5489:26): [True: 409, False: 0]
  ------------------
 5490|       |				/* He's alive so give him credit */
 5491|    409|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|    409|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|    409|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (5491:9): [True: 0, False: 409]
  ------------------
 5492|      0|					sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
 5493|      0|					               stcb->asoc.overall_error_count,
 5494|      0|					               0,
 5495|      0|					               SCTP_FROM_SCTP_INPUT,
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
 5496|      0|					               __LINE__);
 5497|      0|				}
 5498|    409|				stcb->asoc.overall_error_count = 0;
 5499|    409|				sctp_handle_asconf_ack(m, *offset,
 5500|    409|				                       (struct sctp_asconf_ack_chunk *)ch, stcb, *netp, &abort_no_unlock);
 5501|    409|				if (abort_no_unlock)
  ------------------
  |  Branch (5501:9): [True: 0, False: 409]
  ------------------
 5502|      0|					return (NULL);
 5503|    409|			}
 5504|    409|			break;
 5505|  3.56k|		case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|  3.56k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (5505:3): [True: 3.56k, False: 700k]
  ------------------
 5506|  4.73k|		case SCTP_IFORWARD_CUM_TSN:
  ------------------
  |  |  490|  4.73k|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (5506:3): [True: 1.16k, False: 702k]
  ------------------
 5507|  4.73k|			SCTPDBG(SCTP_DEBUG_INPUT3, "%s\n",
 5508|  4.73k|				ch->chunk_type == SCTP_FORWARD_CUM_TSN ? "FORWARD_TSN" : "I_FORWARD_TSN");
 5509|  4.73k|			if (stcb == NULL) {
  ------------------
  |  Branch (5509:8): [True: 0, False: 4.73k]
  ------------------
 5510|      0|				break;
 5511|      0|			}
 5512|  4.73k|			if (stcb->asoc.prsctp_supported == 0) {
  ------------------
  |  Branch (5512:8): [True: 954, False: 3.77k]
  ------------------
 5513|    954|				goto unknown_chunk;
 5514|    954|			}
 5515|  3.77k|			if (chk_length < sizeof(struct sctp_forward_tsn_chunk)) {
  ------------------
  |  Branch (5515:8): [True: 810, False: 2.96k]
  ------------------
 5516|    810|				break;
 5517|    810|			}
 5518|  2.96k|			if (((stcb->asoc.idata_supported == 1) && (ch->chunk_type == SCTP_FORWARD_CUM_TSN)) ||
  ------------------
  |  |  487|  1.07k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (5518:9): [True: 1.07k, False: 1.89k]
  |  Branch (5518:46): [True: 15, False: 1.05k]
  ------------------
 5519|  2.95k|			    ((stcb->asoc.idata_supported == 0) && (ch->chunk_type == SCTP_IFORWARD_CUM_TSN))) {
  ------------------
  |  |  490|  1.89k|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (5519:9): [True: 1.89k, False: 1.05k]
  |  Branch (5519:46): [True: 1, False: 1.89k]
  ------------------
 5520|     16|				if (ch->chunk_type == SCTP_FORWARD_CUM_TSN) {
  ------------------
  |  |  487|     16|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (5520:9): [True: 15, False: 1]
  ------------------
 5521|     15|					SCTP_SNPRINTF(msg, sizeof(msg), "%s", "FORWARD-TSN chunk received when I-FORWARD-TSN was negotiated");
  ------------------
  |  |  820|     15|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 15]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 5522|     15|				} else {
 5523|      1|					SCTP_SNPRINTF(msg, sizeof(msg), "%s", "I-FORWARD-TSN chunk received when FORWARD-TSN was negotiated");
  ------------------
  |  |  820|      1|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 1]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 5524|      1|				}
 5525|     16|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     16|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 5526|     16|				sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     16|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5527|     16|				*offset = length;
 5528|     16|				return (NULL);
 5529|     16|			}
 5530|  2.95k|			*fwd_tsn_seen = 1;
 5531|  2.95k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  2.95k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5531:8): [True: 0, False: 2.95k]
  ------------------
 5532|       |				/* We are not interested anymore */
 5533|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5534|       |				so = SCTP_INP_SO(inp);
 5535|       |				atomic_add_int(&stcb->asoc.refcnt, 1);
 5536|       |				SCTP_TCB_UNLOCK(stcb);
 5537|       |				SCTP_SOCKET_LOCK(so, 1);
 5538|       |				SCTP_TCB_LOCK(stcb);
 5539|       |				atomic_subtract_int(&stcb->asoc.refcnt, 1);
 5540|       |#endif
 5541|      0|				(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
 5542|      0|				                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_31);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              				                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_31);
  ------------------
  |  |  799|      0|#define SCTP_LOC_31 0x0000001f
  ------------------
 5543|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5544|       |				SCTP_SOCKET_UNLOCK(so, 1);
 5545|       |#endif
 5546|      0|				*offset = length;
 5547|      0|				return (NULL);
 5548|      0|			}
 5549|       |			/*
 5550|       |			 * For sending a SACK this looks like DATA
 5551|       |			 * chunks.
 5552|       |			 */
 5553|  2.95k|			stcb->asoc.last_data_chunk_from = stcb->asoc.last_control_chunk_from;
 5554|  2.95k|			abort_flag = 0;
 5555|  2.95k|			sctp_handle_forward_tsn(stcb,
 5556|  2.95k|			                        (struct sctp_forward_tsn_chunk *)ch, &abort_flag, m, *offset);
 5557|  2.95k|			if (abort_flag) {
  ------------------
  |  Branch (5557:8): [True: 91, False: 2.86k]
  ------------------
 5558|     91|				*offset = length;
 5559|     91|				return (NULL);
 5560|     91|			}
 5561|  2.86k|			break;
 5562|  17.1k|		case SCTP_STREAM_RESET:
  ------------------
  |  |  481|  17.1k|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (5562:3): [True: 17.1k, False: 686k]
  ------------------
 5563|  17.1k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_STREAM_RESET\n");
 5564|  17.1k|			if (stcb == NULL) {
  ------------------
  |  Branch (5564:8): [True: 0, False: 17.1k]
  ------------------
 5565|      0|				break;
 5566|      0|			}
 5567|  17.1k|			if (stcb->asoc.reconfig_supported == 0) {
  ------------------
  |  Branch (5567:8): [True: 0, False: 17.1k]
  ------------------
 5568|      0|				goto unknown_chunk;
 5569|      0|			}
 5570|  17.1k|			if (chk_length < sizeof(struct sctp_stream_reset_tsn_req)) {
  ------------------
  |  Branch (5570:8): [True: 1.73k, False: 15.3k]
  ------------------
 5571|  1.73k|				break;
 5572|  1.73k|			}
 5573|  15.3k|			if (sctp_handle_stream_reset(stcb, m, *offset, ch)) {
  ------------------
  |  Branch (5573:8): [True: 0, False: 15.3k]
  ------------------
 5574|       |				/* stop processing */
 5575|      0|				*offset = length;
 5576|      0|				return (NULL);
 5577|      0|			}
 5578|  15.3k|			break;
 5579|  15.3k|		case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|  10.2k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (5579:3): [True: 10.2k, False: 693k]
  ------------------
 5580|  10.2k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_PACKET_DROPPED\n");
 5581|  10.2k|			if (stcb == NULL) {
  ------------------
  |  Branch (5581:8): [True: 0, False: 10.2k]
  ------------------
 5582|      0|				break;
 5583|      0|			}
 5584|  10.2k|			if (stcb->asoc.pktdrop_supported == 0) {
  ------------------
  |  Branch (5584:8): [True: 642, False: 9.61k]
  ------------------
 5585|    642|				goto unknown_chunk;
 5586|    642|			}
 5587|  9.61k|			if (chk_length < sizeof(struct sctp_pktdrop_chunk)) {
  ------------------
  |  Branch (5587:8): [True: 725, False: 8.88k]
  ------------------
 5588|    725|				break;
 5589|    725|			}
 5590|  8.88k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5590:8): [True: 8.88k, False: 0]
  |  Branch (5590:26): [True: 8.88k, False: 0]
  ------------------
 5591|  8.88k|				sctp_handle_packet_dropped((struct sctp_pktdrop_chunk *)ch,
 5592|  8.88k|				                           stcb, *netp,
 5593|  8.88k|				                           min(chk_length, contiguous));
  ------------------
  |  |   66|  8.88k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 200, False: 8.68k]
  |  |  ------------------
  ------------------
 5594|  8.88k|			}
 5595|  8.88k|			break;
 5596|  3.50k|		case SCTP_AUTHENTICATION:
  ------------------
  |  |  470|  3.50k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (5596:3): [True: 3.50k, False: 700k]
  ------------------
 5597|  3.50k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_AUTHENTICATION\n");
 5598|  3.50k|			if (stcb == NULL) {
  ------------------
  |  Branch (5598:8): [True: 0, False: 3.50k]
  ------------------
 5599|       |				/* save the first AUTH for later processing */
 5600|      0|				if (auth_skipped == 0) {
  ------------------
  |  Branch (5600:9): [True: 0, False: 0]
  ------------------
 5601|      0|					auth_offset = *offset;
 5602|      0|					auth_len = chk_length;
 5603|      0|					auth_skipped = 1;
 5604|      0|				}
 5605|       |				/* skip this chunk (temporarily) */
 5606|      0|				break;
 5607|      0|			}
 5608|  3.50k|			if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (5608:8): [True: 0, False: 3.50k]
  ------------------
 5609|      0|				goto unknown_chunk;
 5610|      0|			}
 5611|  3.50k|			if ((chk_length < (sizeof(struct sctp_auth_chunk))) ||
  ------------------
  |  Branch (5611:8): [True: 4, False: 3.49k]
  ------------------
 5612|  3.49k|			    (chk_length > (sizeof(struct sctp_auth_chunk) +
  ------------------
  |  Branch (5612:8): [True: 5, False: 3.49k]
  ------------------
 5613|  3.49k|			                  SCTP_AUTH_DIGEST_LEN_MAX))) {
  ------------------
  |  |   43|  3.49k|#define SCTP_AUTH_DIGEST_LEN_MAX	SCTP_AUTH_DIGEST_LEN_SHA256
  |  |  ------------------
  |  |  |  |   42|  3.49k|#define SCTP_AUTH_DIGEST_LEN_SHA256	32
  |  |  ------------------
  ------------------
 5614|       |				/* Its not ours */
 5615|      9|				*offset = length;
 5616|      9|				return (stcb);
 5617|      9|			}
 5618|  3.49k|			if (got_auth == 1) {
  ------------------
  |  Branch (5618:8): [True: 1.11k, False: 2.37k]
  ------------------
 5619|       |				/* skip this chunk... it's already auth'd */
 5620|  1.11k|				break;
 5621|  1.11k|			}
 5622|  2.37k|			got_auth = 1;
 5623|  2.37k|			if (sctp_handle_auth(stcb, (struct sctp_auth_chunk *)ch, m, *offset)) {
  ------------------
  |  Branch (5623:8): [True: 0, False: 2.37k]
  ------------------
 5624|       |				/* auth HMAC failed so dump the packet */
 5625|      0|				*offset = length;
 5626|      0|				return (stcb);
 5627|  2.37k|			} else {
 5628|       |				/* remaining chunks are HMAC checked */
 5629|  2.37k|				stcb->asoc.authenticated = 1;
 5630|  2.37k|			}
 5631|  2.37k|			break;
 5632|       |
 5633|   141k|		default:
  ------------------
  |  Branch (5633:3): [True: 141k, False: 561k]
  ------------------
 5634|   144k|		unknown_chunk:
 5635|       |			/* it's an unknown chunk! */
 5636|   144k|			if ((ch->chunk_type & 0x40) &&
  ------------------
  |  Branch (5636:8): [True: 139k, False: 5.32k]
  ------------------
 5637|   139k|			    (stcb != NULL) &&
  ------------------
  |  Branch (5637:8): [True: 139k, False: 0]
  ------------------
 5638|   139k|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_EMPTY) &&
  ------------------
  |  |  472|   139k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   139k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_EMPTY) &&
  ------------------
  |  |  455|   139k|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (5638:8): [True: 139k, False: 0]
  ------------------
 5639|   139k|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_INUSE) &&
  ------------------
  |  |  472|   139k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   139k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_INUSE) &&
  ------------------
  |  |  456|   139k|#define SCTP_STATE_INUSE		0x0001
  ------------------
  |  Branch (5639:8): [True: 139k, False: 0]
  ------------------
 5640|   139k|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT)) {
  ------------------
  |  |  472|   139k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   139k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT)) {
  ------------------
  |  |  457|   139k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (5640:8): [True: 131k, False: 7.14k]
  ------------------
 5641|   131k|				struct sctp_gen_error_cause *cause;
 5642|   131k|				int len;
 5643|       |
 5644|   131k|				op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_gen_error_cause),
 5645|   131k|				                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|   131k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              				                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|   131k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5646|   131k|				if (op_err != NULL) {
  ------------------
  |  Branch (5646:9): [True: 131k, False: 0]
  ------------------
 5647|   131k|					len = min(SCTP_SIZE32(chk_length), (uint32_t)(length - *offset));
  ------------------
  |  |   66|   131k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 21, False: 131k]
  |  |  ------------------
  ------------------
 5648|   131k|					cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|   131k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   131k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5649|   131k|					cause->code = htons(SCTP_CAUSE_UNRECOG_CHUNK);
 5650|   131k|					cause->length = htons((uint16_t)(len + sizeof(struct sctp_gen_error_cause)));
 5651|   131k|					SCTP_BUF_LEN(op_err) = sizeof(struct sctp_gen_error_cause);
  ------------------
  |  |  801|   131k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   131k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5652|   131k|					SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, len, M_NOWAIT);
  ------------------
  |  |  802|   131k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   131k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              					SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, len, M_NOWAIT);
  ------------------
  |  |  770|   131k|#define SCTP_M_COPYM	m_copym
  ------------------
              					SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, len, M_NOWAIT);
  ------------------
  |  |   60|   131k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 5653|   131k|					if (SCTP_BUF_NEXT(op_err) != NULL) {
  ------------------
  |  |  802|   131k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   131k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5653:10): [True: 131k, False: 0]
  ------------------
 5654|       |#ifdef SCTP_MBUF_LOGGING
 5655|       |						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 5656|       |							sctp_log_mbc(SCTP_BUF_NEXT(op_err), SCTP_MBUF_ICOPY);
 5657|       |						}
 5658|       |#endif
 5659|   131k|						sctp_queue_op_err(stcb, op_err);
 5660|   131k|					} else {
 5661|      0|						sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5662|      0|					}
 5663|   131k|				}
 5664|   131k|			}
 5665|   144k|			if ((ch->chunk_type & 0x80) == 0) {
  ------------------
  |  Branch (5665:8): [True: 48, False: 144k]
  ------------------
 5666|       |				/* discard this packet */
 5667|     48|				*offset = length;
 5668|     48|				return (stcb);
 5669|     48|			}	/* else skip this bad chunk and continue... */
 5670|   144k|			break;
 5671|   703k|		}		/* switch (ch->chunk_type) */
 5672|       |
 5673|   695k|	next_chunk:
 5674|       |		/* get the next chunk */
 5675|   695k|		*offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|   695k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5676|   695k|		if (*offset >= length) {
  ------------------
  |  Branch (5676:7): [True: 7.47k, False: 688k]
  ------------------
 5677|       |			/* no more data left in the mbuf chain */
 5678|  7.47k|			break;
 5679|  7.47k|		}
 5680|   688k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 5681|   688k|		                                           sizeof(struct sctp_chunkhdr), chunk_buf);
 5682|   688k|		if (ch == NULL) {
  ------------------
  |  Branch (5682:7): [True: 860, False: 687k]
  ------------------
 5683|    860|			*offset = length;
 5684|    860|			return (stcb);
 5685|    860|		}
 5686|   688k|	}			/* while */
 5687|       |
 5688|  9.05k|	if ((asconf_cnt > 0) && (stcb != NULL)) {
  ------------------
  |  Branch (5688:6): [True: 1.29k, False: 7.76k]
  |  Branch (5688:26): [True: 1.29k, False: 0]
  ------------------
 5689|  1.29k|		sctp_send_asconf_ack(stcb);
 5690|  1.29k|	}
 5691|  9.05k|	return (stcb);
 5692|  20.1k|}
sctp_input.c:sctp_handle_init_ack:
 1358|  8.38k|{
 1359|  8.38k|	struct sctp_init_ack *init_ack;
 1360|  8.38k|	struct mbuf *op_err;
 1361|       |
 1362|  8.38k|	SCTPDBG(SCTP_DEBUG_INPUT2,
 1363|  8.38k|		"sctp_handle_init_ack: handling INIT-ACK\n");
 1364|       |
 1365|  8.38k|	if (stcb == NULL) {
  ------------------
  |  Branch (1365:6): [True: 0, False: 8.38k]
  ------------------
 1366|      0|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1367|      0|			"sctp_handle_init_ack: TCB is null\n");
 1368|      0|		return (-1);
 1369|      0|	}
 1370|       |	/* Only process the INIT-ACK chunk in COOKIE WAIT state.*/
 1371|  8.38k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|  8.38k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  8.38k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|  8.38k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (1371:6): [True: 8.37k, False: 1]
  ------------------
 1372|  8.37k|		init_ack = &cp->init;
 1373|       |		/* Validate parameters. */
 1374|  8.37k|		if ((ntohl(init_ack->initiate_tag) == 0) ||
  ------------------
  |  Branch (1374:7): [True: 1, False: 8.37k]
  ------------------
 1375|  8.37k|		    (ntohl(init_ack->a_rwnd) < SCTP_MIN_RWND) ||
  ------------------
  |  |  687|  8.37k|#define SCTP_MIN_RWND	1500
  ------------------
  |  Branch (1375:7): [True: 9, False: 8.36k]
  ------------------
 1376|  8.36k|		    (ntohs(init_ack->num_inbound_streams) == 0) ||
  ------------------
  |  Branch (1376:7): [True: 14, False: 8.35k]
  ------------------
 1377|  8.35k|		    (ntohs(init_ack->num_outbound_streams) == 0)) {
  ------------------
  |  Branch (1377:7): [True: 4, False: 8.35k]
  ------------------
 1378|       |			/* One of the mandatory parameters is illegal. */
 1379|     28|			op_err = sctp_generate_cause(SCTP_CAUSE_INVALID_PARAM, "");
  ------------------
  |  |  372|     28|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
 1380|     28|			sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
 1381|     28|			                       src, dst, sh, op_err,
 1382|       |	#if defined(__FreeBSD__) && !defined(__Userspace__)
 1383|       |			                       mflowtype, mflowid,
 1384|       |	#endif
 1385|     28|			                       vrf_id, net->port);
 1386|     28|			*abort_no_unlock = 1;
 1387|     28|			return (-1);
 1388|     28|		}
 1389|  8.35k|		if (stcb->asoc.primary_destination->dest_state &
  ------------------
  |  Branch (1389:7): [True: 0, False: 8.35k]
  ------------------
 1390|  8.35k|		    SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  8.35k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 1391|       |			/*
 1392|       |			 * The primary is where we sent the INIT, we can
 1393|       |			 * always consider it confirmed when the INIT-ACK is
 1394|       |			 * returned. Do this before we load addresses
 1395|       |			 * though.
 1396|       |			 */
 1397|      0|			stcb->asoc.primary_destination->dest_state &=
 1398|      0|			    ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 1399|      0|			sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_CONFIRMED,
  ------------------
  |  |  718|      0|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
 1400|      0|			    stcb, 0, (void *)stcb->asoc.primary_destination, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1401|      0|		}
 1402|  8.35k|		if (sctp_process_init_ack(m, iphlen, offset, src, dst, sh, cp, stcb,
  ------------------
  |  Branch (1402:7): [True: 465, False: 7.88k]
  ------------------
 1403|  8.35k|		                          net, abort_no_unlock,
 1404|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1405|       |		                          mflowtype, mflowid,
 1406|       |#endif
 1407|  8.35k|		                          vrf_id) < 0) {
 1408|       |			/* error in parsing parameters */
 1409|    465|			return (-1);
 1410|    465|		}
 1411|       |		/* Update our state. */
 1412|  7.88k|		SCTPDBG(SCTP_DEBUG_INPUT2, "moving to COOKIE-ECHOED state\n");
 1413|  7.88k|		SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_ECHOED);
  ------------------
  |  |  474|  7.88k|	sctp_set_state(_stcb, _state)
  ------------------
 1414|       |
 1415|       |		/* Reset the RTO calculation. */
 1416|  7.88k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  7.88k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  7.88k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (1416:7): [True: 0, False: 7.88k]
  ------------------
 1417|      0|			sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
 1418|      0|			               stcb->asoc.overall_error_count,
 1419|      0|			               0,
 1420|      0|			               SCTP_FROM_SCTP_INPUT,
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
 1421|      0|			               __LINE__);
 1422|      0|		}
 1423|  7.88k|		stcb->asoc.overall_error_count = 0;
 1424|  7.88k|		(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|  7.88k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1425|       |		/*
 1426|       |		 * Collapse the init timer back in case of a exponential
 1427|       |		 * backoff.
 1428|       |		 */
 1429|  7.88k|		sctp_timer_start(SCTP_TIMER_TYPE_COOKIE, stcb->sctp_ep,
  ------------------
  |  |  537|  7.88k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
 1430|  7.88k|		    stcb, net);
 1431|       |		/*
 1432|       |		 * The output routine at the end of the inbound data processing
 1433|       |		 * will cause the cookie to be sent.
 1434|       |		 */
 1435|  7.88k|		SCTPDBG(SCTP_DEBUG_INPUT1, "Leaving handle-init-ack end\n");
 1436|  7.88k|		return (0);
 1437|  8.35k|	} else {
 1438|      1|		return (-1);
 1439|      1|	}
 1440|  8.38k|}
sctp_input.c:sctp_process_init_ack:
  414|  8.35k|{
  415|  8.35k|	struct sctp_association *asoc;
  416|  8.35k|	struct mbuf *op_err;
  417|  8.35k|	int retval, abort_flag, cookie_found;
  418|  8.35k|	int initack_limit;
  419|  8.35k|	int nat_friendly = 0;
  420|       |
  421|       |	/* First verify that we have no illegal param's */
  422|  8.35k|	abort_flag = 0;
  423|  8.35k|	cookie_found = 0;
  424|       |
  425|  8.35k|	op_err = sctp_arethere_unrecognized_parameters(m,
  426|  8.35k|						       (offset + sizeof(struct sctp_init_chunk)),
  427|  8.35k|						       &abort_flag, (struct sctp_chunkhdr *)cp,
  428|  8.35k|						       &nat_friendly, &cookie_found, NULL);
  429|  8.35k|	if (abort_flag) {
  ------------------
  |  Branch (429:6): [True: 80, False: 8.27k]
  ------------------
  430|       |		/* Send an abort and notify peer */
  431|     80|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  432|     80|		                       src, dst, sh, op_err,
  433|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  434|       |		                       mflowtype, mflowid,
  435|       |#endif
  436|     80|		                       vrf_id, net->port);
  437|     80|		*abort_no_unlock = 1;
  438|     80|		return (-1);
  439|     80|	}
  440|  8.27k|	if (!cookie_found) {
  ------------------
  |  Branch (440:6): [True: 161, False: 8.11k]
  ------------------
  441|    161|		uint16_t len;
  442|       |
  443|       |		/* Only report the missing cookie parameter */
  444|    161|		if (op_err != NULL) {
  ------------------
  |  Branch (444:7): [True: 45, False: 116]
  ------------------
  445|     45|			sctp_m_freem(op_err);
  ------------------
  |  |   52|     45|#define sctp_m_freem m_freem
  ------------------
  446|     45|		}
  447|    161|		len = (uint16_t)(sizeof(struct sctp_error_missing_param) + sizeof(uint16_t));
  448|       |		/* We abort with an error of missing mandatory param */
  449|    161|		op_err = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    161|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		op_err = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    161|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  450|    161|		if (op_err != NULL) {
  ------------------
  |  Branch (450:7): [True: 161, False: 0]
  ------------------
  451|    161|			struct sctp_error_missing_param *cause;
  452|       |
  453|    161|			SCTP_BUF_LEN(op_err) = len;
  ------------------
  |  |  801|    161|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    161|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  454|    161|			cause = mtod(op_err, struct sctp_error_missing_param *);
  ------------------
  |  |   96|    161|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    161|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  455|       |			/* Subtract the reserved param */
  456|    161|			cause->cause.code = htons(SCTP_CAUSE_MISSING_PARAM);
  457|    161|			cause->cause.length = htons(len);
  458|    161|			cause->num_missing_params = htonl(1);
  459|    161|			cause->type[0] = htons(SCTP_STATE_COOKIE);
  460|    161|		}
  461|    161|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  462|    161|		                       src, dst, sh, op_err,
  463|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  464|       |		                       mflowtype, mflowid,
  465|       |#endif
  466|    161|		                       vrf_id, net->port);
  467|    161|		*abort_no_unlock = 1;
  468|    161|		return (-3);
  469|    161|	}
  470|  8.11k|	asoc = &stcb->asoc;
  471|  8.11k|	asoc->peer_supports_nat = (uint8_t)nat_friendly;
  472|       |	/* process the peer's parameters in the INIT-ACK */
  473|  8.11k|	if (sctp_process_init((struct sctp_init_chunk *)cp, stcb) < 0) {
  ------------------
  |  Branch (473:6): [True: 0, False: 8.11k]
  ------------------
  474|      0|		if (op_err != NULL) {
  ------------------
  |  Branch (474:7): [True: 0, False: 0]
  ------------------
  475|      0|			sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  476|      0|		}
  477|      0|		op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
  ------------------
  |  |  369|      0|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
  478|      0|		SCTPDBG(SCTP_DEBUG_INPUT1, "sctp_process_init() failed\n");
  479|      0|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  480|      0|		                       src, dst, sh, op_err,
  481|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  482|       |		                       mflowtype, mflowid,
  483|       |#endif
  484|      0|		                       vrf_id, net->port);
  485|      0|		*abort_no_unlock = 1;
  486|      0|		return (-1);
  487|      0|	}
  488|  8.11k|	initack_limit = offset + ntohs(cp->ch.chunk_length);
  489|       |	/* load all addresses */
  490|  8.11k|	if ((retval = sctp_load_addresses_from_init(stcb, m,
  ------------------
  |  Branch (490:6): [True: 224, False: 7.88k]
  ------------------
  491|  8.11k|	                                            offset + sizeof(struct sctp_init_chunk),
  492|  8.11k|	                                            initack_limit, src, dst, NULL, stcb->asoc.port)) < 0) {
  493|    224|		if (op_err != NULL) {
  ------------------
  |  Branch (493:7): [True: 79, False: 145]
  ------------------
  494|     79|			sctp_m_freem(op_err);
  ------------------
  |  |   52|     79|#define sctp_m_freem m_freem
  ------------------
  495|     79|		}
  496|    224|		op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|    224|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  497|    224|		                             "Problem with address parameters");
  498|    224|		SCTPDBG(SCTP_DEBUG_INPUT1,
  499|    224|		        "Load addresses from INIT causes an abort %d\n",
  500|    224|		        retval);
  501|    224|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  502|    224|		                       src, dst, sh, op_err,
  503|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  504|       |		                       mflowtype, mflowid,
  505|       |#endif
  506|    224|		                       vrf_id, net->port);
  507|    224|		*abort_no_unlock = 1;
  508|    224|		return (-1);
  509|    224|	}
  510|       |	/* if the peer doesn't support asconf, flush the asconf queue */
  511|  7.88k|	if (asoc->asconf_supported == 0) {
  ------------------
  |  Branch (511:6): [True: 532, False: 7.35k]
  ------------------
  512|    532|		struct sctp_asconf_addr *param, *nparam;
  513|       |
  514|    532|		TAILQ_FOREACH_SAFE(param, &asoc->asconf_queue, next, nparam) {
  ------------------
  |  | 1129|    532|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    532|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 532]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    532|              (var) = (tvar))
  ------------------
  515|      0|			TAILQ_REMOVE(&asoc->asconf_queue, param, next);
  ------------------
  |  Branch (515:4): [True: 0, False: 0]
  |  Branch (515:4): [Folded, False: 0]
  ------------------
  516|      0|			SCTP_FREE(param, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  517|      0|		}
  518|    532|	}
  519|       |
  520|  7.88k|	stcb->asoc.peer_hmac_id = sctp_negotiate_hmacid(stcb->asoc.peer_hmacs,
  521|  7.88k|	    stcb->asoc.local_hmacs);
  522|  7.88k|	if (op_err) {
  ------------------
  |  Branch (522:6): [True: 184, False: 7.70k]
  ------------------
  523|    184|		sctp_queue_op_err(stcb, op_err);
  524|       |		/* queuing will steal away the mbuf chain to the out queue */
  525|    184|		op_err = NULL;
  526|    184|	}
  527|       |	/* extract the cookie and queue it to "echo" it back... */
  528|  7.88k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  7.88k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  7.88k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (528:6): [True: 0, False: 7.88k]
  ------------------
  529|      0|		sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
  530|      0|			       stcb->asoc.overall_error_count,
  531|      0|			       0,
  532|      0|			       SCTP_FROM_SCTP_INPUT,
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
  533|      0|			       __LINE__);
  534|      0|	}
  535|       |
  536|       |	/*
  537|       |	 * Cancel the INIT timer, We do this first before queueing the
  538|       |	 * cookie. We always cancel at the primary to assume that we are
  539|       |	 * canceling the timer started by the INIT which always goes to the
  540|       |	 * primary.
  541|       |	 */
  542|  7.88k|	sctp_timer_stop(SCTP_TIMER_TYPE_INIT, stcb->sctp_ep, stcb,
  ------------------
  |  |  533|  7.88k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  543|  7.88k|	    asoc->primary_destination, SCTP_FROM_SCTP_INPUT + SCTP_LOC_3);
  ------------------
  |  |  755|  7.88k|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	    asoc->primary_destination, SCTP_FROM_SCTP_INPUT + SCTP_LOC_3);
  ------------------
  |  |  771|  7.88k|#define SCTP_LOC_3  0x00000003
  ------------------
  544|       |
  545|       |	/* calculate the RTO */
  546|  7.88k|	if (asoc->overall_error_count == 0) {
  ------------------
  |  Branch (546:6): [True: 7.88k, False: 0]
  ------------------
  547|  7.88k|		sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
  548|  7.88k|		                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|  7.88k|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
  549|  7.88k|	}
  550|  7.88k|	stcb->asoc.overall_error_count = 0;
  551|  7.88k|	net->error_count = 0;
  552|  7.88k|#if defined(__Userspace__)
  553|  7.88k|	if (stcb->sctp_ep->recv_callback) {
  ------------------
  |  Branch (553:6): [True: 0, False: 7.88k]
  ------------------
  554|      0|		if (stcb->sctp_socket) {
  ------------------
  |  Branch (554:7): [True: 0, False: 0]
  ------------------
  555|      0|			uint32_t inqueue_bytes, sb_free_now;
  556|      0|			struct sctp_inpcb *inp;
  557|       |
  558|      0|			inp = stcb->sctp_ep;
  559|      0|			inqueue_bytes = stcb->asoc.total_output_queue_size - (stcb->asoc.chunks_on_out_queue * sizeof(struct sctp_data_chunk));
  560|      0|			sb_free_now = SCTP_SB_LIMIT_SND(stcb->sctp_socket) - (inqueue_bytes + stcb->asoc.sb_send_resv);
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  561|       |
  562|       |			/* check if the amount free in the send socket buffer crossed the threshold */
  563|      0|			if (inp->send_callback &&
  ------------------
  |  Branch (563:8): [True: 0, False: 0]
  ------------------
  564|      0|			    (((inp->send_sb_threshold > 0) &&
  ------------------
  |  Branch (564:10): [True: 0, False: 0]
  ------------------
  565|      0|			      (sb_free_now >= inp->send_sb_threshold) &&
  ------------------
  |  Branch (565:10): [True: 0, False: 0]
  ------------------
  566|      0|			      (stcb->asoc.chunks_on_out_queue <= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue))) ||
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (566:10): [True: 0, False: 0]
  ------------------
  567|      0|			     (inp->send_sb_threshold == 0))) {
  ------------------
  |  Branch (567:9): [True: 0, False: 0]
  ------------------
  568|      0|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  569|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  570|      0|				inp->send_callback(stcb->sctp_socket, sb_free_now, inp->ulp_info);
  571|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  572|      0|				atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
  573|      0|			}
  574|      0|		}
  575|      0|	}
  576|  7.88k|#endif
  577|  7.88k|	retval = sctp_send_cookie_echo(m, offset, initack_limit, stcb, net);
  578|  7.88k|	return (retval);
  579|  7.88k|}
sctp_input.c:sctp_process_init:
  257|  8.11k|{
  258|  8.11k|	struct sctp_init *init;
  259|  8.11k|	struct sctp_association *asoc;
  260|  8.11k|	struct sctp_nets *lnet;
  261|  8.11k|	unsigned int i;
  262|       |
  263|  8.11k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  8.11k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.11k|	do {                         \
  |  |  |  |  113|  8.11k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.11k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  8.11k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|       |
  265|  8.11k|	init = &cp->init;
  266|  8.11k|	asoc = &stcb->asoc;
  267|       |	/* save off parameters */
  268|  8.11k|	asoc->peer_vtag = ntohl(init->initiate_tag);
  269|  8.11k|	asoc->peers_rwnd = ntohl(init->a_rwnd);
  270|       |	/* init tsn's */
  271|  8.11k|	asoc->highest_tsn_inside_map = asoc->asconf_seq_in = ntohl(init->initial_tsn) - 1;
  272|       |
  273|  8.11k|	if (!TAILQ_EMPTY(&asoc->nets)) {
  ------------------
  |  Branch (273:6): [True: 8.11k, False: 0]
  ------------------
  274|       |		/* update any ssthresh's that may have a default */
  275|  8.11k|		TAILQ_FOREACH(lnet, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (275:3): [True: 8.11k, False: 8.11k]
  ------------------
  276|  8.11k|			lnet->ssthresh = asoc->peers_rwnd;
  277|  8.11k|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  590|  8.11k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  644|  8.11k|#define SCTP_CWND_MONITOR_ENABLE			0x00000002
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  645|  8.11k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (277:8): [True: 0, False: 8.11k]
  ------------------
  278|      0|				sctp_log_cwnd(stcb, lnet, 0, SCTP_CWND_INITIALIZATION);
  ------------------
  |  |  166|      0|#define SCTP_CWND_INITIALIZATION    62
  ------------------
  279|      0|			}
  280|  8.11k|		}
  281|  8.11k|	}
  282|  8.11k|	if (asoc->pre_open_streams > ntohs(init->num_inbound_streams)) {
  ------------------
  |  Branch (282:6): [True: 413, False: 7.69k]
  ------------------
  283|    413|		unsigned int newcnt;
  284|    413|		struct sctp_stream_out *outs;
  285|    413|		struct sctp_stream_queue_pending *sp, *nsp;
  286|    413|		struct sctp_tmit_chunk *chk, *nchk;
  287|       |
  288|       |		/* abandon the upper streams */
  289|    413|		newcnt = ntohs(init->num_inbound_streams);
  290|    413|		TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|    413|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    413|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 413]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    413|              (var) = (tvar))
  ------------------
  291|      0|			if (chk->rec.data.sid >= newcnt) {
  ------------------
  |  Branch (291:8): [True: 0, False: 0]
  ------------------
  292|      0|				TAILQ_REMOVE(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (292:5): [True: 0, False: 0]
  |  Branch (292:5): [Folded, False: 0]
  ------------------
  293|      0|				asoc->send_queue_cnt--;
  294|      0|				if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (294:9): [True: 0, False: 0]
  ------------------
  295|      0|					asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
  296|      0|#ifdef INVARIANTS
  297|      0|				} else {
  298|      0|					panic("No chunks on the queues for sid %u.", chk->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  299|      0|#endif
  300|      0|				}
  301|      0|				if (chk->data != NULL) {
  ------------------
  |  Branch (301:9): [True: 0, False: 0]
  ------------------
  302|      0|					sctp_free_bufspace(stcb, asoc, chk, 1);
  303|      0|					sctp_ulp_notify(SCTP_NOTIFY_UNSENT_DG_FAIL, stcb,
  ------------------
  |  |  708|      0|#define SCTP_NOTIFY_UNSENT_DG_FAIL               6
  ------------------
  304|      0|					                0, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  305|      0|					if (chk->data) {
  ------------------
  |  Branch (305:10): [True: 0, False: 0]
  ------------------
  306|      0|						sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  307|      0|						chk->data = NULL;
  308|      0|					}
  309|      0|				}
  310|      0|				sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (310:5): [Folded, False: 0]
  ------------------
  311|       |				/*sa_ignore FREED_MEMORY*/
  312|      0|			}
  313|      0|		}
  314|    413|		if (asoc->strmout) {
  ------------------
  |  Branch (314:7): [True: 413, False: 0]
  ------------------
  315|  66.0k|			for (i = newcnt; i < asoc->pre_open_streams; i++) {
  ------------------
  |  Branch (315:21): [True: 65.6k, False: 413]
  ------------------
  316|  65.6k|				outs = &asoc->strmout[i];
  317|  65.6k|				TAILQ_FOREACH_SAFE(sp, &outs->outqueue, next, nsp) {
  ------------------
  |  | 1129|  65.6k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  65.6k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 65.6k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  65.6k|              (var) = (tvar))
  ------------------
  318|      0|					atomic_subtract_int(&stcb->asoc.stream_queue_cnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
  319|      0|					TAILQ_REMOVE(&outs->outqueue, sp, next);
  ------------------
  |  Branch (319:6): [True: 0, False: 0]
  |  Branch (319:6): [Folded, False: 0]
  ------------------
  320|      0|					stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, outs, sp);
  321|      0|					sctp_ulp_notify(SCTP_NOTIFY_SPECIAL_SP_FAIL,
  ------------------
  |  |  709|      0|#define SCTP_NOTIFY_SPECIAL_SP_FAIL              7
  ------------------
  322|      0|					    stcb, 0, sp, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  323|      0|					if (sp->data) {
  ------------------
  |  Branch (323:10): [True: 0, False: 0]
  ------------------
  324|      0|						sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  325|      0|						sp->data = NULL;
  326|      0|					}
  327|      0|					if (sp->net) {
  ------------------
  |  Branch (327:10): [True: 0, False: 0]
  ------------------
  328|      0|						sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
  329|      0|						sp->net = NULL;
  330|      0|					}
  331|       |					/* Free the chunk */
  332|      0|					sctp_free_a_strmoq(stcb, sp, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  125|      0|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|      0|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  131|      0|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|}
  ------------------
  333|       |					/*sa_ignore FREED_MEMORY*/
  334|      0|				}
  335|  65.6k|				outs->state = SCTP_STREAM_CLOSED;
  ------------------
  |  |  668|  65.6k|#define SCTP_STREAM_CLOSED           0x00
  ------------------
  336|  65.6k|			}
  337|    413|		}
  338|       |		/* cut back the count */
  339|    413|		asoc->pre_open_streams = newcnt;
  340|    413|	}
  341|  8.11k|	asoc->streamoutcnt = asoc->pre_open_streams;
  342|  8.11k|	if (asoc->strmout) {
  ------------------
  |  Branch (342:6): [True: 8.11k, False: 0]
  ------------------
  343|  2.02M|		for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (343:15): [True: 2.01M, False: 8.11k]
  ------------------
  344|  2.01M|			asoc->strmout[i].state = SCTP_STREAM_OPEN;
  ------------------
  |  |  670|  2.01M|#define SCTP_STREAM_OPEN             0x02
  ------------------
  345|  2.01M|		}
  346|  8.11k|	}
  347|       |	/* EY - nr_sack: initialize highest tsn in nr_mapping_array */
  348|  8.11k|	asoc->highest_tsn_inside_nr_map = asoc->highest_tsn_inside_map;
  349|  8.11k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|  8.11k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|  8.11k|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (349:6): [True: 0, False: 8.11k]
  ------------------
  350|      0|		sctp_log_map(0, 5, asoc->highest_tsn_inside_map, SCTP_MAP_SLIDE_RESULT);
  ------------------
  |  |  128|      0|#define SCTP_MAP_SLIDE_RESULT       23
  ------------------
  351|      0|	}
  352|       |	/* This is the next one we expect */
  353|  8.11k|	asoc->str_reset_seq_in = asoc->asconf_seq_in + 1;
  354|       |
  355|  8.11k|	asoc->mapping_array_base_tsn = ntohl(init->initial_tsn);
  356|  8.11k|	asoc->tsn_last_delivered = asoc->cumulative_tsn = asoc->asconf_seq_in;
  357|       |
  358|  8.11k|	asoc->advanced_peer_ack_point = asoc->last_acked_seq;
  359|       |	/* open the requested streams */
  360|       |
  361|  8.11k|	if (asoc->strmin != NULL) {
  ------------------
  |  Branch (361:6): [True: 0, False: 8.11k]
  ------------------
  362|       |		/* Free the old ones */
  363|      0|		for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (363:15): [True: 0, False: 0]
  ------------------
  364|      0|			sctp_clean_up_stream(stcb, &asoc->strmin[i].inqueue);
  365|      0|			sctp_clean_up_stream(stcb, &asoc->strmin[i].uno_inqueue);
  366|      0|		}
  367|      0|		SCTP_FREE(asoc->strmin, SCTP_M_STRMI);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  368|      0|	}
  369|  8.11k|	if (asoc->max_inbound_streams > ntohs(init->num_outbound_streams)) {
  ------------------
  |  Branch (369:6): [True: 334, False: 7.77k]
  ------------------
  370|    334|		asoc->streamincnt = ntohs(init->num_outbound_streams);
  371|  7.77k|	} else {
  372|  7.77k|		asoc->streamincnt = asoc->max_inbound_streams;
  373|  7.77k|	}
  374|  8.11k|	SCTP_MALLOC(asoc->strmin, struct sctp_stream_in *, asoc->streamincnt *
  ------------------
  |  |  675|  8.11k|	do {								\
  |  |  676|  8.11k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  8.11k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  8.11k|    do {								\
  |  |  |  |  198|  8.11k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  16.2k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  8.11k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  8.11k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 8.11k]
  |  |  ------------------
  ------------------
  375|  8.11k|		    sizeof(struct sctp_stream_in), SCTP_M_STRMI);
  376|  8.11k|	if (asoc->strmin == NULL) {
  ------------------
  |  Branch (376:6): [True: 0, False: 8.11k]
  ------------------
  377|       |		/* we didn't get memory for the streams! */
  378|      0|		SCTPDBG(SCTP_DEBUG_INPUT2, "process_init: couldn't get memory for the streams!\n");
  379|      0|		return (-1);
  380|      0|	}
  381|  2.03M|	for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (381:14): [True: 2.02M, False: 8.11k]
  ------------------
  382|  2.02M|		asoc->strmin[i].sid = i;
  383|  2.02M|		asoc->strmin[i].last_mid_delivered = 0xffffffff;
  384|  2.02M|		TAILQ_INIT(&asoc->strmin[i].inqueue);
  ------------------
  |  Branch (384:3): [Folded, False: 2.02M]
  ------------------
  385|  2.02M|		TAILQ_INIT(&asoc->strmin[i].uno_inqueue);
  ------------------
  |  Branch (385:3): [Folded, False: 2.02M]
  ------------------
  386|  2.02M|		asoc->strmin[i].pd_api_started = 0;
  387|  2.02M|		asoc->strmin[i].delivery_started = 0;
  388|  2.02M|	}
  389|       |	/*
  390|       |	 * load_address_from_init will put the addresses into the
  391|       |	 * association when the COOKIE is processed or the INIT-ACK is
  392|       |	 * processed. Both types of COOKIE's existing and new call this
  393|       |	 * routine. It will remove addresses that are no longer in the
  394|       |	 * association (for the restarting case where addresses are
  395|       |	 * removed). Up front when the INIT arrives we will discard it if it
  396|       |	 * is a restart and new addresses have been added.
  397|       |	 */
  398|       |	/* sa_ignore MEMLEAK */
  399|  8.11k|	return (0);
  400|  8.11k|}
sctp_input.c:sctp_handle_heartbeat_ack:
  584|  2.85k|{
  585|  2.85k|	union sctp_sockstore store;
  586|  2.85k|	struct sctp_nets *r_net, *f_net;
  587|  2.85k|	struct timeval tv;
  588|  2.85k|	int req_prim = 0;
  589|  2.85k|	uint16_t old_error_counter;
  590|       |
  591|  2.85k|	if (ntohs(cp->ch.chunk_length) != sizeof(struct sctp_heartbeat_chunk)) {
  ------------------
  |  Branch (591:6): [True: 0, False: 2.85k]
  ------------------
  592|       |		/* Invalid length */
  593|      0|		return;
  594|      0|	}
  595|       |
  596|  2.85k|	memset(&store, 0, sizeof(store));
  597|  2.85k|	switch (cp->heartbeat.hb_info.addr_family) {
  598|      0|#ifdef INET
  599|    657|	case AF_INET:
  ------------------
  |  Branch (599:2): [True: 657, False: 2.19k]
  ------------------
  600|    657|		if (cp->heartbeat.hb_info.addr_len == sizeof(struct sockaddr_in)) {
  ------------------
  |  Branch (600:7): [True: 615, False: 42]
  ------------------
  601|    615|			store.sin.sin_family = cp->heartbeat.hb_info.addr_family;
  602|       |#ifdef HAVE_SIN_LEN
  603|       |			store.sin.sin_len = cp->heartbeat.hb_info.addr_len;
  604|       |#endif
  605|    615|			store.sin.sin_port = stcb->rport;
  606|    615|			memcpy(&store.sin.sin_addr, cp->heartbeat.hb_info.address,
  607|    615|			       sizeof(store.sin.sin_addr));
  608|    615|		} else {
  609|     42|			return;
  610|     42|		}
  611|    615|		break;
  612|    615|#endif
  613|    615|#ifdef INET6
  614|    615|	case AF_INET6:
  ------------------
  |  Branch (614:2): [True: 178, False: 2.67k]
  ------------------
  615|    178|		if (cp->heartbeat.hb_info.addr_len == sizeof(struct sockaddr_in6)) {
  ------------------
  |  Branch (615:7): [True: 76, False: 102]
  ------------------
  616|     76|			store.sin6.sin6_family = cp->heartbeat.hb_info.addr_family;
  617|       |#ifdef HAVE_SIN6_LEN
  618|       |			store.sin6.sin6_len = cp->heartbeat.hb_info.addr_len;
  619|       |#endif
  620|     76|			store.sin6.sin6_port = stcb->rport;
  621|     76|			memcpy(&store.sin6.sin6_addr, cp->heartbeat.hb_info.address, sizeof(struct in6_addr));
  622|    102|		} else {
  623|    102|			return;
  624|    102|		}
  625|     76|		break;
  626|     76|#endif
  627|     76|#if defined(__Userspace__)
  628|  1.69k|	case AF_CONN:
  ------------------
  |  | 1014|  1.69k|#define AF_CONN 123
  ------------------
  |  Branch (628:2): [True: 1.69k, False: 1.15k]
  ------------------
  629|  1.69k|		if (cp->heartbeat.hb_info.addr_len == sizeof(struct sockaddr_conn)) {
  ------------------
  |  Branch (629:7): [True: 1.54k, False: 151]
  ------------------
  630|  1.54k|			store.sconn.sconn_family = cp->heartbeat.hb_info.addr_family;
  631|       |#ifdef HAVE_SCONN_LEN
  632|       |			store.sconn.sconn_len = cp->heartbeat.hb_info.addr_len;
  633|       |#endif
  634|  1.54k|			store.sconn.sconn_port = stcb->rport;
  635|  1.54k|			memcpy(&store.sconn.sconn_addr, cp->heartbeat.hb_info.address, sizeof(void *));
  636|  1.54k|		} else {
  637|    151|			return;
  638|    151|		}
  639|  1.54k|		break;
  640|  1.54k|#endif
  641|  1.54k|	default:
  ------------------
  |  Branch (641:2): [True: 324, False: 2.52k]
  ------------------
  642|    324|		return;
  643|  2.85k|	}
  644|  2.23k|	r_net = sctp_findnet(stcb, &store.sa);
  645|  2.23k|	if (r_net == NULL) {
  ------------------
  |  Branch (645:6): [True: 255, False: 1.97k]
  ------------------
  646|    255|		SCTPDBG(SCTP_DEBUG_INPUT1, "Huh? I can't find the address I sent it to, discard\n");
  647|    255|		return;
  648|    255|	}
  649|  1.97k|	if ((r_net && (r_net->dest_state & SCTP_ADDR_UNCONFIRMED)) &&
  ------------------
  |  |  487|  1.97k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (649:7): [True: 1.97k, False: 0]
  |  Branch (649:16): [True: 453, False: 1.52k]
  ------------------
  650|    453|	    (r_net->heartbeat_random1 == cp->heartbeat.hb_info.random_value1) &&
  ------------------
  |  Branch (650:6): [True: 145, False: 308]
  ------------------
  651|    145|	    (r_net->heartbeat_random2 == cp->heartbeat.hb_info.random_value2)) {
  ------------------
  |  Branch (651:6): [True: 31, False: 114]
  ------------------
  652|       |		/*
  653|       |		 * If the its a HB and it's random value is correct when can
  654|       |		 * confirm the destination.
  655|       |		 */
  656|     31|		r_net->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|     31|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  657|     31|		if (r_net->dest_state & SCTP_ADDR_REQ_PRIMARY) {
  ------------------
  |  |  488|     31|#define SCTP_ADDR_REQ_PRIMARY           0x400
  ------------------
  |  Branch (657:7): [True: 3, False: 28]
  ------------------
  658|      3|			stcb->asoc.primary_destination = r_net;
  659|      3|			r_net->dest_state &= ~SCTP_ADDR_REQ_PRIMARY;
  ------------------
  |  |  488|      3|#define SCTP_ADDR_REQ_PRIMARY           0x400
  ------------------
  660|      3|			f_net = TAILQ_FIRST(&stcb->asoc.nets);
  661|      3|			if (f_net != r_net) {
  ------------------
  |  Branch (661:8): [True: 3, False: 0]
  ------------------
  662|       |				/* first one on the list is NOT the primary
  663|       |				 * sctp_cmpaddr() is much more efficient if
  664|       |				 * the primary is the first on the list, make it
  665|       |				 * so.
  666|       |				 */
  667|      3|				TAILQ_REMOVE(&stcb->asoc.nets, r_net, sctp_next);
  ------------------
  |  Branch (667:5): [True: 2, False: 1]
  |  Branch (667:5): [Folded, False: 3]
  ------------------
  668|      3|				TAILQ_INSERT_HEAD(&stcb->asoc.nets, r_net, sctp_next);
  ------------------
  |  Branch (668:5): [True: 3, False: 0]
  |  Branch (668:5): [Folded, False: 3]
  ------------------
  669|      3|			}
  670|      3|			req_prim = 1;
  671|      3|		}
  672|     31|		sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_CONFIRMED,
  ------------------
  |  |  718|     31|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
  673|     31|		    stcb, 0, (void *)r_net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     31|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  674|     31|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb,
  ------------------
  |  |  536|     31|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  675|     31|		                r_net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_4);
  ------------------
  |  |  755|     31|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              		                r_net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_4);
  ------------------
  |  |  772|     31|#define SCTP_LOC_4  0x00000004
  ------------------
  676|     31|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, r_net);
  ------------------
  |  |  536|     31|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  677|     31|	}
  678|  1.97k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  1.97k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  1.97k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (678:6): [True: 0, False: 1.97k]
  ------------------
  679|      0|		sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
  680|      0|			       stcb->asoc.overall_error_count,
  681|      0|			       0,
  682|      0|			       SCTP_FROM_SCTP_INPUT,
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
  683|      0|			       __LINE__);
  684|      0|	}
  685|  1.97k|	stcb->asoc.overall_error_count = 0;
  686|  1.97k|	old_error_counter = r_net->error_count;
  687|  1.97k|	r_net->error_count = 0;
  688|  1.97k|	r_net->hb_responded = 1;
  689|  1.97k|	tv.tv_sec = cp->heartbeat.hb_info.time_value_1;
  690|  1.97k|	tv.tv_usec = cp->heartbeat.hb_info.time_value_2;
  691|       |	/* Now lets do a RTO with this */
  692|  1.97k|	sctp_calculate_rto(stcb, &stcb->asoc, r_net, &tv,
  693|  1.97k|	                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|  1.97k|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
  694|  1.97k|	if ((r_net->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|  1.97k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (694:6): [True: 0, False: 1.97k]
  ------------------
  695|      0|		r_net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  696|      0|		sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb,
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
  697|      0|				0, (void *)r_net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  698|      0|	}
  699|  1.97k|	if (r_net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|  1.97k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (699:6): [True: 0, False: 1.97k]
  ------------------
  700|      0|		r_net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  701|      0|		stcb->asoc.cc_functions.sctp_cwnd_update_exit_pf(stcb, net);
  702|      0|	}
  703|  1.97k|	if (old_error_counter > 0) {
  ------------------
  |  Branch (703:6): [True: 0, False: 1.97k]
  ------------------
  704|      0|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  705|      0|		                stcb, r_net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_5);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              		                stcb, r_net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_5);
  ------------------
  |  |  773|      0|#define SCTP_LOC_5  0x00000005
  ------------------
  706|      0|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, r_net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  707|      0|	}
  708|  1.97k|	if (r_net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (708:6): [True: 1.34k, False: 629]
  ------------------
  709|  1.34k|		if (stcb->asoc.alternate) {
  ------------------
  |  Branch (709:7): [True: 98, False: 1.25k]
  ------------------
  710|       |			/* release the alternate, primary is good */
  711|     98|			sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|     98|#define sctp_free_remote_addr(__net) { \
  |  |  229|     98|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 98, False: 0]
  |  |  ------------------
  |  |  230|     98|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|     98|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|     98|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 98]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|     98|	} \
  |  |  245|     98|}
  ------------------
  712|     98|			stcb->asoc.alternate = NULL;
  713|     98|		}
  714|  1.34k|	}
  715|       |	/* Mobility adaptation */
  716|  1.97k|	if (req_prim) {
  ------------------
  |  Branch (716:6): [True: 3, False: 1.97k]
  ------------------
  717|      3|		if ((sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      6|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 3]
  |  |  ------------------
  ------------------
  718|      3|		                                 SCTP_MOBILITY_BASE) ||
  719|      3|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      3|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 3]
  |  |  ------------------
  ------------------
  720|      3|		                                SCTP_MOBILITY_FASTHANDOFF)) &&
  721|      0|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      0|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  722|      3|		                                SCTP_MOBILITY_PRIM_DELETED)) {
  723|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_PRIM_DELETED,
  ------------------
  |  |  548|      0|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  724|      0|			                stcb->sctp_ep, stcb, NULL,
  725|      0|			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_6);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_6);
  ------------------
  |  |  774|      0|#define SCTP_LOC_6  0x00000006
  ------------------
  726|      0|			if (sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      0|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  727|      0|			                                SCTP_MOBILITY_FASTHANDOFF)) {
  728|      0|				sctp_assoc_immediate_retrans(stcb,
  729|      0|				                             stcb->asoc.primary_destination);
  730|      0|			}
  731|      0|			if (sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      0|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  732|      0|				                        SCTP_MOBILITY_BASE)) {
  733|      0|				sctp_move_chunks_from_net(stcb,
  734|      0|				                          stcb->asoc.deleted_primary);
  735|      0|			}
  736|      0|			sctp_delete_prim_timer(stcb->sctp_ep, stcb);
  737|      0|		}
  738|      3|	}
  739|  1.97k|}
sctp_input.c:sctp_handle_abort:
  813|     82|{
  814|       |#if defined(__APPLE__) && !defined(__Userspace__)
  815|       |	struct socket *so;
  816|       |#endif
  817|     82|	uint16_t len;
  818|     82|	uint16_t error;
  819|       |
  820|     82|	SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_abort: handling ABORT\n");
  821|     82|	if (stcb == NULL)
  ------------------
  |  Branch (821:6): [True: 0, False: 82]
  ------------------
  822|      0|		return (0);
  823|       |
  824|     82|	len = ntohs(abort->ch.chunk_length);
  825|     82|	if (len >= sizeof(struct sctp_chunkhdr) + sizeof(struct sctp_error_cause)) {
  ------------------
  |  Branch (825:6): [True: 56, False: 26]
  ------------------
  826|       |		/* Need to check the cause codes for our
  827|       |		 * two magic nat aborts which don't kill the assoc
  828|       |		 * necessarily.
  829|       |		 */
  830|     56|		struct sctp_error_cause *cause;
  831|       |
  832|     56|		cause = (struct sctp_error_cause *)(abort + 1);
  833|     56|		error = ntohs(cause->code);
  834|     56|		if (error == SCTP_CAUSE_NAT_COLLIDING_STATE) {
  ------------------
  |  |  388|     56|#define SCTP_CAUSE_NAT_COLLIDING_STATE  0x00b0
  ------------------
  |  Branch (834:7): [True: 5, False: 51]
  ------------------
  835|      5|			SCTPDBG(SCTP_DEBUG_INPUT2, "Received Colliding state, ABORT flags:%x\n",
  836|      5|			                           abort->ch.chunk_flags);
  837|      5|			if (sctp_handle_nat_colliding_state(stcb)) {
  ------------------
  |  Branch (837:8): [True: 3, False: 2]
  ------------------
  838|      3|				return (0);
  839|      3|			}
  840|     51|		} else if (error == SCTP_CAUSE_NAT_MISSING_STATE) {
  ------------------
  |  |  389|     51|#define SCTP_CAUSE_NAT_MISSING_STATE    0x00b1
  ------------------
  |  Branch (840:14): [True: 1, False: 50]
  ------------------
  841|      1|			SCTPDBG(SCTP_DEBUG_INPUT2, "Received missing state, ABORT flags:%x\n",
  842|      1|			                           abort->ch.chunk_flags);
  843|      1|			if (sctp_handle_nat_missing_state(stcb, net)) {
  ------------------
  |  Branch (843:8): [True: 1, False: 0]
  ------------------
  844|      1|				return (0);
  845|      1|			}
  846|      1|		}
  847|     56|	} else {
  848|     26|		error = 0;
  849|     26|	}
  850|       |	/* stop any receive timers */
  851|     78|	sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|     78|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  852|     78|	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_7);
  ------------------
  |  |  755|     78|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_7);
  ------------------
  |  |  775|     78|#define SCTP_LOC_7  0x00000007
  ------------------
  853|       |	/* notify user of the abort and clean up... */
  854|     78|	sctp_abort_notification(stcb, true, false, error, abort, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     78|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  855|       |	/* free the tcb */
  856|     78|	SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|     78|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     78|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     78|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     78|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  857|     78|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|     78|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     78|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|     78|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (857:6): [True: 25, False: 53]
  ------------------
  858|     53|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|     53|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     53|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|     53|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (858:6): [True: 1, False: 52]
  ------------------
  859|     26|		SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|     26|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|     26|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|     26|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|     26|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  860|     26|	}
  861|       |#ifdef SCTP_ASOCLOG_OF_TSNS
  862|       |	sctp_print_out_track_log(stcb);
  863|       |#endif
  864|       |#if defined(__APPLE__) && !defined(__Userspace__)
  865|       |	so = SCTP_INP_SO(stcb->sctp_ep);
  866|       |	atomic_add_int(&stcb->asoc.refcnt, 1);
  867|       |	SCTP_TCB_UNLOCK(stcb);
  868|       |	SCTP_SOCKET_LOCK(so, 1);
  869|       |	SCTP_TCB_LOCK(stcb);
  870|       |	atomic_subtract_int(&stcb->asoc.refcnt, 1);
  871|       |#endif
  872|     78|	(void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|     78|#define SCTP_NORMAL_PROC      0
  ------------------
  873|     78|			      SCTP_FROM_SCTP_INPUT + SCTP_LOC_8);
  ------------------
  |  |  755|     78|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              			      SCTP_FROM_SCTP_INPUT + SCTP_LOC_8);
  ------------------
  |  |  776|     78|#define SCTP_LOC_8  0x00000008
  ------------------
  874|       |#if defined(__APPLE__) && !defined(__Userspace__)
  875|       |	SCTP_SOCKET_UNLOCK(so, 1);
  876|       |#endif
  877|     78|	SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_abort: finished\n");
  878|     78|	return (1);
  879|     82|}
sctp_input.c:sctp_handle_nat_colliding_state:
  743|  19.9k|{
  744|       |	/*
  745|       |	 * Return 0 means we want you to proceed with the abort
  746|       |	 * non-zero means no abort processing.
  747|       |	 */
  748|  19.9k|	uint32_t new_vtag;
  749|  19.9k|	struct sctpasochead *head;
  750|       |
  751|  19.9k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  19.9k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  19.9k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  19.9k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (751:6): [True: 17.0k, False: 2.86k]
  ------------------
  752|  17.2k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|  2.86k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.86k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|  2.86k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (752:6): [True: 186, False: 2.68k]
  ------------------
  753|  17.2k|		atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  17.2k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  754|  17.2k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  17.2k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  17.2k|	do {                         \
  |  |  |  |  113|  17.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  17.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  755|  17.2k|		SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  17.2k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  17.2k|	do {                         \
  |  |  |  |  113|  17.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  17.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  756|  17.2k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  17.2k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  17.2k|	do {                         \
  |  |  |  |  113|  17.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  17.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  757|  17.2k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  17.2k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
  758|  17.2k|	} else {
  759|  2.68k|		return (0);
  760|  2.68k|	}
  761|  17.2k|	new_vtag = sctp_select_a_tag(stcb->sctp_ep, stcb->sctp_ep->sctp_lport, stcb->rport, 1);
  ------------------
  |  |  426|  17.2k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  17.2k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  17.2k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  762|  17.2k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|  17.2k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  17.2k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|  17.2k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (762:6): [True: 17.0k, False: 186]
  ------------------
  763|       |		/* generate a new vtag and send init */
  764|  17.0k|		LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (764:3): [True: 21, False: 17.0k]
  |  Branch (764:3): [Folded, False: 17.0k]
  ------------------
  765|  17.0k|		stcb->asoc.my_vtag = new_vtag;
  766|  17.0k|		head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|  17.0k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              		head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |   57|  17.0k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
  767|       |		/* put it in the bucket in the vtag hash of assoc's for the system */
  768|  17.0k|		LIST_INSERT_HEAD(head, stcb, sctp_asocs);
  ------------------
  |  Branch (768:3): [True: 20, False: 17.0k]
  |  Branch (768:3): [Folded, False: 17.0k]
  ------------------
  769|  17.0k|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  17.0k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  17.0k|	do {                         \
  |  |  |  |  113|  17.0k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17.0k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  17.0k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  770|  17.0k|		sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  17.0k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  771|  17.0k|		return (1);
  772|  17.0k|	} else {
  773|       |		/* treat like a case where the cookie expired i.e.:
  774|       |		* - dump current cookie.
  775|       |		* - generate a new vtag.
  776|       |		* - resend init.
  777|       |		*/
  778|       |		/* generate a new vtag and send init */
  779|    186|		LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (779:3): [True: 0, False: 186]
  |  Branch (779:3): [Folded, False: 186]
  ------------------
  780|    186|		SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|    186|	sctp_set_state(_stcb, _state)
  ------------------
  781|    186|		sctp_stop_all_cookie_timers(stcb);
  782|    186|		sctp_toss_old_cookies(stcb, &stcb->asoc);
  783|    186|		stcb->asoc.my_vtag = new_vtag;
  784|    186|		head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|    186|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              		head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |   57|    186|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
  785|       |		/* put it in the bucket in the vtag hash of assoc's for the system */
  786|    186|		LIST_INSERT_HEAD(head, stcb, sctp_asocs);
  ------------------
  |  Branch (786:3): [True: 1, False: 185]
  |  Branch (786:3): [Folded, False: 186]
  ------------------
  787|    186|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|    186|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    186|	do {                         \
  |  |  |  |  113|    186|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 186]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    186|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 186]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  788|    186|		sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    186|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  789|    186|		return (1);
  790|    186|	}
  791|      0|	return (0);
  792|  17.2k|}
sctp_input.c:sctp_stop_all_cookie_timers:
   66|  23.6k|{
   67|  23.6k|	struct sctp_nets *net;
   68|       |
   69|       |	/* This now not only stops all cookie timers
   70|       |	 * it also stops any INIT timers as well. This
   71|       |	 * will make sure that the timers are stopped in
   72|       |	 * all collision cases.
   73|       |	 */
   74|  23.6k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  23.6k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  23.6k|	do {                         \
  |  |  |  |  113|  23.6k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.6k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.6k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   75|  32.9k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (75:2): [True: 32.9k, False: 23.6k]
  ------------------
   76|  32.9k|		if (net->rxt_timer.type == SCTP_TIMER_TYPE_COOKIE) {
  ------------------
  |  |  537|  32.9k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (76:7): [True: 9.65k, False: 23.2k]
  ------------------
   77|  9.65k|			sctp_timer_stop(SCTP_TIMER_TYPE_COOKIE,
  ------------------
  |  |  537|  9.65k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
   78|  9.65k|					stcb->sctp_ep,
   79|  9.65k|					stcb,
   80|  9.65k|					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_1);
  ------------------
  |  |  755|  9.65k|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_1);
  ------------------
  |  |  769|  9.65k|#define SCTP_LOC_1  0x00000001
  ------------------
   81|  23.2k|		} else if (net->rxt_timer.type == SCTP_TIMER_TYPE_INIT) {
  ------------------
  |  |  533|  23.2k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (81:14): [True: 12.7k, False: 10.5k]
  ------------------
   82|  12.7k|			sctp_timer_stop(SCTP_TIMER_TYPE_INIT,
  ------------------
  |  |  533|  12.7k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
   83|  12.7k|					stcb->sctp_ep,
   84|  12.7k|					stcb,
   85|  12.7k|					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_2);
  ------------------
  |  |  755|  12.7k|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_2);
  ------------------
  |  |  770|  12.7k|#define SCTP_LOC_2  0x00000002
  ------------------
   86|  12.7k|		}
   87|  32.9k|	}
   88|  23.6k|}
sctp_input.c:sctp_handle_nat_missing_state:
  797|    524|{
  798|       |	/* return 0 means we want you to proceed with the abort
  799|       |	 * non-zero means no abort processing
  800|       |	 */
  801|    524|	if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (801:6): [True: 0, False: 524]
  ------------------
  802|      0|		SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_nat_missing_state: Peer does not support AUTH, cannot send an asconf\n");
  803|      0|		return (0);
  804|      0|	}
  805|    524|	sctp_asconf_send_nat_state_update(stcb, net);
  806|    524|	return (1);
  807|    524|}
sctp_input.c:sctp_handle_shutdown:
  946|  2.36k|{
  947|  2.36k|	int some_on_streamwheel;
  948|  2.36k|	int old_state;
  949|       |#if defined(__APPLE__) && !defined(__Userspace__)
  950|       |	struct socket *so;
  951|       |#endif
  952|       |
  953|  2.36k|	SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_shutdown: handling SHUTDOWN\n");
  954|  2.36k|	if (stcb == NULL)
  ------------------
  |  Branch (954:6): [True: 0, False: 2.36k]
  ------------------
  955|      0|		return;
  956|  2.36k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  2.36k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.36k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  2.36k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (956:6): [True: 986, False: 1.37k]
  ------------------
  957|  1.37k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|  1.37k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.37k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|  1.37k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (957:6): [True: 321, False: 1.05k]
  ------------------
  958|  1.30k|		return;
  959|  1.30k|	}
  960|  1.05k|	if (ntohs(cp->ch.chunk_length) != sizeof(struct sctp_shutdown_chunk)) {
  ------------------
  |  Branch (960:6): [True: 0, False: 1.05k]
  ------------------
  961|       |		/* Shutdown NOT the expected size */
  962|      0|		return;
  963|      0|	}
  964|  1.05k|	old_state = SCTP_GET_STATE(stcb);
  ------------------
  |  |  472|  1.05k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.05k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
  965|  1.05k|	sctp_update_acked(stcb, cp, abort_flag);
  966|  1.05k|	if (*abort_flag) {
  ------------------
  |  Branch (966:6): [True: 112, False: 944]
  ------------------
  967|    112|		return;
  968|    112|	}
  969|    944|	sctp_check_data_from_peer(stcb, abort_flag);
  970|    944|	if (*abort_flag) {
  ------------------
  |  Branch (970:6): [True: 0, False: 944]
  ------------------
  971|      0|		return;
  972|      0|	}
  973|    944|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (973:6): [True: 944, False: 0]
  ------------------
  974|    944|		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  472|    944|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    944|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  461|    944|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (974:7): [True: 173, False: 771]
  ------------------
  975|    173|		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) &&
  ------------------
  |  |  472|    173|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    173|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) &&
  ------------------
  |  |  462|    173|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (975:7): [True: 103, False: 70]
  ------------------
  976|    103|		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT)) {
  ------------------
  |  |  472|    103|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    103|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT)) {
  ------------------
  |  |  460|    103|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (976:7): [True: 103, False: 0]
  ------------------
  977|    103|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_RECEIVED);
  ------------------
  |  |  474|    103|	sctp_set_state(_stcb, _state)
  ------------------
  978|       |			/* notify upper layer that peer has initiated a shutdown */
  979|    103|			sctp_ulp_notify(SCTP_NOTIFY_PEER_SHUTDOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  713|    103|#define SCTP_NOTIFY_PEER_SHUTDOWN               11
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_PEER_SHUTDOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    103|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  980|       |
  981|       |			/* reset time */
  982|    103|			(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|    103|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
  983|    103|		}
  984|    944|	}
  985|    944|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  472|    944|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    944|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  460|    944|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (985:6): [True: 0, False: 944]
  ------------------
  986|       |		/*
  987|       |		 * stop the shutdown timer, since we WILL move to
  988|       |		 * SHUTDOWN-ACK-SENT.
  989|       |		 */
  990|      0|		sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWN, stcb->sctp_ep, stcb,
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  991|      0|		                net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_9);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              		                net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_9);
  ------------------
  |  |  777|      0|#define SCTP_LOC_9  0x00000009
  ------------------
  992|      0|	}
  993|       |	/* Now is there unsent data on a stream somewhere? */
  994|    944|	some_on_streamwheel = sctp_is_there_unsent_data(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    944|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  995|       |
  996|    944|	if (!TAILQ_EMPTY(&stcb->asoc.send_queue) ||
  ------------------
  |  Branch (996:6): [True: 488, False: 456]
  ------------------
  997|    456|	    !TAILQ_EMPTY(&stcb->asoc.sent_queue) ||
  ------------------
  |  Branch (997:6): [True: 103, False: 353]
  ------------------
  998|    821|	    some_on_streamwheel) {
  ------------------
  |  Branch (998:6): [True: 230, False: 123]
  ------------------
  999|       |		/* By returning we will push more data out */
 1000|    821|		return;
 1001|    821|	} else {
 1002|       |		/* no outstanding data to send, so move on... */
 1003|       |		/* send SHUTDOWN-ACK */
 1004|       |		/* move to SHUTDOWN-ACK-SENT state */
 1005|    123|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|    123|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    123|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|    123|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (1005:7): [True: 0, False: 123]
  ------------------
 1006|    123|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|    123|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    123|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|    123|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (1006:7): [True: 53, False: 70]
  ------------------
 1007|     53|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|     53|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|     53|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|     53|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|     53|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1008|     53|		}
 1009|    123|		if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  472|    123|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    123|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|    123|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (1009:7): [True: 53, False: 70]
  ------------------
 1010|     53|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_ACK_SENT);
  ------------------
  |  |  474|     53|	sctp_set_state(_stcb, _state)
  ------------------
 1011|     53|			sctp_stop_timers_for_shutdown(stcb);
 1012|     53|			sctp_send_shutdown_ack(stcb, net);
 1013|     53|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNACK,
  ------------------
  |  |  540|     53|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
 1014|     53|			                 stcb->sctp_ep, stcb, net);
 1015|     70|		} else if (old_state == SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|     70|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (1015:14): [True: 70, False: 0]
  ------------------
 1016|     70|			sctp_send_shutdown_ack(stcb, net);
 1017|     70|		}
 1018|    123|	}
 1019|    944|}
sctp_input.c:sctp_check_data_from_peer:
  913|    946|{
  914|    946|	char msg[SCTP_DIAG_INFO_LEN];
  915|    946|	struct sctp_association *asoc;
  916|    946|	struct mbuf *op_err;
  917|    946|	unsigned int i;
  918|       |
  919|    946|	*abort_flag = 0;
  920|    946|	asoc = &stcb->asoc;
  921|    946|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_map, asoc->cumulative_tsn) ||
  ------------------
  |  |  889|    946|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.89k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 73, False: 873]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 73]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.89k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 946]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  922|    946|	    SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|    946|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    946|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 946]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    946|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 946]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  923|      0|		SCTP_SNPRINTF(msg, sizeof(msg), "Missing TSN");
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  924|      0|		*abort_flag = 1;
  925|      0|	}
  926|    946|	if (!*abort_flag) {
  ------------------
  |  Branch (926:6): [True: 946, False: 0]
  ------------------
  927|   244k|		for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (927:15): [True: 243k, False: 946]
  ------------------
  928|   243k|			if (!TAILQ_EMPTY(&asoc->strmin[i].inqueue) ||
  ------------------
  |  Branch (928:8): [True: 0, False: 243k]
  ------------------
  929|   243k|			    !TAILQ_EMPTY(&asoc->strmin[i].uno_inqueue)) {
  ------------------
  |  Branch (929:8): [True: 0, False: 243k]
  ------------------
  930|      0|				SCTP_SNPRINTF(msg, sizeof(msg), "Missing user data");
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  931|      0|				*abort_flag = 1;
  932|      0|				break;
  933|      0|			}
  934|   243k|		}
  935|    946|	}
  936|    946|	if (*abort_flag) {
  ------------------
  |  Branch (936:6): [True: 0, False: 946]
  ------------------
  937|      0|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      0|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  938|      0|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INPUT + SCTP_LOC_9;
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INPUT + SCTP_LOC_9;
  ------------------
  |  |  777|      0|#define SCTP_LOC_9  0x00000009
  ------------------
  939|      0|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  940|      0|	}
  941|    946|}
sctp_input.c:sctp_handle_shutdown_ack:
 1025|     12|{
 1026|     12|	int abort_flag;
 1027|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1028|       |	struct socket *so;
 1029|       |
 1030|       |	so = SCTP_INP_SO(stcb->sctp_ep);
 1031|       |#endif
 1032|     12|	SCTPDBG(SCTP_DEBUG_INPUT2,
 1033|     12|	        "sctp_handle_shutdown_ack: handling SHUTDOWN ACK\n");
 1034|     12|	if (stcb == NULL) {
  ------------------
  |  Branch (1034:6): [True: 0, False: 12]
  ------------------
 1035|      0|		return;
 1036|      0|	}
 1037|       |
 1038|       |	/* process according to association state */
 1039|     12|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|     12|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     12|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|     12|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (1039:6): [True: 5, False: 7]
  ------------------
 1040|      7|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|      7|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      7|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|      7|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (1040:6): [True: 1, False: 6]
  ------------------
 1041|       |		/* unexpected SHUTDOWN-ACK... do OOTB handling... */
 1042|      6|		sctp_send_shutdown_complete(stcb, net, 1);
 1043|      6|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      6|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      6|	do {                         \
  |  |  |  |  113|      6|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      6|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1044|      6|		return;
 1045|      6|	}
 1046|      6|	if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  472|      6|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      6|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  460|      6|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (1046:6): [True: 6, False: 0]
  ------------------
 1047|      6|	    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  472|      6|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      6|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|      6|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (1047:6): [True: 4, False: 2]
  ------------------
 1048|       |		/* unexpected SHUTDOWN-ACK... so ignore... */
 1049|      4|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      4|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      4|	do {                         \
  |  |  |  |  113|      4|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      4|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1050|      4|		return;
 1051|      4|	}
 1052|      2|	sctp_check_data_from_peer(stcb, &abort_flag);
 1053|      2|	if (abort_flag) {
  ------------------
  |  Branch (1053:6): [True: 0, False: 2]
  ------------------
 1054|      0|		return;
 1055|      0|	}
 1056|      2|#ifdef INVARIANTS
 1057|      2|	if (!TAILQ_EMPTY(&stcb->asoc.send_queue) ||
  ------------------
  |  Branch (1057:6): [True: 0, False: 2]
  ------------------
 1058|      2|	    !TAILQ_EMPTY(&stcb->asoc.sent_queue) ||
  ------------------
  |  Branch (1058:6): [True: 0, False: 2]
  ------------------
 1059|      2|	    sctp_is_there_unsent_data(stcb, SCTP_SO_NOT_LOCKED)) {
  ------------------
  |  |  960|      2|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  |  Branch (1059:6): [True: 0, False: 2]
  ------------------
 1060|      0|		panic("Queues are not empty when handling SHUTDOWN-ACK");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1061|      0|	}
 1062|      2|#endif
 1063|       |	/* stop the timer */
 1064|      2|	sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWN, stcb->sctp_ep, stcb, net,
  ------------------
  |  |  535|      2|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
 1065|      2|	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_10);
  ------------------
  |  |  755|      2|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_10);
  ------------------
  |  |  778|      2|#define SCTP_LOC_10 0x0000000a
  ------------------
 1066|       |	/* send SHUTDOWN-COMPLETE */
 1067|      2|	sctp_send_shutdown_complete(stcb, net, 0);
 1068|       |	/* notify upper layer protocol */
 1069|      2|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (1069:6): [True: 2, False: 0]
  ------------------
 1070|      2|		if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      2|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (1070:7): [True: 2, False: 0]
  ------------------
 1071|      2|		    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (1071:7): [True: 0, False: 0]
  ------------------
 1072|      2|			SCTP_SB_CLEAR(stcb->sctp_socket->so_snd);
  ------------------
  |  |  979|      2|	(sb).sb_cc = 0;		\
  |  |  980|      2|	(sb).sb_mb = NULL;	\
  |  |  981|      2|	(sb).sb_mbcnt = 0;
  ------------------
 1073|      2|		}
 1074|      2|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_DOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  704|      2|#define SCTP_NOTIFY_ASSOC_DOWN                   2
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_DOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      2|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1075|      2|	}
 1076|      2|	SCTP_STAT_INCR_COUNTER32(sctps_shutdown);
  ------------------
  |  | 1127|      2|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      2|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      2|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      2|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1077|       |	/* free the TCB but first save off the ep */
 1078|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1079|       |	atomic_add_int(&stcb->asoc.refcnt, 1);
 1080|       |	SCTP_TCB_UNLOCK(stcb);
 1081|       |	SCTP_SOCKET_LOCK(so, 1);
 1082|       |	SCTP_TCB_LOCK(stcb);
 1083|       |	atomic_subtract_int(&stcb->asoc.refcnt, 1);
 1084|       |#endif
 1085|      2|	(void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      2|#define SCTP_NORMAL_PROC      0
  ------------------
 1086|      2|	                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_11);
  ------------------
  |  |  755|      2|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_11);
  ------------------
  |  |  779|      2|#define SCTP_LOC_11 0x0000000b
  ------------------
 1087|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1088|       |	SCTP_SOCKET_UNLOCK(so, 1);
 1089|       |#endif
 1090|      2|}
sctp_input.c:sctp_handle_error:
 1155|   420k|{
 1156|   420k|	struct sctp_error_cause *cause;
 1157|   420k|	struct sctp_association *asoc;
 1158|   420k|	uint32_t remaining_length, adjust;
 1159|   420k|	uint16_t code, cause_code, cause_length;
 1160|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1161|       |	struct socket *so;
 1162|       |#endif
 1163|       |
 1164|       |	/* parse through all of the errors and process */
 1165|   420k|	asoc = &stcb->asoc;
 1166|   420k|	cause = (struct sctp_error_cause *)((caddr_t)ch +
 1167|   420k|	    sizeof(struct sctp_chunkhdr));
 1168|   420k|	remaining_length = ntohs(ch->chunk_length);
 1169|   420k|	if (remaining_length > limit) {
  ------------------
  |  Branch (1169:6): [True: 331, False: 419k]
  ------------------
 1170|    331|		remaining_length = limit;
 1171|    331|	}
 1172|   420k|	if (remaining_length >= sizeof(struct sctp_chunkhdr)) {
  ------------------
  |  Branch (1172:6): [True: 420k, False: 0]
  ------------------
 1173|   420k|		remaining_length -= sizeof(struct sctp_chunkhdr);
 1174|   420k|	} else {
 1175|      0|		remaining_length = 0;
 1176|      0|	}
 1177|   420k|	code = 0;
 1178|   467k|	while (remaining_length >= sizeof(struct sctp_error_cause)) {
  ------------------
  |  Branch (1178:9): [True: 70.4k, False: 397k]
  ------------------
 1179|       |		/* Process an Error Cause */
 1180|  70.4k|		cause_code = ntohs(cause->code);
 1181|  70.4k|		cause_length = ntohs(cause->length);
 1182|  70.4k|		if ((cause_length > remaining_length) || (cause_length == 0)) {
  ------------------
  |  Branch (1182:7): [True: 3.79k, False: 66.6k]
  |  Branch (1182:44): [True: 1.04k, False: 65.6k]
  ------------------
 1183|       |			/* Invalid cause length, possibly due to truncation. */
 1184|  4.83k|			SCTPDBG(SCTP_DEBUG_INPUT1, "Bogus length in cause - bytes left: %u cause length: %u\n",
 1185|  4.83k|				remaining_length, cause_length);
 1186|  4.83k|			return (0);
 1187|  4.83k|		}
 1188|  65.6k|		if (code == 0) {
  ------------------
  |  Branch (1188:7): [True: 29.4k, False: 36.1k]
  ------------------
 1189|       |			/* report the first error cause */
 1190|  29.4k|			code = cause_code;
 1191|  29.4k|		}
 1192|  65.6k|		switch (cause_code) {
 1193|     47|		case SCTP_CAUSE_INVALID_STREAM:
  ------------------
  |  |  366|     47|#define SCTP_CAUSE_INVALID_STREAM	0x0001
  ------------------
  |  Branch (1193:3): [True: 47, False: 65.5k]
  ------------------
 1194|     51|		case SCTP_CAUSE_MISSING_PARAM:
  ------------------
  |  |  367|     51|#define SCTP_CAUSE_MISSING_PARAM	0x0002
  ------------------
  |  Branch (1194:3): [True: 4, False: 65.5k]
  ------------------
 1195|     90|		case SCTP_CAUSE_INVALID_PARAM:
  ------------------
  |  |  372|     90|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
  |  Branch (1195:3): [True: 39, False: 65.5k]
  ------------------
 1196|    136|		case SCTP_CAUSE_NO_USER_DATA:
  ------------------
  |  |  374|    136|#define SCTP_CAUSE_NO_USER_DATA		0x0009
  ------------------
  |  Branch (1196:3): [True: 46, False: 65.5k]
  ------------------
 1197|    136|			SCTPDBG(SCTP_DEBUG_INPUT1, "Software error we got a %u back? We have a bug :/ (or do they?)\n",
 1198|    136|				cause_code);
 1199|    136|			break;
 1200|  19.9k|		case SCTP_CAUSE_NAT_COLLIDING_STATE:
  ------------------
  |  |  388|  19.9k|#define SCTP_CAUSE_NAT_COLLIDING_STATE  0x00b0
  ------------------
  |  Branch (1200:3): [True: 19.9k, False: 45.6k]
  ------------------
 1201|  19.9k|			SCTPDBG(SCTP_DEBUG_INPUT2, "Received Colliding state, ERROR flags: %x\n",
 1202|  19.9k|				ch->chunk_flags);
 1203|  19.9k|			if (sctp_handle_nat_colliding_state(stcb)) {
  ------------------
  |  Branch (1203:8): [True: 17.2k, False: 2.68k]
  ------------------
 1204|  17.2k|				return (0);
 1205|  17.2k|			}
 1206|  2.68k|			break;
 1207|  2.68k|		case SCTP_CAUSE_NAT_MISSING_STATE:
  ------------------
  |  |  389|    523|#define SCTP_CAUSE_NAT_MISSING_STATE    0x00b1
  ------------------
  |  Branch (1207:3): [True: 523, False: 65.0k]
  ------------------
 1208|    523|			SCTPDBG(SCTP_DEBUG_INPUT2, "Received missing state, ERROR flags: %x\n",
 1209|    523|			                           ch->chunk_flags);
 1210|    523|			if (sctp_handle_nat_missing_state(stcb, net)) {
  ------------------
  |  Branch (1210:8): [True: 523, False: 0]
  ------------------
 1211|    523|				return (0);
 1212|    523|			}
 1213|      0|			break;
 1214|    214|		case SCTP_CAUSE_STALE_COOKIE:
  ------------------
  |  |  368|    214|#define SCTP_CAUSE_STALE_COOKIE		0x0003
  ------------------
  |  Branch (1214:3): [True: 214, False: 65.3k]
  ------------------
 1215|       |			/*
 1216|       |			 * We only act if we have echoed a cookie and are
 1217|       |			 * waiting.
 1218|       |			 */
 1219|    214|			if ((cause_length >= sizeof(struct sctp_error_stale_cookie)) &&
  ------------------
  |  Branch (1219:8): [True: 123, False: 91]
  ------------------
 1220|    123|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|    123|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    123|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|    123|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (1220:8): [True: 62, False: 61]
  ------------------
 1221|     62|				struct timeval now;
 1222|     62|				struct sctp_error_stale_cookie *stale_cookie;
 1223|     62|				uint64_t stale_time;
 1224|       |
 1225|     62|				asoc->stale_cookie_count++;
 1226|     62|				if (asoc->stale_cookie_count > asoc->max_init_times) {
  ------------------
  |  Branch (1226:9): [True: 0, False: 62]
  ------------------
 1227|      0|					sctp_abort_notification(stcb, false, true, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1228|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1229|       |					so = SCTP_INP_SO(stcb->sctp_ep);
 1230|       |					atomic_add_int(&stcb->asoc.refcnt, 1);
 1231|       |					SCTP_TCB_UNLOCK(stcb);
 1232|       |					SCTP_SOCKET_LOCK(so, 1);
 1233|       |					SCTP_TCB_LOCK(stcb);
 1234|       |					atomic_subtract_int(&stcb->asoc.refcnt, 1);
 1235|       |#endif
 1236|      0|					(void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
 1237|      0|					                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_12);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              					                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_12);
  ------------------
  |  |  780|      0|#define SCTP_LOC_12 0x0000000c
  ------------------
 1238|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1239|       |					SCTP_SOCKET_UNLOCK(so, 1);
 1240|       |#endif
 1241|      0|					return (-1);
 1242|      0|				}
 1243|     62|				stale_cookie = (struct sctp_error_stale_cookie *)cause;
 1244|     62|				stale_time = ntohl(stale_cookie->stale_time);
 1245|     62|				if (stale_time == 0) {
  ------------------
  |  Branch (1245:9): [True: 7, False: 55]
  ------------------
 1246|       |					/* Use an RTT as an approximation. */
 1247|      7|					(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|      7|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1248|      7|					timevalsub(&now, &asoc->time_entered);
  ------------------
  |  | 1116|      7|	do {                                       \
  |  | 1117|      7|		(tp1)->tv_sec -= (tp2)->tv_sec;    \
  |  | 1118|      7|		(tp1)->tv_usec -= (tp2)->tv_usec;  \
  |  | 1119|      7|		if ((tp1)->tv_usec < 0) {          \
  |  |  ------------------
  |  |  |  Branch (1119:7): [True: 0, False: 7]
  |  |  ------------------
  |  | 1120|      0|			(tp1)->tv_sec--;           \
  |  | 1121|      0|			(tp1)->tv_usec += 1000000; \
  |  | 1122|      0|		}                                  \
  |  | 1123|      7|	} while (0)
  |  |  ------------------
  |  |  |  Branch (1123:11): [Folded, False: 7]
  |  |  ------------------
  ------------------
 1249|      7|					stale_time = (uint64_t)1000000 * (uint64_t)now.tv_sec + (uint64_t)now.tv_usec;
 1250|      7|					if (stale_time == 0) {
  ------------------
  |  Branch (1250:10): [True: 0, False: 7]
  ------------------
 1251|      0|						stale_time = 1;
 1252|      0|					}
 1253|      7|				}
 1254|       |				/*
 1255|       |				 * stale_time is in usec, convert it to msec.
 1256|       |				 * Round upwards, to ensure that it is non-zero.
 1257|       |				 */
 1258|     62|				stale_time = (stale_time + 999) / 1000;
 1259|       |				/* Double it, to be more robust on RTX. */
 1260|     62|				stale_time = 2 * stale_time;
 1261|     62|				asoc->cookie_preserve_req = (uint32_t)stale_time;
 1262|     62|				if (asoc->overall_error_count == 0) {
  ------------------
  |  Branch (1262:9): [True: 62, False: 0]
  ------------------
 1263|     62|					sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
 1264|     62|					                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|     62|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
 1265|     62|				}
 1266|     62|				asoc->overall_error_count = 0;
 1267|       |				/* Blast back to INIT state */
 1268|     62|				sctp_toss_old_cookies(stcb, &stcb->asoc);
 1269|     62|				sctp_stop_all_cookie_timers(stcb);
 1270|     62|				SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|     62|	sctp_set_state(_stcb, _state)
  ------------------
 1271|     62|				(void)SCTP_GETTIME_TIMEVAL(&asoc->time_entered);
  ------------------
  |  |  991|     62|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1272|     62|				sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     62|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1273|     62|			}
 1274|    214|			break;
 1275|    214|		case SCTP_CAUSE_UNRESOLVABLE_ADDR:
  ------------------
  |  |  370|      6|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  |  Branch (1275:3): [True: 6, False: 65.5k]
  ------------------
 1276|       |			/*
 1277|       |			 * Nothing we can do here, we don't do hostname
 1278|       |			 * addresses so if the peer does not like my IPv6
 1279|       |			 * (or IPv4 for that matter) it does not matter. If
 1280|       |			 * they don't support that type of address, they can
 1281|       |			 * NOT possibly get that packet type... i.e. with no
 1282|       |			 * IPv6 you can't receive a IPv6 packet. so we can
 1283|       |			 * safely ignore this one. If we ever added support
 1284|       |			 * for HOSTNAME Addresses, then we would need to do
 1285|       |			 * something here.
 1286|       |			 */
 1287|      6|			break;
 1288|  2.64k|		case SCTP_CAUSE_UNRECOG_CHUNK:
  ------------------
  |  |  371|  2.64k|#define SCTP_CAUSE_UNRECOG_CHUNK	0x0006
  ------------------
  |  Branch (1288:3): [True: 2.64k, False: 62.9k]
  ------------------
 1289|  2.64k|			if (cause_length >= sizeof(struct sctp_error_unrecognized_chunk)) {
  ------------------
  |  Branch (1289:8): [True: 2.28k, False: 359]
  ------------------
 1290|  2.28k|				struct sctp_error_unrecognized_chunk *unrec_chunk;
 1291|       |
 1292|  2.28k|				unrec_chunk = (struct sctp_error_unrecognized_chunk *)cause;
 1293|  2.28k|				sctp_process_unrecog_chunk(stcb, unrec_chunk->ch.chunk_type);
 1294|  2.28k|			}
 1295|  2.64k|			break;
 1296|  3.22k|		case SCTP_CAUSE_UNRECOG_PARAM:
  ------------------
  |  |  373|  3.22k|#define SCTP_CAUSE_UNRECOG_PARAM	0x0008
  ------------------
  |  Branch (1296:3): [True: 3.22k, False: 62.3k]
  ------------------
 1297|       |			/* XXX: We only consider the first parameter */
 1298|  3.22k|			if (cause_length >= sizeof(struct sctp_error_cause) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (1298:8): [True: 2.85k, False: 363]
  ------------------
 1299|  2.85k|				struct sctp_paramhdr *unrec_parameter;
 1300|       |
 1301|  2.85k|				unrec_parameter = (struct sctp_paramhdr *)(cause + 1);
 1302|  2.85k|				sctp_process_unrecog_param(stcb, ntohs(unrec_parameter->param_type));
 1303|  2.85k|			}
 1304|  3.22k|			break;
 1305|      0|		case SCTP_CAUSE_COOKIE_IN_SHUTDOWN:
  ------------------
  |  |  375|      0|#define SCTP_CAUSE_COOKIE_IN_SHUTDOWN	0x000a
  ------------------
  |  Branch (1305:3): [True: 0, False: 65.6k]
  ------------------
 1306|       |			/*
 1307|       |			 * We ignore this since the timer will drive out a
 1308|       |			 * new cookie anyway and there timer will drive us
 1309|       |			 * to send a SHUTDOWN_COMPLETE. We can't send one
 1310|       |			 * here since we don't have their tag.
 1311|       |			 */
 1312|      0|			break;
 1313|     20|		case SCTP_CAUSE_DELETING_LAST_ADDR:
  ------------------
  |  |  381|     20|#define SCTP_CAUSE_DELETING_LAST_ADDR	0x00a0
  ------------------
  |  Branch (1313:3): [True: 20, False: 65.5k]
  ------------------
 1314|     20|		case SCTP_CAUSE_RESOURCE_SHORTAGE:
  ------------------
  |  |  382|     20|#define SCTP_CAUSE_RESOURCE_SHORTAGE	0x00a1
  ------------------
  |  Branch (1314:3): [True: 0, False: 65.6k]
  ------------------
 1315|     20|		case SCTP_CAUSE_DELETING_SRC_ADDR:
  ------------------
  |  |  383|     20|#define SCTP_CAUSE_DELETING_SRC_ADDR	0x00a2
  ------------------
  |  Branch (1315:3): [True: 0, False: 65.6k]
  ------------------
 1316|       |			/*
 1317|       |			 * We should NOT get these here, but in a
 1318|       |			 * ASCONF-ACK.
 1319|       |			 */
 1320|     20|			SCTPDBG(SCTP_DEBUG_INPUT2, "Peer sends ASCONF errors in a error cause with code %u.\n",
 1321|     20|				cause_code);
 1322|     20|			break;
 1323|     33|		case SCTP_CAUSE_OUT_OF_RESC:
  ------------------
  |  |  369|     33|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
  |  Branch (1323:3): [True: 33, False: 65.5k]
  ------------------
 1324|       |			/*
 1325|       |			 * And what, pray tell do we do with the fact that
 1326|       |			 * the peer is out of resources? Not really sure we
 1327|       |			 * could do anything but abort. I suspect this
 1328|       |			 * should have came WITH an abort instead of in a
 1329|       |			 * OP-ERROR.
 1330|       |			 */
 1331|     33|			break;
 1332|  38.8k|		default:
  ------------------
  |  Branch (1332:3): [True: 38.8k, False: 26.7k]
  ------------------
 1333|  38.8k|			SCTPDBG(SCTP_DEBUG_INPUT1, "sctp_handle_error: unknown code 0x%x\n",
 1334|  38.8k|				cause_code);
 1335|  38.8k|			break;
 1336|  65.6k|		}
 1337|  47.8k|		adjust = SCTP_SIZE32(cause_length);
  ------------------
  |  |  383|  47.8k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1338|  47.8k|		if (remaining_length >= adjust) {
  ------------------
  |  Branch (1338:7): [True: 47.3k, False: 442]
  ------------------
 1339|  47.3k|			remaining_length -= adjust;
 1340|  47.3k|		} else {
 1341|    442|			remaining_length = 0;
 1342|    442|		}
 1343|  47.8k|		cause = (struct sctp_error_cause *)((caddr_t)cause + adjust);
 1344|  47.8k|	}
 1345|   397k|	sctp_ulp_notify(SCTP_NOTIFY_REMOTE_ERROR, stcb, code, ch, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  731|   397k|#define SCTP_NOTIFY_REMOTE_ERROR                29
  ------------------
              	sctp_ulp_notify(SCTP_NOTIFY_REMOTE_ERROR, stcb, code, ch, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|   397k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1346|   397k|	return (0);
 1347|   420k|}
sctp_input.c:sctp_process_unrecog_chunk:
 1094|  2.28k|{
 1095|  2.28k|	switch (chunk_type) {
 1096|     43|	case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|     43|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (1096:2): [True: 43, False: 2.23k]
  ------------------
 1097|    415|	case SCTP_ASCONF:
  ------------------
  |  |  489|    415|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (1097:2): [True: 372, False: 1.91k]
  ------------------
 1098|    415|		sctp_asconf_cleanup(stcb);
 1099|    415|		break;
 1100|    249|	case SCTP_IFORWARD_CUM_TSN:
  ------------------
  |  |  490|    249|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (1100:2): [True: 249, False: 2.03k]
  ------------------
 1101|    653|	case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|    653|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (1101:2): [True: 404, False: 1.87k]
  ------------------
 1102|    653|		stcb->asoc.prsctp_supported = 0;
 1103|    653|		break;
 1104|  1.21k|	default:
  ------------------
  |  Branch (1104:2): [True: 1.21k, False: 1.06k]
  ------------------
 1105|  1.21k|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1106|  1.21k|			"Peer does not support chunk type %d (0x%x).\n",
 1107|  1.21k|			chunk_type, chunk_type);
 1108|  1.21k|		break;
 1109|  2.28k|	}
 1110|  2.28k|}
sctp_input.c:sctp_process_unrecog_param:
 1120|  2.85k|{
 1121|  2.85k|	switch (parameter_type) {
 1122|       |		/* pr-sctp draft */
 1123|    335|	case SCTP_PRSCTP_SUPPORTED:
  ------------------
  |  |  428|    335|#define SCTP_PRSCTP_SUPPORTED		0xc000
  ------------------
  |  Branch (1123:2): [True: 335, False: 2.52k]
  ------------------
 1124|    335|		stcb->asoc.prsctp_supported = 0;
 1125|    335|		break;
 1126|      0|	case SCTP_SUPPORTED_CHUNK_EXT:
  ------------------
  |  |  425|      0|#define SCTP_SUPPORTED_CHUNK_EXT	0x8008
  ------------------
  |  Branch (1126:2): [True: 0, False: 2.85k]
  ------------------
 1127|      0|		break;
 1128|       |		/* draft-ietf-tsvwg-addip-sctp */
 1129|  1.06k|	case SCTP_HAS_NAT_SUPPORT:
  ------------------
  |  |  437|  1.06k|#define SCTP_HAS_NAT_SUPPORT		0xc007
  ------------------
  |  Branch (1129:2): [True: 1.06k, False: 1.79k]
  ------------------
 1130|  1.06k|	        stcb->asoc.peer_supports_nat = 0;
 1131|  1.06k|	        break;
 1132|    249|	case SCTP_ADD_IP_ADDRESS:
  ------------------
  |  |  430|    249|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (1132:2): [True: 249, False: 2.60k]
  ------------------
 1133|    476|	case SCTP_DEL_IP_ADDRESS:
  ------------------
  |  |  431|    476|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (1133:2): [True: 227, False: 2.63k]
  ------------------
 1134|    755|	case SCTP_SET_PRIM_ADDR:
  ------------------
  |  |  433|    755|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (1134:2): [True: 279, False: 2.57k]
  ------------------
 1135|    755|		stcb->asoc.asconf_supported = 0;
 1136|    755|		break;
 1137|     79|	case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|     79|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (1137:2): [True: 79, False: 2.77k]
  ------------------
 1138|    436|	case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|    436|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (1138:2): [True: 357, False: 2.50k]
  ------------------
 1139|    436|		SCTPDBG(SCTP_DEBUG_INPUT2, "Huh, the peer does not support success? or error cause?\n");
 1140|    436|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1141|    436|			"Turning off ASCONF to this strange peer\n");
 1142|    436|		stcb->asoc.asconf_supported = 0;
 1143|    436|		break;
 1144|    264|	default:
  ------------------
  |  Branch (1144:2): [True: 264, False: 2.59k]
  ------------------
 1145|    264|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1146|    264|			"Peer does not support param type %d (0x%x)??\n",
 1147|    264|			parameter_type, parameter_type);
 1148|    264|		break;
 1149|  2.85k|	}
 1150|  2.85k|}
sctp_input.c:sctp_handle_cookie_echo:
 2524|     42|{
 2525|     42|	struct sctp_state_cookie *cookie;
 2526|     42|	struct sctp_tcb *l_stcb = *stcb;
 2527|     42|	struct sctp_inpcb *l_inp;
 2528|     42|	struct sockaddr *to;
 2529|     42|	struct sctp_pcb *ep;
 2530|     42|	struct mbuf *m_sig;
 2531|     42|	uint8_t calc_sig[SCTP_SIGNATURE_SIZE], tmp_sig[SCTP_SIGNATURE_SIZE];
 2532|     42|	uint8_t *sig;
 2533|     42|#if defined(__Userspace__) && defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
 2534|     42|	uint8_t cookie_ok = 1;
 2535|       |#else
 2536|       |	uint8_t cookie_ok = 0;
 2537|       |#endif
 2538|     42|	unsigned int sig_offset, cookie_offset;
 2539|     42|	unsigned int cookie_len;
 2540|     42|	struct timeval now;
 2541|     42|	struct timeval time_entered, time_expires;
 2542|     42|	int notification = 0;
 2543|     42|	struct sctp_nets *netl;
 2544|     42|	int had_a_existing_tcb = 0;
 2545|     42|	int send_int_conf = 0;
 2546|     42|#ifdef INET
 2547|     42|	struct sockaddr_in sin;
 2548|     42|#endif
 2549|     42|#ifdef INET6
 2550|     42|	struct sockaddr_in6 sin6;
 2551|     42|#endif
 2552|     42|#if defined(__Userspace__)
 2553|     42|	struct sockaddr_conn sconn;
 2554|     42|#endif
 2555|       |
 2556|     42|	SCTPDBG(SCTP_DEBUG_INPUT2,
 2557|     42|		"sctp_handle_cookie: handling COOKIE-ECHO\n");
 2558|       |
 2559|     42|	if (inp_p == NULL) {
  ------------------
  |  Branch (2559:6): [True: 0, False: 42]
  ------------------
 2560|      0|		return (NULL);
 2561|      0|	}
 2562|     42|	cookie = &cp->cookie;
 2563|     42|	cookie_offset = offset + sizeof(struct sctp_chunkhdr);
 2564|     42|	cookie_len = ntohs(cp->ch.chunk_length);
 2565|       |
 2566|     42|	if (cookie_len < sizeof(struct sctp_cookie_echo_chunk) +
  ------------------
  |  Branch (2566:6): [True: 14, False: 28]
  ------------------
 2567|     42|	    sizeof(struct sctp_init_chunk) +
 2568|     42|	    sizeof(struct sctp_init_ack_chunk) + SCTP_SIGNATURE_SIZE) {
  ------------------
  |  |  300|     42|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|     42|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2569|       |		/* cookie too small */
 2570|     14|		return (NULL);
 2571|     14|	}
 2572|     28|	if ((cookie->peerport != sh->src_port) ||
  ------------------
  |  Branch (2572:6): [True: 6, False: 22]
  ------------------
 2573|     22|	    (cookie->myport != sh->dest_port) ||
  ------------------
  |  Branch (2573:6): [True: 21, False: 1]
  ------------------
 2574|     28|	    (cookie->my_vtag != sh->v_tag)) {
  ------------------
  |  Branch (2574:6): [True: 1, False: 0]
  ------------------
 2575|       |		/*
 2576|       |		 * invalid ports or bad tag.  Note that we always leave the
 2577|       |		 * v_tag in the header in network order and when we stored
 2578|       |		 * it in the my_vtag slot we also left it in network order.
 2579|       |		 * This maintains the match even though it may be in the
 2580|       |		 * opposite byte order of the machine :->
 2581|       |		 */
 2582|     28|		return (NULL);
 2583|     28|	}
 2584|      0|#if defined(__Userspace__)
 2585|       |	/*
 2586|       |	 * Recover the AF_CONN addresses within the cookie.
 2587|       |	 * This needs to be done in the buffer provided for later processing
 2588|       |	 * of the cookie and in the mbuf chain for HMAC validation.
 2589|       |	 */
 2590|      0|	if ((cookie->addr_type == SCTP_CONN_ADDRESS) && (src->sa_family == AF_CONN)) {
  ------------------
  |  |  392|      0|#define SCTP_CONN_ADDRESS		0x0004
  ------------------
              	if ((cookie->addr_type == SCTP_CONN_ADDRESS) && (src->sa_family == AF_CONN)) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (2590:6): [True: 0, False: 0]
  |  Branch (2590:50): [True: 0, False: 0]
  ------------------
 2591|      0|		struct sockaddr_conn *sconnp = (struct sockaddr_conn *)src;
 2592|       |
 2593|      0|		memcpy(cookie->address, &sconnp->sconn_addr , sizeof(void *));
 2594|      0|		m_copyback(m, cookie_offset + offsetof(struct sctp_state_cookie, address),
 2595|      0|		           (int)sizeof(void *), (caddr_t)&sconnp->sconn_addr);
 2596|      0|	}
 2597|      0|	if ((cookie->laddr_type == SCTP_CONN_ADDRESS) && (dst->sa_family == AF_CONN)) {
  ------------------
  |  |  392|      0|#define SCTP_CONN_ADDRESS		0x0004
  ------------------
              	if ((cookie->laddr_type == SCTP_CONN_ADDRESS) && (dst->sa_family == AF_CONN)) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (2597:6): [True: 0, False: 0]
  |  Branch (2597:51): [True: 0, False: 0]
  ------------------
 2598|      0|		struct sockaddr_conn *sconnp = (struct sockaddr_conn *)dst;
 2599|       |
 2600|      0|		memcpy(cookie->laddress, &sconnp->sconn_addr , sizeof(void *));
 2601|      0|		m_copyback(m, cookie_offset + offsetof(struct sctp_state_cookie, laddress),
 2602|      0|		           (int)sizeof(void *), (caddr_t)&sconnp->sconn_addr);
 2603|      0|	}
 2604|      0|#endif
 2605|       |	/*
 2606|       |	 * split off the signature into its own mbuf (since it should not be
 2607|       |	 * calculated in the sctp_hmac_m() call).
 2608|       |	 */
 2609|      0|	sig_offset = offset + cookie_len - SCTP_SIGNATURE_SIZE;
  ------------------
  |  |  300|      0|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|      0|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2610|      0|	m_sig = m_split(m, sig_offset, M_NOWAIT);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2611|      0|	if (m_sig == NULL) {
  ------------------
  |  Branch (2611:6): [True: 0, False: 0]
  ------------------
 2612|       |		/* out of memory or ?? */
 2613|      0|		return (NULL);
 2614|      0|	}
 2615|       |#ifdef SCTP_MBUF_LOGGING
 2616|       |	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 2617|       |		sctp_log_mbc(m_sig, SCTP_MBUF_SPLIT);
 2618|       |	}
 2619|       |#endif
 2620|       |
 2621|       |	/*
 2622|       |	 * compute the signature/digest for the cookie
 2623|       |	 */
 2624|      0|	if (l_stcb != NULL) {
  ------------------
  |  Branch (2624:6): [True: 0, False: 0]
  ------------------
 2625|      0|		atomic_add_int(&l_stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2626|      0|		SCTP_TCB_UNLOCK(l_stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2627|      0|	}
 2628|      0|	l_inp = *inp_p;
 2629|      0|	SCTP_INP_RLOCK(l_inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2630|      0|	if (l_stcb != NULL) {
  ------------------
  |  Branch (2630:6): [True: 0, False: 0]
  ------------------
 2631|      0|		SCTP_TCB_LOCK(l_stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2632|      0|		atomic_subtract_int(&l_stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 2633|      0|	}
 2634|      0|	if (l_inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
              	if (l_inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|      0|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (2634:6): [True: 0, False: 0]
  ------------------
 2635|      0|		SCTP_INP_RUNLOCK(l_inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2636|      0|		sctp_m_freem(m_sig);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 2637|      0|		return (NULL);
 2638|      0|	}
 2639|      0|	ep = &(*inp_p)->sctp_ep;
 2640|       |	/* which cookie is it? */
 2641|      0|	if ((cookie->time_entered.tv_sec < ep->time_of_secret_change) &&
  ------------------
  |  Branch (2641:6): [True: 0, False: 0]
  ------------------
 2642|      0|	    (ep->current_secret_number != ep->last_secret_number)) {
  ------------------
  |  Branch (2642:6): [True: 0, False: 0]
  ------------------
 2643|       |		/* it's the old cookie */
 2644|      0|		(void)sctp_hmac_m(SCTP_HMAC,
  ------------------
  |  |  299|      0|#define SCTP_HMAC		SCTP_AUTH_HMAC_ID_SHA1
  |  |  ------------------
  |  |  |  |  691|      0|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  |  |  ------------------
  ------------------
 2645|      0|		    (uint8_t *)ep->secret_key[(int)ep->last_secret_number],
 2646|      0|		    SCTP_SECRET_SIZE, m, cookie_offset, calc_sig, 0);
  ------------------
  |  |  698|      0|#define SCTP_SECRET_SIZE	32	/* number of octets in a 256 bits */
  ------------------
 2647|      0|	} else {
 2648|       |		/* it's the current cookie */
 2649|      0|		(void)sctp_hmac_m(SCTP_HMAC,
  ------------------
  |  |  299|      0|#define SCTP_HMAC		SCTP_AUTH_HMAC_ID_SHA1
  |  |  ------------------
  |  |  |  |  691|      0|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  |  |  ------------------
  ------------------
 2650|      0|		    (uint8_t *)ep->secret_key[(int)ep->current_secret_number],
 2651|      0|		    SCTP_SECRET_SIZE, m, cookie_offset, calc_sig, 0);
  ------------------
  |  |  698|      0|#define SCTP_SECRET_SIZE	32	/* number of octets in a 256 bits */
  ------------------
 2652|      0|	}
 2653|       |	/* get the signature */
 2654|      0|	SCTP_INP_RUNLOCK(l_inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2655|      0|	sig = (uint8_t *) sctp_m_getptr(m_sig, 0, SCTP_SIGNATURE_SIZE, (uint8_t *) & tmp_sig);
  ------------------
  |  |  300|      0|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|      0|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2656|      0|	if (sig == NULL) {
  ------------------
  |  Branch (2656:6): [True: 0, False: 0]
  ------------------
 2657|       |		/* couldn't find signature */
 2658|      0|		sctp_m_freem(m_sig);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 2659|      0|		return (NULL);
 2660|      0|	}
 2661|       |	/* compare the received digest with the computed digest */
 2662|      0|	if (timingsafe_bcmp(calc_sig, sig, SCTP_SIGNATURE_SIZE) != 0) {
  ------------------
  |  |  300|      0|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|      0|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
  |  Branch (2662:6): [True: 0, False: 0]
  ------------------
 2663|       |		/* try the old cookie? */
 2664|      0|		if ((cookie->time_entered.tv_sec == ep->time_of_secret_change) &&
  ------------------
  |  Branch (2664:7): [True: 0, False: 0]
  ------------------
 2665|      0|		    (ep->current_secret_number != ep->last_secret_number)) {
  ------------------
  |  Branch (2665:7): [True: 0, False: 0]
  ------------------
 2666|       |			/* compute digest with old */
 2667|      0|			(void)sctp_hmac_m(SCTP_HMAC,
  ------------------
  |  |  299|      0|#define SCTP_HMAC		SCTP_AUTH_HMAC_ID_SHA1
  |  |  ------------------
  |  |  |  |  691|      0|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  |  |  ------------------
  ------------------
 2668|      0|			    (uint8_t *)ep->secret_key[(int)ep->last_secret_number],
 2669|      0|			    SCTP_SECRET_SIZE, m, cookie_offset, calc_sig, 0);
  ------------------
  |  |  698|      0|#define SCTP_SECRET_SIZE	32	/* number of octets in a 256 bits */
  ------------------
 2670|       |			/* compare */
 2671|      0|			if (timingsafe_bcmp(calc_sig, sig, SCTP_SIGNATURE_SIZE) == 0)
  ------------------
  |  |  300|      0|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|      0|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
  |  Branch (2671:8): [True: 0, False: 0]
  ------------------
 2672|      0|				cookie_ok = 1;
 2673|      0|		}
 2674|      0|	} else {
 2675|      0|		cookie_ok = 1;
 2676|      0|	}
 2677|       |
 2678|       |	/*
 2679|       |	 * Now before we continue we must reconstruct our mbuf so that
 2680|       |	 * normal processing of any other chunks will work.
 2681|       |	 */
 2682|      0|	{
 2683|      0|		struct mbuf *m_at;
 2684|       |
 2685|      0|		m_at = m;
 2686|      0|		while (SCTP_BUF_NEXT(m_at) != NULL) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2686:10): [True: 0, False: 0]
  ------------------
 2687|      0|			m_at = SCTP_BUF_NEXT(m_at);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 2688|      0|		}
 2689|      0|		SCTP_BUF_NEXT(m_at) = m_sig;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 2690|      0|	}
 2691|       |
 2692|      0|	if (cookie_ok == 0) {
  ------------------
  |  Branch (2692:6): [True: 0, False: 0]
  ------------------
 2693|      0|		SCTPDBG(SCTP_DEBUG_INPUT2, "handle_cookie_echo: cookie signature validation failed!\n");
 2694|      0|		SCTPDBG(SCTP_DEBUG_INPUT2,
 2695|      0|			"offset = %u, cookie_offset = %u, sig_offset = %u\n",
 2696|      0|			(uint32_t) offset, cookie_offset, sig_offset);
 2697|      0|		return (NULL);
 2698|      0|	}
 2699|       |
 2700|      0|	if (sctp_ticks_to_msecs(cookie->cookie_life) > SCTP_MAX_COOKIE_LIFE) {
  ------------------
  |  |  635|      0|#define SCTP_MAX_COOKIE_LIFE  3600000 /* 1 hour in ms */
  ------------------
  |  Branch (2700:6): [True: 0, False: 0]
  ------------------
 2701|      0|		SCTPDBG(SCTP_DEBUG_INPUT2, "handle_cookie_echo: Invalid cookie lifetime\n");
 2702|      0|		return (NULL);
 2703|      0|	}
 2704|      0|	time_entered.tv_sec = cookie->time_entered.tv_sec;
 2705|      0|	time_entered.tv_usec = cookie->time_entered.tv_usec;
 2706|      0|	if ((time_entered.tv_sec < 0) ||
  ------------------
  |  Branch (2706:6): [True: 0, False: 0]
  ------------------
 2707|      0|	    (time_entered.tv_usec < 0) ||
  ------------------
  |  Branch (2707:6): [True: 0, False: 0]
  ------------------
 2708|      0|	    (time_entered.tv_usec >= 1000000)) {
  ------------------
  |  Branch (2708:6): [True: 0, False: 0]
  ------------------
 2709|       |		/* Invalid time stamp. Cookie must have been modified. */
 2710|      0|		SCTPDBG(SCTP_DEBUG_INPUT2, "handle_cookie_echo: Invalid time stamp\n");
 2711|      0|		return (NULL);
 2712|      0|	}
 2713|      0|	(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 2714|      0|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 2715|      0|	if (timercmp(&now, &time_entered, <)) {
  ------------------
  |  Branch (2715:6): [True: 0, False: 0]
  |  Branch (2715:6): [True: 0, False: 0]
  ------------------
 2716|       |#else
 2717|       |	if (timevalcmp(&now, &time_entered, <)) {
 2718|       |#endif
 2719|      0|		SCTPDBG(SCTP_DEBUG_INPUT2, "handle_cookie_echo: cookie generated in the future!\n");
 2720|      0|		return (NULL);
 2721|      0|	}
 2722|       |	/*
 2723|       |	 * Check the cookie timestamps to be sure it's not stale.
 2724|       |	 * cookie_life is in ticks, so we convert to seconds.
 2725|       |	 */
 2726|      0|	time_expires.tv_sec = time_entered.tv_sec + sctp_ticks_to_secs(cookie->cookie_life);
 2727|      0|	time_expires.tv_usec = time_entered.tv_usec;
 2728|      0|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 2729|      0|	if (timercmp(&now, &time_expires, >))
  ------------------
  |  Branch (2729:6): [True: 0, False: 0]
  |  Branch (2729:6): [True: 0, False: 0]
  ------------------
 2730|       |#else
 2731|       |	if (timevalcmp(&now, &time_expires, >))
 2732|       |#endif
 2733|      0|	{
 2734|       |		/* cookie is stale! */
 2735|      0|		struct mbuf *op_err;
 2736|      0|		struct sctp_error_stale_cookie *cause;
 2737|      0|		struct timeval diff;
 2738|      0|		uint32_t staleness;
 2739|       |
 2740|      0|		op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_error_stale_cookie),
 2741|      0|		                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 2742|      0|		if (op_err == NULL) {
  ------------------
  |  Branch (2742:7): [True: 0, False: 0]
  ------------------
 2743|       |			/* FOOBAR */
 2744|      0|			return (NULL);
 2745|      0|		}
 2746|       |		/* Set the len */
 2747|      0|		SCTP_BUF_LEN(op_err) = sizeof(struct sctp_error_stale_cookie);
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2748|      0|		cause = mtod(op_err, struct sctp_error_stale_cookie *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2749|      0|		cause->cause.code = htons(SCTP_CAUSE_STALE_COOKIE);
 2750|      0|		cause->cause.length = htons(sizeof(struct sctp_error_stale_cookie));
 2751|      0|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 2752|      0|		timersub(&now, &time_expires, &diff);
  ------------------
  |  Branch (2752:3): [True: 0, False: 0]
  |  Branch (2752:3): [Folded, False: 0]
  ------------------
 2753|       |#else
 2754|       |		diff = now;
 2755|       |		timevalsub(&diff, &time_expires);
 2756|       |#endif
 2757|      0|		if ((uint32_t)diff.tv_sec > UINT32_MAX / 1000000) {
  ------------------
  |  Branch (2757:7): [True: 0, False: 0]
  ------------------
 2758|      0|			staleness = UINT32_MAX;
 2759|      0|		} else {
 2760|      0|			staleness = (uint32_t)diff.tv_sec * 1000000;
 2761|      0|		}
 2762|      0|		if (UINT32_MAX - staleness >= (uint32_t)diff.tv_usec) {
  ------------------
  |  Branch (2762:7): [True: 0, False: 0]
  ------------------
 2763|      0|			staleness += (uint32_t)diff.tv_usec;
 2764|      0|		} else {
 2765|      0|			staleness = UINT32_MAX;
 2766|      0|		}
 2767|      0|		cause->stale_time = htonl(staleness);
 2768|      0|		sctp_send_operr_to(src, dst, sh, cookie->peers_vtag, op_err,
 2769|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2770|       |		                   mflowtype, mflowid, l_inp->fibnum,
 2771|       |#endif
 2772|      0|		                   vrf_id, port);
 2773|      0|		return (NULL);
 2774|      0|	}
 2775|       |	/*
 2776|       |	 * Now we must see with the lookup address if we have an existing
 2777|       |	 * asoc. This will only happen if we were in the COOKIE-WAIT state
 2778|       |	 * and a INIT collided with us and somewhere the peer sent the
 2779|       |	 * cookie on another address besides the single address our assoc
 2780|       |	 * had for him. In this case we will have one of the tie-tags set at
 2781|       |	 * least AND the address field in the cookie can be used to look it
 2782|       |	 * up.
 2783|       |	 */
 2784|      0|	to = NULL;
 2785|      0|	switch (cookie->addr_type) {
 2786|      0|#ifdef INET6
 2787|      0|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|      0|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (2787:2): [True: 0, False: 0]
  ------------------
 2788|      0|		memset(&sin6, 0, sizeof(sin6));
 2789|      0|		sin6.sin6_family = AF_INET6;
 2790|       |#ifdef HAVE_SIN6_LEN
 2791|       |		sin6.sin6_len = sizeof(sin6);
 2792|       |#endif
 2793|      0|		sin6.sin6_port = sh->src_port;
 2794|      0|		sin6.sin6_scope_id = cookie->scope_id;
 2795|      0|		memcpy(&sin6.sin6_addr.s6_addr, cookie->address,
 2796|      0|		    sizeof(sin6.sin6_addr.s6_addr));
 2797|      0|		to = (struct sockaddr *)&sin6;
 2798|      0|		break;
 2799|      0|#endif
 2800|      0|#ifdef INET
 2801|      0|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|      0|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (2801:2): [True: 0, False: 0]
  ------------------
 2802|      0|		memset(&sin, 0, sizeof(sin));
 2803|      0|		sin.sin_family = AF_INET;
 2804|       |#ifdef HAVE_SIN_LEN
 2805|       |		sin.sin_len = sizeof(sin);
 2806|       |#endif
 2807|      0|		sin.sin_port = sh->src_port;
 2808|      0|		sin.sin_addr.s_addr = cookie->address[0];
 2809|      0|		to = (struct sockaddr *)&sin;
 2810|      0|		break;
 2811|      0|#endif
 2812|      0|#if defined(__Userspace__)
 2813|      0|	case SCTP_CONN_ADDRESS:
  ------------------
  |  |  392|      0|#define SCTP_CONN_ADDRESS		0x0004
  ------------------
  |  Branch (2813:2): [True: 0, False: 0]
  ------------------
 2814|      0|		memset(&sconn, 0, sizeof(struct sockaddr_conn));
 2815|      0|		sconn.sconn_family = AF_CONN;
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
 2816|       |#ifdef HAVE_SCONN_LEN
 2817|       |		sconn.sconn_len = sizeof(struct sockaddr_conn);
 2818|       |#endif
 2819|      0|		sconn.sconn_port = sh->src_port;
 2820|      0|		memcpy(&sconn.sconn_addr, cookie->address, sizeof(void *));
 2821|      0|		to = (struct sockaddr *)&sconn;
 2822|      0|		break;
 2823|      0|#endif
 2824|      0|	default:
  ------------------
  |  Branch (2824:2): [True: 0, False: 0]
  ------------------
 2825|       |		/* This should not happen */
 2826|      0|		return (NULL);
 2827|      0|	}
 2828|      0|	if (*stcb == NULL) {
  ------------------
  |  Branch (2828:6): [True: 0, False: 0]
  ------------------
 2829|       |		/* Yep, lets check */
 2830|      0|		*stcb = sctp_findassociation_ep_addr(inp_p, to, netp, dst, NULL);
 2831|      0|		if (*stcb == NULL) {
  ------------------
  |  Branch (2831:7): [True: 0, False: 0]
  ------------------
 2832|       |			/*
 2833|       |			 * We should have only got back the same inp. If we
 2834|       |			 * got back a different ep we have a problem. The
 2835|       |			 * original findep got back l_inp and now
 2836|       |			 */
 2837|      0|			if (l_inp != *inp_p) {
  ------------------
  |  Branch (2837:8): [True: 0, False: 0]
  ------------------
 2838|      0|				SCTP_PRINTF("Bad problem find_ep got a diff inp then special_locate?\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 2839|      0|			}
 2840|      0|		} else {
 2841|      0|			if (*locked_tcb == NULL) {
  ------------------
  |  Branch (2841:8): [True: 0, False: 0]
  ------------------
 2842|       |				/* In this case we found the assoc only
 2843|       |				 * after we locked the create lock. This means
 2844|       |				 * we are in a colliding case and we must make
 2845|       |				 * sure that we unlock the tcb if its one of the
 2846|       |				 * cases where we throw away the incoming packets.
 2847|       |				 */
 2848|      0|				*locked_tcb = *stcb;
 2849|       |
 2850|       |				/* We must also increment the inp ref count
 2851|       |				 * since the ref_count flags was set when we
 2852|       |				 * did not find the TCB, now we found it which
 2853|       |				 * reduces the refcount.. we must raise it back
 2854|       |				 * out to balance it all :-)
 2855|       |				 */
 2856|      0|				SCTP_INP_INCR_REF((*stcb)->sctp_ep);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 2857|      0|				if ((*stcb)->sctp_ep != l_inp) {
  ------------------
  |  Branch (2857:9): [True: 0, False: 0]
  ------------------
 2858|      0|					SCTP_PRINTF("Huh? ep:%p diff then l_inp:%p?\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 2859|      0|						    (void *)(*stcb)->sctp_ep, (void *)l_inp);
 2860|      0|				}
 2861|      0|			}
 2862|      0|		}
 2863|      0|	}
 2864|       |
 2865|      0|	cookie_len -= SCTP_SIGNATURE_SIZE;
  ------------------
  |  |  300|      0|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|      0|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2866|      0|	if (*stcb == NULL) {
  ------------------
  |  Branch (2866:6): [True: 0, False: 0]
  ------------------
 2867|       |		/* this is the "normal" case... get a new TCB */
 2868|      0|		*stcb = sctp_process_cookie_new(m, iphlen, offset, src, dst, sh,
 2869|      0|		                                cookie, cookie_len, *inp_p,
 2870|      0|		                                netp, to, &notification,
 2871|      0|		                                auth_skipped, auth_offset, auth_len,
 2872|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2873|       |		                                mflowtype, mflowid,
 2874|       |#endif
 2875|      0|		                                vrf_id, port);
 2876|      0|	} else {
 2877|       |		/* this is abnormal... cookie-echo on existing TCB */
 2878|      0|		had_a_existing_tcb = 1;
 2879|      0|		*stcb = sctp_process_cookie_existing(m, iphlen, offset,
 2880|      0|		                                     src, dst, sh,
 2881|      0|		                                     cookie, cookie_len, *inp_p, *stcb, netp, to,
 2882|      0|		                                     &notification, auth_skipped, auth_offset, auth_len,
 2883|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2884|       |		                                     mflowtype, mflowid,
 2885|       |#endif
 2886|      0|		                                     vrf_id, port);
 2887|      0|		if (*stcb == NULL) {
  ------------------
  |  Branch (2887:7): [True: 0, False: 0]
  ------------------
 2888|      0|			*locked_tcb = NULL;
 2889|      0|		}
 2890|      0|	}
 2891|       |
 2892|      0|	if (*stcb == NULL) {
  ------------------
  |  Branch (2892:6): [True: 0, False: 0]
  ------------------
 2893|       |		/* still no TCB... must be bad cookie-echo */
 2894|      0|		return (NULL);
 2895|      0|	}
 2896|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2897|       |	if (*netp != NULL) {
 2898|       |		(*netp)->flowtype = mflowtype;
 2899|       |		(*netp)->flowid = mflowid;
 2900|       |	}
 2901|       |#endif
 2902|       |	/*
 2903|       |	 * Ok, we built an association so confirm the address we sent the
 2904|       |	 * INIT-ACK to.
 2905|       |	 */
 2906|      0|	netl = sctp_findnet(*stcb, to);
 2907|       |	/*
 2908|       |	 * This code should in theory NOT run but
 2909|       |	 */
 2910|      0|	if (netl == NULL) {
  ------------------
  |  Branch (2910:6): [True: 0, False: 0]
  ------------------
 2911|       |		/* TSNH! Huh, why do I need to add this address here? */
 2912|      0|		if (sctp_add_remote_addr(*stcb, to, NULL, port,
  ------------------
  |  Branch (2912:7): [True: 0, False: 0]
  ------------------
 2913|      0|		                         SCTP_DONOT_SETSCOPE, SCTP_IN_COOKIE_PROC)) {
  ------------------
  |  |  822|      0|#define SCTP_DONOT_SETSCOPE 0
  ------------------
              		                         SCTP_DONOT_SETSCOPE, SCTP_IN_COOKIE_PROC)) {
  ------------------
  |  |  815|      0|#define SCTP_IN_COOKIE_PROC 100
  ------------------
 2914|      0|			return (NULL);
 2915|      0|		}
 2916|      0|		netl = sctp_findnet(*stcb, to);
 2917|      0|	}
 2918|      0|	if (netl) {
  ------------------
  |  Branch (2918:6): [True: 0, False: 0]
  ------------------
 2919|      0|		if (netl->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (2919:7): [True: 0, False: 0]
  ------------------
 2920|      0|			netl->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 2921|      0|			(void)sctp_set_primary_addr((*stcb), (struct sockaddr *)NULL,
 2922|      0|			    netl);
 2923|      0|			send_int_conf = 1;
 2924|      0|		}
 2925|      0|	}
 2926|      0|	sctp_start_net_timers(*stcb);
 2927|      0|	if ((*inp_p)->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) {
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (2927:6): [True: 0, False: 0]
  ------------------
 2928|      0|		if (!had_a_existing_tcb ||
  ------------------
  |  Branch (2928:7): [True: 0, False: 0]
  ------------------
 2929|      0|		    (((*inp_p)->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) == 0)) {
  ------------------
  |  |  539|      0|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (2929:7): [True: 0, False: 0]
  ------------------
 2930|       |			/*
 2931|       |			 * If we have a NEW cookie or the connect never
 2932|       |			 * reached the connected state during collision we
 2933|       |			 * must do the TCP accept thing.
 2934|       |			 */
 2935|      0|			struct socket *so, *oso;
 2936|      0|			struct sctp_inpcb *inp;
 2937|       |
 2938|      0|			if (notification == SCTP_NOTIFY_ASSOC_RESTART) {
  ------------------
  |  |  712|      0|#define SCTP_NOTIFY_ASSOC_RESTART               10
  ------------------
  |  Branch (2938:8): [True: 0, False: 0]
  ------------------
 2939|       |				/*
 2940|       |				 * For a restart we will keep the same
 2941|       |				 * socket, no need to do anything. I THINK!!
 2942|       |				 */
 2943|      0|				sctp_ulp_notify(notification, *stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2944|      0|				if (send_int_conf) {
  ------------------
  |  Branch (2944:9): [True: 0, False: 0]
  ------------------
 2945|      0|					sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_CONFIRMED,
  ------------------
  |  |  718|      0|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
 2946|      0|					                (*stcb), 0, (void *)netl, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2947|      0|				}
 2948|      0|				return (m);
 2949|      0|			}
 2950|      0|			oso = (*inp_p)->sctp_socket;
 2951|      0|			atomic_add_int(&(*stcb)->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2952|      0|			SCTP_TCB_UNLOCK((*stcb));
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2953|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2954|       |			CURVNET_SET(oso->so_vnet);
 2955|       |#endif
 2956|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2957|       |			SCTP_SOCKET_LOCK(oso, 1);
 2958|       |#endif
 2959|      0|			so = sonewconn(oso, 0
 2960|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2961|       |			    ,NULL
 2962|       |#endif
 2963|      0|			    );
 2964|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2965|       |			SCTP_SOCKET_UNLOCK(oso, 1);
 2966|       |#endif
 2967|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2968|       |			CURVNET_RESTORE();
 2969|       |#endif
 2970|      0|			SCTP_TCB_LOCK((*stcb));
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2971|      0|			atomic_subtract_int(&(*stcb)->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 2972|       |
 2973|      0|			if (so == NULL) {
  ------------------
  |  Branch (2973:8): [True: 0, False: 0]
  ------------------
 2974|      0|				struct mbuf *op_err;
 2975|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2976|       |				struct socket *pcb_so;
 2977|       |#endif
 2978|       |				/* Too many sockets */
 2979|      0|				SCTPDBG(SCTP_DEBUG_INPUT1, "process_cookie_new: no room for another socket!\n");
 2980|      0|				op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
  ------------------
  |  |  369|      0|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
 2981|      0|				sctp_abort_association(*inp_p, NULL, m, iphlen,
 2982|      0|						       src, dst, sh, op_err,
 2983|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2984|       |				                       mflowtype, mflowid,
 2985|       |#endif
 2986|      0|				                       vrf_id, port);
 2987|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2988|       |				pcb_so = SCTP_INP_SO(*inp_p);
 2989|       |				atomic_add_int(&(*stcb)->asoc.refcnt, 1);
 2990|       |				SCTP_TCB_UNLOCK((*stcb));
 2991|       |				SCTP_SOCKET_LOCK(pcb_so, 1);
 2992|       |				SCTP_TCB_LOCK((*stcb));
 2993|       |				atomic_subtract_int(&(*stcb)->asoc.refcnt, 1);
 2994|       |#endif
 2995|      0|				(void)sctp_free_assoc(*inp_p, *stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
 2996|      0|				                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_23);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              				                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_23);
  ------------------
  |  |  791|      0|#define SCTP_LOC_23 0x00000017
  ------------------
 2997|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2998|       |				SCTP_SOCKET_UNLOCK(pcb_so, 1);
 2999|       |#endif
 3000|      0|				return (NULL);
 3001|      0|			}
 3002|      0|			inp = (struct sctp_inpcb *)so->so_pcb;
 3003|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 3004|       |			/*
 3005|       |			 * We add the unbound flag here so that
 3006|       |			 * if we get an soabort() before we get the
 3007|       |			 * move_pcb done, we will properly cleanup.
 3008|       |			 */
 3009|      0|			inp->sctp_flags = (SCTP_PCB_FLAGS_TCPTYPE |
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
 3010|      0|			    SCTP_PCB_FLAGS_CONNECTED |
  ------------------
  |  |  539|      0|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
 3011|      0|			    SCTP_PCB_FLAGS_IN_TCPPOOL |
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
 3012|      0|			    SCTP_PCB_FLAGS_UNBOUND |
  ------------------
  |  |  532|      0|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 3013|      0|			    (SCTP_PCB_COPY_FLAGS & (*inp_p)->sctp_flags) |
  ------------------
  |  |  553|      0|#define SCTP_PCB_COPY_FLAGS		(SCTP_PCB_FLAGS_BOUNDALL|\
  |  |  ------------------
  |  |  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  |  |  ------------------
  |  |  554|      0|					 SCTP_PCB_FLAGS_WAKEINPUT|\
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  |  555|      0|					 SCTP_PCB_FLAGS_BOUND_V6|\
  |  |  ------------------
  |  |  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  |  |  ------------------
  |  |  556|      0|					 SCTP_PCB_FLAGS_BOUND_CONN)
  |  |  ------------------
  |  |  |  |  550|      0|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  |  |  ------------------
  ------------------
 3014|      0|			    SCTP_PCB_FLAGS_DONT_WAKE);
  ------------------
  |  |  541|      0|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  ------------------
 3015|      0|			inp->sctp_features = (*inp_p)->sctp_features;
 3016|      0|			inp->sctp_mobility_features = (*inp_p)->sctp_mobility_features;
 3017|      0|			inp->sctp_socket = so;
 3018|      0|			inp->sctp_frag_point = (*inp_p)->sctp_frag_point;
 3019|      0|			inp->max_cwnd = (*inp_p)->max_cwnd;
 3020|      0|			inp->sctp_cmt_on_off = (*inp_p)->sctp_cmt_on_off;
 3021|      0|			inp->ecn_supported = (*inp_p)->ecn_supported;
 3022|      0|			inp->prsctp_supported = (*inp_p)->prsctp_supported;
 3023|      0|			inp->auth_supported = (*inp_p)->auth_supported;
 3024|      0|			inp->asconf_supported = (*inp_p)->asconf_supported;
 3025|      0|			inp->reconfig_supported = (*inp_p)->reconfig_supported;
 3026|      0|			inp->nrsack_supported = (*inp_p)->nrsack_supported;
 3027|      0|			inp->pktdrop_supported = (*inp_p)->pktdrop_supported;
 3028|      0|			inp->partial_delivery_point = (*inp_p)->partial_delivery_point;
 3029|      0|			inp->sctp_context = (*inp_p)->sctp_context;
 3030|      0|			inp->local_strreset_support = (*inp_p)->local_strreset_support;
 3031|      0|			inp->fibnum = (*inp_p)->fibnum;
 3032|      0|#if defined(__Userspace__)
 3033|      0|			inp->ulp_info = (*inp_p)->ulp_info;
 3034|      0|			inp->recv_callback = (*inp_p)->recv_callback;
 3035|      0|			inp->send_callback = (*inp_p)->send_callback;
 3036|      0|			inp->send_sb_threshold = (*inp_p)->send_sb_threshold;
 3037|      0|#endif
 3038|       |			/*
 3039|       |			 * copy in the authentication parameters from the
 3040|       |			 * original endpoint
 3041|       |			 */
 3042|      0|			if (inp->sctp_ep.local_hmacs)
  ------------------
  |  Branch (3042:8): [True: 0, False: 0]
  ------------------
 3043|      0|				sctp_free_hmaclist(inp->sctp_ep.local_hmacs);
 3044|      0|			inp->sctp_ep.local_hmacs =
 3045|      0|			    sctp_copy_hmaclist((*inp_p)->sctp_ep.local_hmacs);
 3046|      0|			if (inp->sctp_ep.local_auth_chunks)
  ------------------
  |  Branch (3046:8): [True: 0, False: 0]
  ------------------
 3047|      0|				sctp_free_chunklist(inp->sctp_ep.local_auth_chunks);
 3048|      0|			inp->sctp_ep.local_auth_chunks =
 3049|      0|			    sctp_copy_chunklist((*inp_p)->sctp_ep.local_auth_chunks);
 3050|       |
 3051|       |			/*
 3052|       |			 * Now we must move it from one hash table to
 3053|       |			 * another and get the tcb in the right place.
 3054|       |			 */
 3055|       |
 3056|       |			/* This is where the one-2-one socket is put into
 3057|       |			 * the accept state waiting for the accept!
 3058|       |			 */
 3059|      0|			if (*stcb) {
  ------------------
  |  Branch (3059:8): [True: 0, False: 0]
  ------------------
 3060|      0|				SCTP_ADD_SUBSTATE(*stcb, SCTP_STATE_IN_ACCEPT_QUEUE);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
 3061|      0|			}
 3062|      0|			sctp_move_pcb_and_assoc(*inp_p, inp, *stcb);
 3063|       |
 3064|      0|			atomic_add_int(&(*stcb)->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 3065|      0|			SCTP_TCB_UNLOCK((*stcb));
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3066|       |
 3067|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3068|       |			sctp_pull_off_control_to_new_inp((*inp_p), inp, *stcb,
 3069|       |			    0);
 3070|       |#else
 3071|      0|			sctp_pull_off_control_to_new_inp((*inp_p), inp, *stcb, M_NOWAIT);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 3072|      0|#endif
 3073|      0|			SCTP_TCB_LOCK((*stcb));
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3074|      0|			atomic_subtract_int(&(*stcb)->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 3075|       |
 3076|       |			/* now we must check to see if we were aborted while
 3077|       |			 * the move was going on and the lock/unlock happened.
 3078|       |			 */
 3079|      0|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (3079:8): [True: 0, False: 0]
  ------------------
 3080|       |				/* yep it was, we leave the
 3081|       |				 * assoc attached to the socket since
 3082|       |				 * the sctp_inpcb_free() call will send
 3083|       |				 * an abort for us.
 3084|       |				 */
 3085|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3086|      0|				return (NULL);
 3087|      0|			}
 3088|      0|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3089|       |			/* Switch over to the new guy */
 3090|      0|			*inp_p = inp;
 3091|      0|			sctp_ulp_notify(notification, *stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3092|      0|			if (send_int_conf) {
  ------------------
  |  Branch (3092:8): [True: 0, False: 0]
  ------------------
 3093|      0|				sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_CONFIRMED,
  ------------------
  |  |  718|      0|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
 3094|      0|				                (*stcb), 0, (void *)netl, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3095|      0|			}
 3096|       |
 3097|       |			/* Pull it from the incomplete queue and wake the guy */
 3098|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3099|       |			atomic_add_int(&(*stcb)->asoc.refcnt, 1);
 3100|       |			SCTP_TCB_UNLOCK((*stcb));
 3101|       |			SCTP_SOCKET_LOCK(so, 1);
 3102|       |#endif
 3103|      0|			soisconnected(so);
 3104|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3105|       |			SCTP_TCB_LOCK((*stcb));
 3106|       |			atomic_subtract_int(&(*stcb)->asoc.refcnt, 1);
 3107|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3108|       |#endif
 3109|      0|			return (m);
 3110|      0|		}
 3111|      0|	}
 3112|      0|	if (notification) {
  ------------------
  |  Branch (3112:6): [True: 0, False: 0]
  ------------------
 3113|      0|		sctp_ulp_notify(notification, *stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3114|      0|	}
 3115|      0|	if (send_int_conf) {
  ------------------
  |  Branch (3115:6): [True: 0, False: 0]
  ------------------
 3116|      0|		sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_CONFIRMED,
  ------------------
  |  |  718|      0|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
 3117|      0|		                (*stcb), 0, (void *)netl, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3118|      0|	}
 3119|      0|	return (m);
 3120|      0|}
sctp_input.c:sctp_start_net_timers:
  883|  5.17k|{
  884|  5.17k|	uint32_t cnt_hb_sent;
  885|  5.17k|	struct sctp_nets *net;
  886|       |
  887|  5.17k|	cnt_hb_sent = 0;
  888|  7.39k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (888:2): [True: 7.39k, False: 5.17k]
  ------------------
  889|       |		/* For each network start:
  890|       |		 * 1) A pmtu timer.
  891|       |		 * 2) A HB timer
  892|       |		 * 3) If the dest in unconfirmed send
  893|       |		 *    a hb as well if under max_hb_burst have
  894|       |		 *    been sent.
  895|       |		 */
  896|  7.39k|		sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  539|  7.39k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  897|  7.39k|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|  7.39k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  898|  7.39k|		if ((net->dest_state & SCTP_ADDR_UNCONFIRMED) &&
  ------------------
  |  |  487|  7.39k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (898:7): [True: 1.54k, False: 5.85k]
  ------------------
  899|  1.54k|		    (cnt_hb_sent < SCTP_BASE_SYSCTL(sctp_hb_maxburst))) {
  ------------------
  |  |  590|  1.54k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (899:7): [True: 831, False: 713]
  ------------------
  900|    831|			sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    831|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  901|    831|			cnt_hb_sent++;
  902|    831|		}
  903|  7.39k|	}
  904|  5.17k|	if (cnt_hb_sent) {
  ------------------
  |  Branch (904:6): [True: 372, False: 4.79k]
  ------------------
  905|    372|		sctp_chunk_output(stcb->sctp_ep, stcb,
  906|    372|				  SCTP_OUTPUT_FROM_COOKIE_ACK,
  ------------------
  |  |  375|    372|#define SCTP_OUTPUT_FROM_COOKIE_ACK     14
  ------------------
  907|    372|				  SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    372|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  908|    372|	}
  909|  5.17k|}
sctp_input.c:sctp_handle_ecn_echo:
 3253|  6.40k|{
 3254|  6.40k|	struct sctp_nets *net;
 3255|  6.40k|	struct sctp_tmit_chunk *lchk;
 3256|  6.40k|	struct sctp_ecne_chunk bkup;
 3257|  6.40k|	uint8_t override_bit;
 3258|  6.40k|	uint32_t tsn, window_data_tsn;
 3259|  6.40k|	int len;
 3260|  6.40k|	unsigned int pkt_cnt;
 3261|       |
 3262|  6.40k|	len = ntohs(cp->ch.chunk_length);
 3263|  6.40k|	if (len == sizeof(struct old_sctp_ecne_chunk)) {
  ------------------
  |  Branch (3263:6): [True: 5.18k, False: 1.22k]
  ------------------
 3264|       |		/* Its the old format */
 3265|  5.18k|		memcpy(&bkup, cp, sizeof(struct old_sctp_ecne_chunk));
 3266|  5.18k|		bkup.num_pkts_since_cwr = htonl(1);
 3267|  5.18k|		cp = &bkup;
 3268|  5.18k|	}
 3269|  6.40k|	SCTP_STAT_INCR(sctps_recvecne);
  ------------------
  |  | 1112|  6.40k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  6.40k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  6.40k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3270|  6.40k|	tsn = ntohl(cp->tsn);
 3271|  6.40k|	pkt_cnt = ntohl(cp->num_pkts_since_cwr);
 3272|  6.40k|	lchk = TAILQ_LAST(&stcb->asoc.send_queue, sctpchunk_listhead);
 3273|  6.40k|	if (lchk == NULL) {
  ------------------
  |  Branch (3273:6): [True: 5.81k, False: 594]
  ------------------
 3274|  5.81k|		window_data_tsn = stcb->asoc.sending_seq - 1;
 3275|  5.81k|	} else {
 3276|    594|		window_data_tsn = lchk->rec.data.tsn;
 3277|    594|	}
 3278|       |
 3279|       |	/* Find where it was sent to if possible. */
 3280|  6.40k|	net = NULL;
 3281|  6.40k|	TAILQ_FOREACH(lchk, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3281:2): [True: 4.51k, False: 4.26k]
  ------------------
 3282|  4.51k|		if (lchk->rec.data.tsn == tsn) {
  ------------------
  |  Branch (3282:7): [True: 0, False: 4.51k]
  ------------------
 3283|      0|			net = lchk->whoTo;
 3284|      0|			net->ecn_prev_cwnd = lchk->rec.data.cwnd_at_send;
 3285|      0|			break;
 3286|      0|		}
 3287|  4.51k|		if (SCTP_TSN_GT(lchk->rec.data.tsn, tsn)) {
  ------------------
  |  |  889|  4.51k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.51k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 2.32k, False: 2.19k]
  |  |  |  |  |  Branch (883:43): [True: 731, False: 1.59k]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.51k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 2.19k, False: 1.59k]
  |  |  |  |  |  Branch (884:43): [True: 1.41k, False: 780]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3288|  2.14k|			break;
 3289|  2.14k|		}
 3290|  4.51k|	}
 3291|  6.40k|	if (net == NULL) {
  ------------------
  |  Branch (3291:6): [True: 6.40k, False: 0]
  ------------------
 3292|       |		/*
 3293|       |		 * What to do. A previous send of a
 3294|       |		 * CWR was possibly lost. See how old it is, we
 3295|       |		 * may have it marked on the actual net.
 3296|       |		 */
 3297|  9.48k|		TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (3297:3): [True: 9.48k, False: 6.40k]
  ------------------
 3298|  9.48k|			if (tsn == net->last_cwr_tsn) {
  ------------------
  |  Branch (3298:8): [True: 0, False: 9.48k]
  ------------------
 3299|       |				/* Found him, send it off */
 3300|      0|				break;
 3301|      0|			}
 3302|  9.48k|		}
 3303|  6.40k|		if (net == NULL) {
  ------------------
  |  Branch (3303:7): [True: 6.40k, False: 0]
  ------------------
 3304|       |			/*
 3305|       |			 * If we reach here, we need to send a special
 3306|       |			 * CWR that says hey, we did this a long time
 3307|       |			 * ago and you lost the response.
 3308|       |			 */
 3309|  6.40k|			net = TAILQ_FIRST(&stcb->asoc.nets);
 3310|  6.40k|			if (net == NULL) {
  ------------------
  |  Branch (3310:8): [True: 0, False: 6.40k]
  ------------------
 3311|       |				/* TSNH */
 3312|      0|				return;
 3313|      0|			}
 3314|  6.40k|			override_bit = SCTP_CWR_REDUCE_OVERRIDE;
  ------------------
  |  |  501|  6.40k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
 3315|  6.40k|		} else {
 3316|      0|			override_bit = 0;
 3317|      0|		}
 3318|  6.40k|	} else {
 3319|      0|		override_bit = 0;
 3320|      0|	}
 3321|  6.40k|	if (SCTP_TSN_GT(tsn, net->cwr_window_tsn) &&
  ------------------
  |  |  889|  6.40k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  12.8k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.17k, False: 3.23k]
  |  |  |  |  |  Branch (883:43): [True: 901, False: 2.27k]
  |  |  |  |  ------------------
  |  |  |  |  884|  12.8k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.23k, False: 2.27k]
  |  |  |  |  |  Branch (884:43): [True: 2.16k, False: 1.06k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3322|  3.06k|	    ((override_bit&SCTP_CWR_REDUCE_OVERRIDE) == 0)) {
  ------------------
  |  |  501|  3.06k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
  |  Branch (3322:6): [True: 0, False: 3.06k]
  ------------------
 3323|       |		/* JRS - Use the congestion control given in the pluggable CC module */
 3324|      0|		stcb->asoc.cc_functions.sctp_cwnd_update_after_ecn_echo(stcb, net, 0, pkt_cnt);
 3325|       |		/*
 3326|       |		 * We reduce once every RTT. So we will only lower cwnd at
 3327|       |		 * the next sending seq i.e. the window_data_tsn
 3328|       |		 */
 3329|      0|		net->cwr_window_tsn = window_data_tsn;
 3330|      0|		net->ecn_ce_pkt_cnt += pkt_cnt;
 3331|      0|		net->lost_cnt = pkt_cnt;
 3332|      0|		net->last_cwr_tsn = tsn;
 3333|  6.40k|	} else {
 3334|  6.40k|		override_bit |= SCTP_CWR_IN_SAME_WINDOW;
  ------------------
  |  |  502|  6.40k|#define SCTP_CWR_IN_SAME_WINDOW  0x02
  ------------------
 3335|  6.40k|		if (SCTP_TSN_GT(tsn, net->last_cwr_tsn) &&
  ------------------
  |  |  889|  6.40k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  12.8k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.17k, False: 3.23k]
  |  |  |  |  |  Branch (883:43): [True: 901, False: 2.27k]
  |  |  |  |  ------------------
  |  |  |  |  884|  12.8k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.23k, False: 2.27k]
  |  |  |  |  |  Branch (884:43): [True: 2.16k, False: 1.06k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3336|  3.06k|		    ((override_bit&SCTP_CWR_REDUCE_OVERRIDE) == 0)) {
  ------------------
  |  |  501|  3.06k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
  |  Branch (3336:7): [True: 0, False: 3.06k]
  ------------------
 3337|       |			/*
 3338|       |			 * Another loss in the same window update how
 3339|       |			 * many marks/packets lost we have had.
 3340|       |			 */
 3341|      0|			int cnt = 1;
 3342|      0|			if (pkt_cnt > net->lost_cnt) {
  ------------------
  |  Branch (3342:8): [True: 0, False: 0]
  ------------------
 3343|       |				/* Should be the case */
 3344|      0|				cnt = (pkt_cnt - net->lost_cnt);
 3345|      0|				net->ecn_ce_pkt_cnt += cnt;
 3346|      0|			}
 3347|      0|			net->lost_cnt = pkt_cnt;
 3348|      0|			net->last_cwr_tsn = tsn;
 3349|       |			/*
 3350|       |			 * Most CC functions will ignore this call, since we are in-window
 3351|       |			 * yet of the initial CE the peer saw.
 3352|       |			 */
 3353|      0|			stcb->asoc.cc_functions.sctp_cwnd_update_after_ecn_echo(stcb, net, 1, cnt);
 3354|      0|		}
 3355|  6.40k|	}
 3356|       |	/*
 3357|       |	 * We always send a CWR this way if our previous one was lost our
 3358|       |	 * peer will get an update, or if it is not time again to reduce we
 3359|       |	 * still get the cwr to the peer. Note we set the override when we
 3360|       |	 * could not find the TSN on the chunk or the destination network.
 3361|       |	 */
 3362|  6.40k|	sctp_send_cwr(stcb, net, net->last_cwr_tsn, override_bit);
 3363|  6.40k|}
sctp_input.c:sctp_handle_ecn_cwr:
 3367|    768|{
 3368|       |	/*
 3369|       |	 * Here we get a CWR from the peer. We must look in the outqueue and
 3370|       |	 * make sure that we have a covered ECNE in the control chunk part.
 3371|       |	 * If so remove it.
 3372|       |	 */
 3373|    768|	struct sctp_tmit_chunk *chk, *nchk;
 3374|    768|	struct sctp_ecne_chunk *ecne;
 3375|    768|	int override;
 3376|    768|	uint32_t cwr_tsn;
 3377|       |
 3378|    768|	cwr_tsn = ntohl(cp->tsn);
 3379|    768|	override = cp->ch.chunk_flags & SCTP_CWR_REDUCE_OVERRIDE;
  ------------------
  |  |  501|    768|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
 3380|  30.3k|	TAILQ_FOREACH_SAFE(chk, &stcb->asoc.control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|    768|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  31.0k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 30.3k, False: 768]
  |  |  |  Branch (1130:24): [True: 30.3k, False: 0]
  |  |  ------------------
  |  | 1131|  30.3k|              (var) = (tvar))
  ------------------
 3381|  30.3k|		if (chk->rec.chunk_id.id != SCTP_ECN_ECHO) {
  ------------------
  |  |  466|  30.3k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (3381:7): [True: 30.3k, False: 0]
  ------------------
 3382|  30.3k|			continue;
 3383|  30.3k|		}
 3384|      0|		if ((override == 0) && (chk->whoTo != net)) {
  ------------------
  |  Branch (3384:7): [True: 0, False: 0]
  |  Branch (3384:26): [True: 0, False: 0]
  ------------------
 3385|       |			/* Must be from the right src unless override is set */
 3386|      0|			continue;
 3387|      0|		}
 3388|      0|		ecne = mtod(chk->data, struct sctp_ecne_chunk *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3389|      0|		if (SCTP_TSN_GE(cwr_tsn, ntohl(ecne->tsn))) {
  ------------------
  |  |  890|      0|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|      0|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3390|       |			/* this covers this ECNE, we can remove it */
 3391|      0|			stcb->asoc.ecn_echo_cnt_onq--;
 3392|      0|			TAILQ_REMOVE(&stcb->asoc.control_send_queue, chk,
  ------------------
  |  Branch (3392:4): [True: 0, False: 0]
  |  Branch (3392:4): [Folded, False: 0]
  ------------------
 3393|      0|			    sctp_next);
 3394|      0|			stcb->asoc.ctrl_queue_cnt--;
 3395|      0|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3396|      0|			chk->data = NULL;
 3397|      0|			sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (3397:4): [Folded, False: 0]
  ------------------
 3398|      0|			if (override == 0) {
  ------------------
  |  Branch (3398:8): [True: 0, False: 0]
  ------------------
 3399|      0|				break;
 3400|      0|			}
 3401|      0|		}
 3402|      0|	}
 3403|    768|}
sctp_input.c:sctp_handle_shutdown_complete:
 3408|      3|{
 3409|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3410|       |	struct socket *so;
 3411|       |#endif
 3412|       |
 3413|      3|	SCTPDBG(SCTP_DEBUG_INPUT2,
 3414|      3|		"sctp_handle_shutdown_complete: handling SHUTDOWN-COMPLETE\n");
 3415|      3|	if (stcb == NULL)
  ------------------
  |  Branch (3415:6): [True: 0, False: 3]
  ------------------
 3416|      0|		return;
 3417|       |
 3418|       |	/* process according to association state */
 3419|      3|	if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  472|      3|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      3|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|      3|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (3419:6): [True: 3, False: 0]
  ------------------
 3420|       |		/* unexpected SHUTDOWN-COMPLETE... so ignore... */
 3421|      3|		SCTPDBG(SCTP_DEBUG_INPUT2,
 3422|      3|			"sctp_handle_shutdown_complete: not in SCTP_STATE_SHUTDOWN_ACK_SENT --- ignore\n");
 3423|      3|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      3|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      3|	do {                         \
  |  |  |  |  113|      3|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      3|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3424|      3|		return;
 3425|      3|	}
 3426|       |	/* notify upper layer protocol */
 3427|      0|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (3427:6): [True: 0, False: 0]
  ------------------
 3428|      0|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_DOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  704|      0|#define SCTP_NOTIFY_ASSOC_DOWN                   2
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_DOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3429|      0|	}
 3430|      0|#ifdef INVARIANTS
 3431|      0|	if (!TAILQ_EMPTY(&stcb->asoc.send_queue) ||
  ------------------
  |  Branch (3431:6): [True: 0, False: 0]
  ------------------
 3432|      0|	    !TAILQ_EMPTY(&stcb->asoc.sent_queue) ||
  ------------------
  |  Branch (3432:6): [True: 0, False: 0]
  ------------------
 3433|      0|	    sctp_is_there_unsent_data(stcb, SCTP_SO_NOT_LOCKED)) {
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  |  Branch (3433:6): [True: 0, False: 0]
  ------------------
 3434|      0|		panic("Queues are not empty when handling SHUTDOWN-COMPLETE");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 3435|      0|	}
 3436|      0|#endif
 3437|       |	/* stop the timer */
 3438|      0|	sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWNACK, stcb->sctp_ep, stcb, net,
  ------------------
  |  |  540|      0|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
 3439|      0|	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_24);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_24);
  ------------------
  |  |  792|      0|#define SCTP_LOC_24 0x00000018
  ------------------
 3440|      0|	SCTP_STAT_INCR_COUNTER32(sctps_shutdown);
  ------------------
  |  | 1127|      0|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3441|       |	/* free the TCB */
 3442|      0|	SCTPDBG(SCTP_DEBUG_INPUT2,
 3443|      0|		"sctp_handle_shutdown_complete: calls free-asoc\n");
 3444|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3445|       |	so = SCTP_INP_SO(stcb->sctp_ep);
 3446|       |	atomic_add_int(&stcb->asoc.refcnt, 1);
 3447|       |	SCTP_TCB_UNLOCK(stcb);
 3448|       |	SCTP_SOCKET_LOCK(so, 1);
 3449|       |	SCTP_TCB_LOCK(stcb);
 3450|       |	atomic_subtract_int(&stcb->asoc.refcnt, 1);
 3451|       |#endif
 3452|      0|	(void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
 3453|      0|	                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_25);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_25);
  ------------------
  |  |  793|      0|#define SCTP_LOC_25 0x00000019
  ------------------
 3454|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3455|       |	SCTP_SOCKET_UNLOCK(so, 1);
 3456|       |#endif
 3457|      0|	return;
 3458|      0|}
sctp_input.c:sctp_handle_stream_reset:
 4355|  15.3k|{
 4356|  15.3k|	uint16_t remaining_length, param_len, ptype;
 4357|  15.3k|	struct sctp_paramhdr pstore;
 4358|  15.3k|	uint8_t cstore[SCTP_CHUNK_BUFFER_SIZE];
 4359|  15.3k|	uint32_t seq = 0;
 4360|  15.3k|	int num_req = 0;
 4361|  15.3k|	int trunc = 0;
 4362|  15.3k|	struct sctp_tmit_chunk *chk;
 4363|  15.3k|	struct sctp_chunkhdr *ch;
 4364|  15.3k|	struct sctp_paramhdr *ph;
 4365|  15.3k|	int ret_code = 0;
 4366|  15.3k|	int num_param = 0;
 4367|       |
 4368|       |	/* now it may be a reset or a reset-response */
 4369|  15.3k|	remaining_length = ntohs(ch_req->chunk_length) - sizeof(struct sctp_chunkhdr);
 4370|       |
 4371|       |	/* setup for adding the response */
 4372|  15.3k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  15.3k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  15.3k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  7.34k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  7.34k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  7.34k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 7.34k, False: 0]
  |  |  ------------------
  |  |  173|  7.34k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  7.34k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  7.34k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  7.34k|			(_chk)->whoTo = NULL; \
  |  |  175|  7.34k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  7.34k|		} \
  |  |  177|  8.03k|	} else { \
  |  |  178|  8.03k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  8.03k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  8.03k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  8.03k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  8.03k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  8.03k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  8.03k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  8.03k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  8.03k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  8.03k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  8.03k|	} \
  |  |  185|  15.3k|}
  ------------------
  |  Branch (4372:2): [True: 502, False: 7.52k]
  |  Branch (4372:2): [Folded, False: 8.03k]
  |  Branch (4372:2): [True: 7.34k, False: 8.03k]
  ------------------
 4373|  15.3k|	if (chk == NULL) {
  ------------------
  |  Branch (4373:6): [True: 0, False: 15.3k]
  ------------------
 4374|      0|		return (ret_code);
 4375|      0|	}
 4376|  15.3k|	chk->copy_by_ref = 0;
 4377|  15.3k|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  15.3k|#define SCTP_STREAM_RESET       0x82
  ------------------
 4378|  15.3k|	chk->rec.chunk_id.can_take_data = 0;
 4379|  15.3k|	chk->flags = 0;
 4380|  15.3k|	chk->asoc = &stcb->asoc;
 4381|  15.3k|	chk->no_fr_allowed = 0;
 4382|  15.3k|	chk->book_size = chk->send_size = sizeof(struct sctp_chunkhdr);
 4383|  15.3k|	chk->book_size_scale = 0;
 4384|  15.3k|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  15.3k|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  15.3k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  15.3k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4385|  15.3k|	if (chk->data == NULL) {
  ------------------
  |  Branch (4385:6): [True: 0, False: 15.3k]
  ------------------
 4386|  5.41k|	strres_nochunk:
 4387|  5.41k|		if (chk->data) {
  ------------------
  |  Branch (4387:7): [True: 5.41k, False: 0]
  ------------------
 4388|  5.41k|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|  5.41k|#define sctp_m_freem m_freem
  ------------------
 4389|  5.41k|			chk->data = NULL;
 4390|  5.41k|		}
 4391|  5.41k|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|  5.41k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  5.41k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  5.41k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 5.41k, False: 0]
  |  |  ------------------
  |  |  149|  5.41k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  5.41k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.41k|	do {                         \
  |  |  |  |  |  |  113|  5.41k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.41k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  5.41k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|  5.41k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  5.41k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  155|  5.41k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  5.41k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|  5.41k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|  5.41k|		} else { \
  |  |  159|  5.41k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  5.41k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  5.41k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  5.41k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  5.41k|		} \
  |  |  163|  5.41k|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|  5.41k|}
  ------------------
  |  Branch (4391:3): [Folded, False: 5.41k]
  ------------------
 4392|  5.41k|		return (ret_code);
 4393|  5.41k|	}
 4394|  15.3k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  15.3k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  15.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4395|       |
 4396|       |	/* setup chunk parameters */
 4397|  15.3k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  15.3k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 4398|  15.3k|	chk->snd_count = 0;
 4399|  15.3k|	chk->whoTo = NULL;
 4400|       |
 4401|  15.3k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  15.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  15.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4402|  15.3k|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  15.3k|#define SCTP_STREAM_RESET       0x82
  ------------------
 4403|  15.3k|	ch->chunk_flags = 0;
 4404|  15.3k|	ch->chunk_length = htons(chk->send_size);
 4405|  15.3k|	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  801|  15.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  15.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  383|  15.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4406|  15.3k|	offset += sizeof(struct sctp_chunkhdr);
 4407|  29.6k|	while (remaining_length >= sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (4407:9): [True: 22.4k, False: 7.23k]
  ------------------
 4408|  22.4k|		ph = (struct sctp_paramhdr *)sctp_m_getptr(m, offset, sizeof(pstore), (uint8_t *)&pstore);
 4409|  22.4k|		if (ph == NULL) {
  ------------------
  |  Branch (4409:7): [True: 0, False: 22.4k]
  ------------------
 4410|       |			/* TSNH */
 4411|      0|			break;
 4412|      0|		}
 4413|  22.4k|		param_len = ntohs(ph->param_length);
 4414|  22.4k|		if ((param_len > remaining_length) ||
  ------------------
  |  Branch (4414:7): [True: 3.14k, False: 19.3k]
  ------------------
 4415|  19.3k|		    (param_len < (sizeof(struct sctp_paramhdr) + sizeof(uint32_t)))) {
  ------------------
  |  Branch (4415:7): [True: 1.43k, False: 17.8k]
  ------------------
 4416|       |			/* bad parameter length */
 4417|  4.57k|			break;
 4418|  4.57k|		}
 4419|  17.8k|		ph = (struct sctp_paramhdr *)sctp_m_getptr(m, offset, min(param_len, sizeof(cstore)),
  ------------------
  |  |   66|  17.8k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 137, False: 17.7k]
  |  |  ------------------
  ------------------
 4420|  17.8k|							   (uint8_t *)&cstore);
 4421|  17.8k|		if (ph == NULL) {
  ------------------
  |  Branch (4421:7): [True: 0, False: 17.8k]
  ------------------
 4422|       |			/* TSNH */
 4423|      0|			break;
 4424|      0|		}
 4425|  17.8k|		ptype = ntohs(ph->param_type);
 4426|  17.8k|		num_param++;
 4427|  17.8k|		if (param_len > sizeof(cstore)) {
  ------------------
  |  Branch (4427:7): [True: 137, False: 17.7k]
  ------------------
 4428|    137|			trunc = 1;
 4429|  17.7k|		} else {
 4430|  17.7k|			trunc = 0;
 4431|  17.7k|		}
 4432|  17.8k|		if (num_param > SCTP_MAX_RESET_PARAMS) {
  ------------------
  |  |  410|  17.8k|#define SCTP_MAX_RESET_PARAMS 2
  ------------------
  |  Branch (4432:7): [True: 646, False: 17.2k]
  ------------------
 4433|       |			/* hit the max of parameters already sorry.. */
 4434|    646|			break;
 4435|    646|		}
 4436|  17.2k|		if (ptype == SCTP_STR_RESET_OUT_REQUEST) {
  ------------------
  |  |  403|  17.2k|#define SCTP_STR_RESET_OUT_REQUEST	0x000d
  ------------------
  |  Branch (4436:7): [True: 1.56k, False: 15.6k]
  ------------------
 4437|  1.56k|			struct sctp_stream_reset_out_request *req_out;
 4438|       |
 4439|  1.56k|			if (param_len < sizeof(struct sctp_stream_reset_out_request)) {
  ------------------
  |  Branch (4439:8): [True: 230, False: 1.33k]
  ------------------
 4440|    230|				break;
 4441|    230|			}
 4442|  1.33k|			req_out = (struct sctp_stream_reset_out_request *)ph;
 4443|  1.33k|			num_req++;
 4444|  1.33k|			if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (4444:8): [True: 331, False: 1.00k]
  ------------------
 4445|    331|				seq = ntohl(req_out->response_seq);
 4446|    331|				if (seq == stcb->asoc.str_reset_seq_out) {
  ------------------
  |  Branch (4446:9): [True: 0, False: 331]
  ------------------
 4447|       |					/* implicit ack */
 4448|      0|					(void)sctp_handle_stream_reset_response(stcb, seq, SCTP_STREAM_RESET_RESULT_PERFORMED, NULL);
  ------------------
  |  |  479|      0|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4449|      0|				}
 4450|    331|			}
 4451|  1.33k|			sctp_handle_str_reset_request_out(stcb, chk, req_out, trunc);
 4452|  15.6k|		} else if (ptype == SCTP_STR_RESET_ADD_OUT_STREAMS) {
  ------------------
  |  |  407|  15.6k|#define SCTP_STR_RESET_ADD_OUT_STREAMS	0x0011
  ------------------
  |  Branch (4452:14): [True: 3.24k, False: 12.4k]
  ------------------
 4453|  3.24k|			struct sctp_stream_reset_add_strm  *str_add;
 4454|       |
 4455|  3.24k|			if (param_len < sizeof(struct sctp_stream_reset_add_strm)) {
  ------------------
  |  Branch (4455:8): [True: 760, False: 2.48k]
  ------------------
 4456|    760|				break;
 4457|    760|			}
 4458|  2.48k|			str_add = (struct sctp_stream_reset_add_strm  *)ph;
 4459|  2.48k|			num_req++;
 4460|  2.48k|			sctp_handle_str_reset_add_strm(stcb, chk, str_add);
 4461|  12.4k|		} else if (ptype == SCTP_STR_RESET_ADD_IN_STREAMS) {
  ------------------
  |  |  408|  12.4k|#define SCTP_STR_RESET_ADD_IN_STREAMS	0x0012
  ------------------
  |  Branch (4461:14): [True: 1.41k, False: 10.9k]
  ------------------
 4462|  1.41k|			struct sctp_stream_reset_add_strm  *str_add;
 4463|       |
 4464|  1.41k|			if (param_len < sizeof(struct sctp_stream_reset_add_strm)) {
  ------------------
  |  Branch (4464:8): [True: 265, False: 1.15k]
  ------------------
 4465|    265|				break;
 4466|    265|			}
 4467|  1.15k|			str_add = (struct sctp_stream_reset_add_strm  *)ph;
 4468|  1.15k|			num_req++;
 4469|  1.15k|			sctp_handle_str_reset_add_out_strm(stcb, chk, str_add);
 4470|  10.9k|		} else if (ptype == SCTP_STR_RESET_IN_REQUEST) {
  ------------------
  |  |  404|  10.9k|#define SCTP_STR_RESET_IN_REQUEST	0x000e
  ------------------
  |  Branch (4470:14): [True: 8.65k, False: 2.34k]
  ------------------
 4471|  8.65k|			struct sctp_stream_reset_in_request *req_in;
 4472|       |
 4473|  8.65k|			num_req++;
 4474|  8.65k|			req_in = (struct sctp_stream_reset_in_request *)ph;
 4475|  8.65k|			sctp_handle_str_reset_request_in(stcb, chk, req_in, trunc);
 4476|  8.65k|		} else if (ptype == SCTP_STR_RESET_TSN_REQUEST) {
  ------------------
  |  |  405|  2.34k|#define SCTP_STR_RESET_TSN_REQUEST	0x000f
  ------------------
  |  Branch (4476:14): [True: 530, False: 1.81k]
  ------------------
 4477|    530|			struct sctp_stream_reset_tsn_request *req_tsn;
 4478|       |
 4479|    530|			num_req++;
 4480|    530|			req_tsn = (struct sctp_stream_reset_tsn_request *)ph;
 4481|    530|			if (sctp_handle_str_reset_request_tsn(stcb, chk, req_tsn)) {
  ------------------
  |  Branch (4481:8): [True: 0, False: 530]
  ------------------
 4482|      0|				ret_code = 1;
 4483|      0|				goto strres_nochunk;
 4484|      0|			}
 4485|       |			/* no more */
 4486|    530|			break;
 4487|  1.81k|		} else if (ptype == SCTP_STR_RESET_RESPONSE) {
  ------------------
  |  |  406|  1.81k|#define SCTP_STR_RESET_RESPONSE		0x0010
  ------------------
  |  Branch (4487:14): [True: 786, False: 1.02k]
  ------------------
 4488|    786|			struct sctp_stream_reset_response *resp;
 4489|    786|			uint32_t result;
 4490|       |
 4491|    786|			if (param_len < sizeof(struct sctp_stream_reset_response)) {
  ------------------
  |  Branch (4491:8): [True: 105, False: 681]
  ------------------
 4492|    105|				break;
 4493|    105|			}
 4494|    681|			resp = (struct sctp_stream_reset_response *)ph;
 4495|    681|			seq = ntohl(resp->response_seq);
 4496|    681|			result = ntohl(resp->result);
 4497|    681|			if (sctp_handle_stream_reset_response(stcb, seq, result, resp)) {
  ------------------
  |  Branch (4497:8): [True: 0, False: 681]
  ------------------
 4498|      0|				ret_code = 1;
 4499|      0|				goto strres_nochunk;
 4500|      0|			}
 4501|  1.02k|		} else {
 4502|  1.02k|			break;
 4503|  1.02k|		}
 4504|  14.3k|		offset += SCTP_SIZE32(param_len);
  ------------------
  |  |  383|  14.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4505|  14.3k|		if (remaining_length >= SCTP_SIZE32(param_len)) {
  ------------------
  |  |  383|  14.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (4505:7): [True: 13.2k, False: 1.10k]
  ------------------
 4506|  13.2k|			remaining_length -= SCTP_SIZE32(param_len);
  ------------------
  |  |  383|  13.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4507|  13.2k|		} else {
 4508|  1.10k|			remaining_length = 0;
 4509|  1.10k|		}
 4510|  14.3k|	}
 4511|  15.3k|	if (num_req == 0) {
  ------------------
  |  Branch (4511:6): [True: 5.41k, False: 9.95k]
  ------------------
 4512|       |		/* we have no response free the stuff */
 4513|  5.41k|		goto strres_nochunk;
 4514|  5.41k|	}
 4515|       |	/* ok we have a chunk to link in */
 4516|  15.3k|	TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue,
  ------------------
  |  Branch (4516:2): [Folded, False: 9.95k]
  ------------------
 4517|  9.95k|			  chk,
 4518|  9.95k|			  sctp_next);
 4519|  9.95k|	stcb->asoc.ctrl_queue_cnt++;
 4520|  9.95k|	return (ret_code);
 4521|  15.3k|}
sctp_input.c:sctp_handle_stream_reset_response:
 3839|    681|{
 3840|    681|	uint16_t type;
 3841|    681|	int lparam_len;
 3842|    681|	struct sctp_association *asoc = &stcb->asoc;
 3843|    681|	struct sctp_tmit_chunk *chk;
 3844|    681|	struct sctp_stream_reset_request *req_param;
 3845|    681|	struct sctp_stream_reset_out_request *req_out_param;
 3846|    681|	struct sctp_stream_reset_in_request *req_in_param;
 3847|    681|	uint32_t number_entries;
 3848|       |
 3849|    681|	if (asoc->stream_reset_outstanding == 0) {
  ------------------
  |  Branch (3849:6): [True: 429, False: 252]
  ------------------
 3850|       |		/* duplicate */
 3851|    429|		return (0);
 3852|    429|	}
 3853|    252|	if (seq == stcb->asoc.str_reset_seq_out) {
  ------------------
  |  Branch (3853:6): [True: 0, False: 252]
  ------------------
 3854|      0|		req_param = sctp_find_stream_reset(stcb, seq, &chk);
 3855|      0|		if (req_param != NULL) {
  ------------------
  |  Branch (3855:7): [True: 0, False: 0]
  ------------------
 3856|      0|			stcb->asoc.str_reset_seq_out++;
 3857|      0|			type = ntohs(req_param->ph.param_type);
 3858|      0|			lparam_len = ntohs(req_param->ph.param_length);
 3859|      0|			if (type == SCTP_STR_RESET_OUT_REQUEST) {
  ------------------
  |  |  403|      0|#define SCTP_STR_RESET_OUT_REQUEST	0x000d
  ------------------
  |  Branch (3859:8): [True: 0, False: 0]
  ------------------
 3860|      0|				int no_clear = 0;
 3861|       |
 3862|      0|				req_out_param = (struct sctp_stream_reset_out_request *)req_param;
 3863|      0|				number_entries = (lparam_len - sizeof(struct sctp_stream_reset_out_request)) / sizeof(uint16_t);
 3864|      0|				asoc->stream_reset_out_is_outstanding = 0;
 3865|      0|				if (asoc->stream_reset_outstanding)
  ------------------
  |  Branch (3865:9): [True: 0, False: 0]
  ------------------
 3866|      0|					asoc->stream_reset_outstanding--;
 3867|      0|				if (action == SCTP_STREAM_RESET_RESULT_PERFORMED) {
  ------------------
  |  |  479|      0|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
  |  Branch (3867:9): [True: 0, False: 0]
  ------------------
 3868|       |					/* do it */
 3869|      0|					sctp_reset_out_streams(stcb, number_entries, req_out_param->list_of_streams);
 3870|      0|				} else if (action == SCTP_STREAM_RESET_RESULT_DENIED) {
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
  |  Branch (3870:16): [True: 0, False: 0]
  ------------------
 3871|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_DENIED_OUT, stcb, number_entries, req_out_param->list_of_streams, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  723|      0|#define SCTP_NOTIFY_STR_RESET_DENIED_OUT        21
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_DENIED_OUT, stcb, number_entries, req_out_param->list_of_streams, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3872|      0|				} else if (action == SCTP_STREAM_RESET_RESULT_IN_PROGRESS) {
  ------------------
  |  |  484|      0|#define SCTP_STREAM_RESET_RESULT_IN_PROGRESS     0x00000006 /* XXX: unused */
  ------------------
  |  Branch (3872:16): [True: 0, False: 0]
  ------------------
 3873|       |					/* Set it up so we don't stop retransmitting */
 3874|      0|					asoc->stream_reset_outstanding++;
 3875|      0|					stcb->asoc.str_reset_seq_out--;
 3876|      0|					asoc->stream_reset_out_is_outstanding = 1;
 3877|      0|					no_clear = 1;
 3878|      0|				} else {
 3879|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_FAILED_OUT, stcb, number_entries, req_out_param->list_of_streams, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  721|      0|#define SCTP_NOTIFY_STR_RESET_FAILED_OUT        19
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_FAILED_OUT, stcb, number_entries, req_out_param->list_of_streams, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3880|      0|				}
 3881|      0|				if (no_clear == 0) {
  ------------------
  |  Branch (3881:9): [True: 0, False: 0]
  ------------------
 3882|      0|					sctp_reset_clear_pending(stcb, number_entries, req_out_param->list_of_streams);
 3883|      0|				}
 3884|      0|			} else if (type == SCTP_STR_RESET_IN_REQUEST) {
  ------------------
  |  |  404|      0|#define SCTP_STR_RESET_IN_REQUEST	0x000e
  ------------------
  |  Branch (3884:15): [True: 0, False: 0]
  ------------------
 3885|      0|				req_in_param = (struct sctp_stream_reset_in_request *)req_param;
 3886|      0|				number_entries = (lparam_len - sizeof(struct sctp_stream_reset_in_request)) / sizeof(uint16_t);
 3887|      0|				if (asoc->stream_reset_outstanding)
  ------------------
  |  Branch (3887:9): [True: 0, False: 0]
  ------------------
 3888|      0|					asoc->stream_reset_outstanding--;
 3889|      0|				if (action == SCTP_STREAM_RESET_RESULT_DENIED) {
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
  |  Branch (3889:9): [True: 0, False: 0]
  ------------------
 3890|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_DENIED_IN, stcb,
  ------------------
  |  |  724|      0|#define SCTP_NOTIFY_STR_RESET_DENIED_IN         22
  ------------------
 3891|      0|							number_entries, req_in_param->list_of_streams, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3892|      0|				} else if (action != SCTP_STREAM_RESET_RESULT_PERFORMED) {
  ------------------
  |  |  479|      0|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
  |  Branch (3892:16): [True: 0, False: 0]
  ------------------
 3893|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_FAILED_IN, stcb,
  ------------------
  |  |  722|      0|#define SCTP_NOTIFY_STR_RESET_FAILED_IN         20
  ------------------
 3894|      0|							number_entries, req_in_param->list_of_streams, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3895|      0|				}
 3896|      0|			} else if (type == SCTP_STR_RESET_ADD_OUT_STREAMS) {
  ------------------
  |  |  407|      0|#define SCTP_STR_RESET_ADD_OUT_STREAMS	0x0011
  ------------------
  |  Branch (3896:15): [True: 0, False: 0]
  ------------------
 3897|       |				/* Ok we now may have more streams */
 3898|      0|				int num_stream;
 3899|       |
 3900|      0|				num_stream = stcb->asoc.strm_pending_add_size;
 3901|      0|				if (num_stream > (stcb->asoc.strm_realoutsize - stcb->asoc.streamoutcnt)) {
  ------------------
  |  Branch (3901:9): [True: 0, False: 0]
  ------------------
 3902|       |					/* TSNH */
 3903|      0|					num_stream = stcb->asoc.strm_realoutsize - stcb->asoc.streamoutcnt;
 3904|      0|				}
 3905|      0|				stcb->asoc.strm_pending_add_size = 0;
 3906|      0|				if (asoc->stream_reset_outstanding)
  ------------------
  |  Branch (3906:9): [True: 0, False: 0]
  ------------------
 3907|      0|					asoc->stream_reset_outstanding--;
 3908|      0|				if (action == SCTP_STREAM_RESET_RESULT_PERFORMED) {
  ------------------
  |  |  479|      0|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
  |  Branch (3908:9): [True: 0, False: 0]
  ------------------
 3909|       |					/* Put the new streams into effect */
 3910|      0|					int i;
 3911|      0|					for (i = asoc->streamoutcnt; i < (asoc->streamoutcnt + num_stream); i++) {
  ------------------
  |  Branch (3911:35): [True: 0, False: 0]
  ------------------
 3912|      0|						asoc->strmout[i].state = SCTP_STREAM_OPEN;
  ------------------
  |  |  670|      0|#define SCTP_STREAM_OPEN             0x02
  ------------------
 3913|      0|					}
 3914|      0|					asoc->streamoutcnt += num_stream;
 3915|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  725|      0|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3916|      0|				} else if (action == SCTP_STREAM_RESET_RESULT_DENIED) {
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
  |  Branch (3916:16): [True: 0, False: 0]
  ------------------
 3917|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  725|      0|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  523|      0|#define SCTP_STREAM_CHANGE_DENIED	0x0004
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3918|      0|				} else {
 3919|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_FAILED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  725|      0|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_FAILED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  524|      0|#define SCTP_STREAM_CHANGE_FAILED	0x0008
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_FAILED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3920|      0|				}
 3921|      0|			} else if (type == SCTP_STR_RESET_ADD_IN_STREAMS) {
  ------------------
  |  |  408|      0|#define SCTP_STR_RESET_ADD_IN_STREAMS	0x0012
  ------------------
  |  Branch (3921:15): [True: 0, False: 0]
  ------------------
 3922|      0|				if (asoc->stream_reset_outstanding)
  ------------------
  |  Branch (3922:9): [True: 0, False: 0]
  ------------------
 3923|      0|					asoc->stream_reset_outstanding--;
 3924|      0|				if (action == SCTP_STREAM_RESET_RESULT_DENIED) {
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
  |  Branch (3924:9): [True: 0, False: 0]
  ------------------
 3925|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  725|      0|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  523|      0|#define SCTP_STREAM_CHANGE_DENIED	0x0004
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3926|      0|				} else if (action != SCTP_STREAM_RESET_RESULT_PERFORMED) {
  ------------------
  |  |  479|      0|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
  |  Branch (3926:16): [True: 0, False: 0]
  ------------------
 3927|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  725|      0|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  523|      0|#define SCTP_STREAM_CHANGE_DENIED	0x0004
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, SCTP_STREAM_CHANGE_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3928|      0|				}
 3929|      0|			} else if (type == SCTP_STR_RESET_TSN_REQUEST) {
  ------------------
  |  |  405|      0|#define SCTP_STR_RESET_TSN_REQUEST	0x000f
  ------------------
  |  Branch (3929:15): [True: 0, False: 0]
  ------------------
 3930|       |				/**
 3931|       |				 * a) Adopt the new in tsn.
 3932|       |				 * b) reset the map
 3933|       |				 * c) Adopt the new out-tsn
 3934|       |				 */
 3935|      0|				struct sctp_stream_reset_response_tsn *resp;
 3936|      0|				struct sctp_forward_tsn_chunk fwdtsn;
 3937|      0|				int abort_flag = 0;
 3938|      0|				if (respin == NULL) {
  ------------------
  |  Branch (3938:9): [True: 0, False: 0]
  ------------------
 3939|       |					/* huh ? */
 3940|      0|					return (0);
 3941|      0|				}
 3942|      0|				if (ntohs(respin->ph.param_length) < sizeof(struct sctp_stream_reset_response_tsn)) {
  ------------------
  |  Branch (3942:9): [True: 0, False: 0]
  ------------------
 3943|      0|					return (0);
 3944|      0|				}
 3945|      0|				if (action == SCTP_STREAM_RESET_RESULT_PERFORMED) {
  ------------------
  |  |  479|      0|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
  |  Branch (3945:9): [True: 0, False: 0]
  ------------------
 3946|      0|					resp = (struct sctp_stream_reset_response_tsn *)respin;
 3947|      0|					asoc->stream_reset_outstanding--;
 3948|      0|					fwdtsn.ch.chunk_length = htons(sizeof(struct sctp_forward_tsn_chunk));
 3949|      0|					fwdtsn.ch.chunk_type = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|      0|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
 3950|      0|					fwdtsn.new_cumulative_tsn = htonl(ntohl(resp->senders_next_tsn) - 1);
 3951|      0|					sctp_handle_forward_tsn(stcb, &fwdtsn, &abort_flag, NULL, 0);
 3952|      0|					if (abort_flag) {
  ------------------
  |  Branch (3952:10): [True: 0, False: 0]
  ------------------
 3953|      0|						return (1);
 3954|      0|					}
 3955|      0|					stcb->asoc.highest_tsn_inside_map = (ntohl(resp->senders_next_tsn) - 1);
 3956|      0|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|      0|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (3956:10): [True: 0, False: 0]
  ------------------
 3957|      0|						sctp_log_map(0, 7, asoc->highest_tsn_inside_map, SCTP_MAP_SLIDE_RESULT);
  ------------------
  |  |  128|      0|#define SCTP_MAP_SLIDE_RESULT       23
  ------------------
 3958|      0|					}
 3959|       |
 3960|      0|					stcb->asoc.tsn_last_delivered = stcb->asoc.cumulative_tsn = stcb->asoc.highest_tsn_inside_map;
 3961|      0|					stcb->asoc.mapping_array_base_tsn = ntohl(resp->senders_next_tsn);
 3962|      0|					memset(stcb->asoc.mapping_array, 0, stcb->asoc.mapping_array_size);
 3963|       |
 3964|      0|					stcb->asoc.highest_tsn_inside_nr_map = stcb->asoc.highest_tsn_inside_map;
 3965|      0|					memset(stcb->asoc.nr_mapping_array, 0, stcb->asoc.mapping_array_size);
 3966|       |
 3967|      0|					stcb->asoc.sending_seq = ntohl(resp->receivers_next_tsn);
 3968|      0|					stcb->asoc.last_acked_seq = stcb->asoc.cumulative_tsn;
 3969|       |
 3970|      0|					sctp_reset_out_streams(stcb, 0, (uint16_t *) NULL);
 3971|      0|					sctp_reset_in_stream(stcb, 0, (uint16_t *) NULL);
 3972|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  726|      0|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3973|      0|				} else if (action == SCTP_STREAM_RESET_RESULT_DENIED) {
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
  |  Branch (3973:16): [True: 0, False: 0]
  ------------------
 3974|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, SCTP_ASSOC_RESET_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  726|      0|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, SCTP_ASSOC_RESET_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  508|      0|#define SCTP_ASSOC_RESET_DENIED		0x0004
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, SCTP_ASSOC_RESET_DENIED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3975|      0|				} else {
 3976|      0|					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, SCTP_ASSOC_RESET_FAILED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  726|      0|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, SCTP_ASSOC_RESET_FAILED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  509|      0|#define SCTP_ASSOC_RESET_FAILED		0x0008
  ------------------
              					sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, SCTP_ASSOC_RESET_FAILED, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3977|      0|				}
 3978|      0|			}
 3979|       |			/* get rid of the request and get the request flags */
 3980|      0|			if (asoc->stream_reset_outstanding == 0) {
  ------------------
  |  Branch (3980:8): [True: 0, False: 0]
  ------------------
 3981|      0|				sctp_clean_up_stream_reset(stcb);
 3982|      0|			}
 3983|      0|		}
 3984|      0|	}
 3985|    252|	if (asoc->stream_reset_outstanding == 0) {
  ------------------
  |  Branch (3985:6): [True: 0, False: 252]
  ------------------
 3986|      0|		sctp_send_stream_reset_out_if_possible(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3987|      0|	}
 3988|    252|	return (0);
 3989|    252|}
sctp_input.c:sctp_reset_out_streams:
 3725|     68|{
 3726|     68|	uint32_t i;
 3727|     68|	uint16_t temp;
 3728|       |
 3729|     68|	if (number_entries > 0) {
  ------------------
  |  Branch (3729:6): [True: 0, False: 68]
  ------------------
 3730|      0|		for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (3730:15): [True: 0, False: 0]
  ------------------
 3731|      0|			temp = ntohs(list[i]);
 3732|      0|			if (temp >= stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (3732:8): [True: 0, False: 0]
  ------------------
 3733|       |				/* no such stream */
 3734|      0|				continue;
 3735|      0|			}
 3736|      0|			stcb->asoc.strmout[temp].next_mid_ordered = 0;
 3737|      0|			stcb->asoc.strmout[temp].next_mid_unordered = 0;
 3738|      0|		}
 3739|     68|	} else {
 3740|  17.5k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (3740:15): [True: 17.4k, False: 68]
  ------------------
 3741|  17.4k|			stcb->asoc.strmout[i].next_mid_ordered = 0;
 3742|  17.4k|			stcb->asoc.strmout[i].next_mid_unordered = 0;
 3743|  17.4k|		}
 3744|     68|	}
 3745|     68|	sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_SEND, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  720|     68|#define SCTP_NOTIFY_STR_RESET_SEND              18
  ------------------
              	sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_SEND, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     68|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3746|     68|}
sctp_input.c:sctp_handle_str_reset_request_out:
 4126|  1.33k|{
 4127|  1.33k|	uint32_t seq, tsn;
 4128|  1.33k|	int number_entries, len;
 4129|  1.33k|	struct sctp_association *asoc = &stcb->asoc;
 4130|       |
 4131|  1.33k|	seq = ntohl(req->request_seq);
 4132|       |
 4133|       |	/* now if its not a duplicate we process it */
 4134|  1.33k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4134:6): [True: 767, False: 564]
  ------------------
 4135|    767|		len = ntohs(req->ph.param_length);
 4136|    767|		number_entries = ((len - sizeof(struct sctp_stream_reset_out_request)) / sizeof(uint16_t));
 4137|       |		/*
 4138|       |		 * the sender is resetting, handle the list issue.. we must
 4139|       |		 * a) verify if we can do the reset, if so no problem b) If
 4140|       |		 * we can't do the reset we must copy the request. c) queue
 4141|       |		 * it, and setup the data in processor to trigger it off
 4142|       |		 * when needed and dequeue all the queued data.
 4143|       |		 */
 4144|    767|		tsn = ntohl(req->send_reset_at_tsn);
 4145|       |
 4146|       |		/* move the reset action back one */
 4147|    767|		asoc->last_reset_action[1] = asoc->last_reset_action[0];
 4148|    767|		if ((asoc->local_strreset_support & SCTP_ENABLE_RESET_STREAM_REQ) == 0) {
  ------------------
  |  |  180|    767|#define SCTP_ENABLE_RESET_STREAM_REQ 	0x00000001
  ------------------
  |  Branch (4148:7): [True: 0, False: 767]
  ------------------
 4149|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4150|    767|		} else if (trunc) {
  ------------------
  |  Branch (4150:14): [True: 1, False: 766]
  ------------------
 4151|      1|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      1|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4152|    766|		} else if (SCTP_TSN_GE(asoc->cumulative_tsn, tsn)) {
  ------------------
  |  |  890|    766|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    766|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.53k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 365, False: 401]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 365]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.53k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 391, False: 375]
  |  |  |  |  |  |  |  Branch (884:43): [True: 215, False: 176]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 10, False: 541]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4153|       |			/* we can do it now */
 4154|    225|			sctp_reset_in_stream(stcb, number_entries, req->list_of_streams);
 4155|    225|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|    225|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4156|    541|		} else {
 4157|       |			/*
 4158|       |			 * we must queue it up and thus wait for the TSN's
 4159|       |			 * to arrive that are at or before tsn
 4160|       |			 */
 4161|    541|			struct sctp_stream_reset_list *liste;
 4162|    541|			int siz;
 4163|       |
 4164|    541|			siz = sizeof(struct sctp_stream_reset_list) + (number_entries * sizeof(uint16_t));
 4165|    541|			SCTP_MALLOC(liste, struct sctp_stream_reset_list *,
  ------------------
  |  |  675|    541|	do {								\
  |  |  676|    541|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    541|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    541|    do {								\
  |  |  |  |  198|    541|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.08k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 541]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    541|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 541]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    541|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 541]
  |  |  ------------------
  ------------------
 4166|    541|				    siz, SCTP_M_STRESET);
 4167|    541|			if (liste == NULL) {
  ------------------
  |  Branch (4167:8): [True: 0, False: 541]
  ------------------
 4168|       |				/* gak out of memory */
 4169|      0|				asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4170|      0|				sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4171|      0|				return;
 4172|      0|			}
 4173|    541|			liste->seq = seq;
 4174|    541|			liste->tsn = tsn;
 4175|    541|			liste->number_entries = number_entries;
 4176|    541|			memcpy(&liste->list_of_streams, req->list_of_streams, number_entries * sizeof(uint16_t));
 4177|    541|			TAILQ_INSERT_TAIL(&asoc->resetHead, liste, next_resp);
  ------------------
  |  Branch (4177:4): [Folded, False: 541]
  ------------------
 4178|    541|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_IN_PROGRESS;
  ------------------
  |  |  484|    541|#define SCTP_STREAM_RESET_RESULT_IN_PROGRESS     0x00000006 /* XXX: unused */
  ------------------
 4179|    541|		}
 4180|    767|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4181|    767|		asoc->str_reset_seq_in++;
 4182|    767|	} else if ((asoc->str_reset_seq_in - 1) == seq) {
  ------------------
  |  Branch (4182:13): [True: 239, False: 325]
  ------------------
 4183|       |		/*
 4184|       |		 * one seq back, just echo back last action since my
 4185|       |		 * response was lost.
 4186|       |		 */
 4187|    239|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4188|    325|	} else if ((asoc->str_reset_seq_in - 2) == seq) {
  ------------------
  |  Branch (4188:13): [True: 76, False: 249]
  ------------------
 4189|       |		/*
 4190|       |		 * two seq back, just echo back last action since my
 4191|       |		 * response was lost.
 4192|       |		 */
 4193|     76|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4194|    249|	} else {
 4195|    249|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|    249|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4196|    249|	}
 4197|  1.33k|}
sctp_input.c:sctp_handle_str_reset_add_strm:
 4202|  2.48k|{
 4203|       |	/*
 4204|       |	 * Peer is requesting to add more streams.
 4205|       |	 * If its within our max-streams we will
 4206|       |	 * allow it.
 4207|       |	 */
 4208|  2.48k|	uint32_t num_stream, i;
 4209|  2.48k|	uint32_t seq;
 4210|  2.48k|	struct sctp_association *asoc = &stcb->asoc;
 4211|  2.48k|	struct sctp_queued_to_read *ctl, *nctl;
 4212|       |
 4213|       |	/* Get the number. */
 4214|  2.48k|	seq = ntohl(str_add->request_seq);
 4215|  2.48k|	num_stream = ntohs(str_add->number_of_streams);
 4216|       |	/* Now what would be the new total? */
 4217|  2.48k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4217:6): [True: 81, False: 2.40k]
  ------------------
 4218|     81|		num_stream += stcb->asoc.streamincnt;
 4219|     81|		stcb->asoc.last_reset_action[1] = stcb->asoc.last_reset_action[0];
 4220|     81|		if ((asoc->local_strreset_support & SCTP_ENABLE_CHANGE_ASSOC_REQ) == 0) {
  ------------------
  |  |  182|     81|#define SCTP_ENABLE_CHANGE_ASSOC_REQ 	0x00000004
  ------------------
  |  Branch (4220:7): [True: 0, False: 81]
  ------------------
 4221|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4222|     81|		} else if ((num_stream > stcb->asoc.max_inbound_streams) ||
  ------------------
  |  Branch (4222:14): [True: 24, False: 57]
  ------------------
 4223|     57|		           (num_stream > 0xffff)) {
  ------------------
  |  Branch (4223:14): [True: 0, False: 57]
  ------------------
 4224|       |			/* We must reject it they ask for to many */
 4225|     24|  denied:
 4226|     24|			stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|     24|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4227|     57|		} else {
 4228|       |			/* Ok, we can do that :-) */
 4229|     57|			struct sctp_stream_in *oldstrm;
 4230|       |
 4231|       |			/* save off the old */
 4232|     57|			oldstrm = stcb->asoc.strmin;
 4233|     57|			SCTP_MALLOC(stcb->asoc.strmin, struct sctp_stream_in *,
  ------------------
  |  |  675|     57|	do {								\
  |  |  676|     57|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|     57|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|     57|    do {								\
  |  |  |  |  198|     57|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    114|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 57]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|     57|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 57]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|     57|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 57]
  |  |  ------------------
  ------------------
 4234|     57|			            (num_stream * sizeof(struct sctp_stream_in)),
 4235|     57|			            SCTP_M_STRMI);
 4236|     57|			if (stcb->asoc.strmin == NULL) {
  ------------------
  |  Branch (4236:8): [True: 0, False: 57]
  ------------------
 4237|      0|				stcb->asoc.strmin = oldstrm;
 4238|      0|				goto denied;
 4239|      0|			}
 4240|       |			/* copy off the old data */
 4241|  14.7k|			for (i = 0; i < stcb->asoc.streamincnt; i++) {
  ------------------
  |  Branch (4241:16): [True: 14.6k, False: 57]
  ------------------
 4242|  14.6k|				TAILQ_INIT(&stcb->asoc.strmin[i].inqueue);
  ------------------
  |  Branch (4242:5): [Folded, False: 14.6k]
  ------------------
 4243|  14.6k|				TAILQ_INIT(&stcb->asoc.strmin[i].uno_inqueue);
  ------------------
  |  Branch (4243:5): [Folded, False: 14.6k]
  ------------------
 4244|  14.6k|				stcb->asoc.strmin[i].sid = i;
 4245|  14.6k|				stcb->asoc.strmin[i].last_mid_delivered = oldstrm[i].last_mid_delivered;
 4246|  14.6k|				stcb->asoc.strmin[i].delivery_started = oldstrm[i].delivery_started;
 4247|  14.6k|				stcb->asoc.strmin[i].pd_api_started = oldstrm[i].pd_api_started;
 4248|       |				/* now anything on those queues? */
 4249|  14.6k|				TAILQ_FOREACH_SAFE(ctl, &oldstrm[i].inqueue, next_instrm, nctl) {
  ------------------
  |  | 1129|  14.6k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  14.6k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 14.6k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  14.6k|              (var) = (tvar))
  ------------------
 4250|      0|					TAILQ_REMOVE(&oldstrm[i].inqueue, ctl, next_instrm);
  ------------------
  |  Branch (4250:6): [True: 0, False: 0]
  |  Branch (4250:6): [Folded, False: 0]
  ------------------
 4251|      0|					TAILQ_INSERT_TAIL(&stcb->asoc.strmin[i].inqueue, ctl, next_instrm);
  ------------------
  |  Branch (4251:6): [Folded, False: 0]
  ------------------
 4252|      0|				}
 4253|  14.6k|				TAILQ_FOREACH_SAFE(ctl, &oldstrm[i].uno_inqueue, next_instrm, nctl) {
  ------------------
  |  | 1129|  14.6k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  14.6k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 14.6k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  14.6k|              (var) = (tvar))
  ------------------
 4254|      0|					TAILQ_REMOVE(&oldstrm[i].uno_inqueue, ctl, next_instrm);
  ------------------
  |  Branch (4254:6): [True: 0, False: 0]
  |  Branch (4254:6): [Folded, False: 0]
  ------------------
 4255|      0|					TAILQ_INSERT_TAIL(&stcb->asoc.strmin[i].uno_inqueue, ctl, next_instrm);
  ------------------
  |  Branch (4255:6): [Folded, False: 0]
  ------------------
 4256|      0|				}
 4257|  14.6k|			}
 4258|       |			/* Init the new streams */
 4259|     57|			for (i = stcb->asoc.streamincnt; i < num_stream; i++) {
  ------------------
  |  Branch (4259:37): [True: 0, False: 57]
  ------------------
 4260|      0|				TAILQ_INIT(&stcb->asoc.strmin[i].inqueue);
  ------------------
  |  Branch (4260:5): [Folded, False: 0]
  ------------------
 4261|      0|				TAILQ_INIT(&stcb->asoc.strmin[i].uno_inqueue);
  ------------------
  |  Branch (4261:5): [Folded, False: 0]
  ------------------
 4262|      0|				stcb->asoc.strmin[i].sid = i;
 4263|      0|				stcb->asoc.strmin[i].last_mid_delivered = 0xffffffff;
 4264|      0|				stcb->asoc.strmin[i].pd_api_started = 0;
 4265|      0|				stcb->asoc.strmin[i].delivery_started = 0;
 4266|      0|			}
 4267|     57|			SCTP_FREE(oldstrm, SCTP_M_STRMI);
  ------------------
  |  |  679|     57|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|     57|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 4268|       |			/* update the size */
 4269|     57|			stcb->asoc.streamincnt = num_stream;
 4270|     57|			stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|     57|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4271|     57|			sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  725|     57|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_ADD, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     57|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4272|     57|		}
 4273|     81|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4274|     81|		asoc->str_reset_seq_in++;
 4275|  2.40k|	} else if ((asoc->str_reset_seq_in - 1) == seq) {
  ------------------
  |  Branch (4275:13): [True: 669, False: 1.73k]
  ------------------
 4276|       |		/*
 4277|       |		 * one seq back, just echo back last action since my
 4278|       |		 * response was lost.
 4279|       |		 */
 4280|    669|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4281|  1.73k|	} else if ((asoc->str_reset_seq_in - 2) == seq) {
  ------------------
  |  Branch (4281:13): [True: 201, False: 1.53k]
  ------------------
 4282|       |		/*
 4283|       |		 * two seq back, just echo back last action since my
 4284|       |		 * response was lost.
 4285|       |		 */
 4286|    201|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4287|  1.53k|	} else {
 4288|  1.53k|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|  1.53k|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4289|  1.53k|	}
 4290|  2.48k|}
sctp_input.c:sctp_handle_str_reset_add_out_strm:
 4295|  1.15k|{
 4296|       |	/*
 4297|       |	 * Peer is requesting to add more streams.
 4298|       |	 * If its within our max-streams we will
 4299|       |	 * allow it.
 4300|       |	 */
 4301|  1.15k|	uint16_t num_stream;
 4302|  1.15k|	uint32_t seq;
 4303|  1.15k|	struct sctp_association *asoc = &stcb->asoc;
 4304|       |
 4305|       |	/* Get the number. */
 4306|  1.15k|	seq = ntohl(str_add->request_seq);
 4307|  1.15k|	num_stream = ntohs(str_add->number_of_streams);
 4308|       |	/* Now what would be the new total? */
 4309|  1.15k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4309:6): [True: 135, False: 1.01k]
  ------------------
 4310|    135|		stcb->asoc.last_reset_action[1] = stcb->asoc.last_reset_action[0];
 4311|    135|		if ((asoc->local_strreset_support & SCTP_ENABLE_CHANGE_ASSOC_REQ) == 0) {
  ------------------
  |  |  182|    135|#define SCTP_ENABLE_CHANGE_ASSOC_REQ 	0x00000004
  ------------------
  |  Branch (4311:7): [True: 0, False: 135]
  ------------------
 4312|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4313|    135|		} else if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (4313:14): [True: 19, False: 116]
  ------------------
 4314|       |			/* We must reject it we have something pending */
 4315|     19|			stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_ERR_IN_PROGRESS;
  ------------------
  |  |  482|     19|#define SCTP_STREAM_RESET_RESULT_ERR_IN_PROGRESS 0x00000004
  ------------------
 4316|    116|		} else {
 4317|       |			/* Ok, we can do that :-) */
 4318|    116|			int mychk;
 4319|    116|			mychk = stcb->asoc.streamoutcnt;
 4320|    116|			mychk += num_stream;
 4321|    116|			if (mychk < 0x10000) {
  ------------------
  |  Branch (4321:8): [True: 110, False: 6]
  ------------------
 4322|    110|				stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|    110|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4323|    110|				if (sctp_send_str_reset_req(stcb, 0, NULL, 0, 0, 1, num_stream, 0, 1)) {
  ------------------
  |  Branch (4323:9): [True: 0, False: 110]
  ------------------
 4324|      0|					stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4325|      0|				}
 4326|    110|			} else {
 4327|      6|				stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      6|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4328|      6|			}
 4329|    116|		}
 4330|    135|		sctp_add_stream_reset_result(chk, seq, stcb->asoc.last_reset_action[0]);
 4331|    135|		asoc->str_reset_seq_in++;
 4332|  1.01k|	} else if ((asoc->str_reset_seq_in - 1) == seq) {
  ------------------
  |  Branch (4332:13): [True: 188, False: 830]
  ------------------
 4333|       |		/*
 4334|       |		 * one seq back, just echo back last action since my
 4335|       |		 * response was lost.
 4336|       |		 */
 4337|    188|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4338|    830|	} else if ((asoc->str_reset_seq_in - 2) == seq) {
  ------------------
  |  Branch (4338:13): [True: 270, False: 560]
  ------------------
 4339|       |		/*
 4340|       |		 * two seq back, just echo back last action since my
 4341|       |		 * response was lost.
 4342|       |		 */
 4343|    270|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4344|    560|	} else {
 4345|    560|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|    560|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4346|    560|	}
 4347|  1.15k|}
sctp_input.c:sctp_handle_str_reset_request_in:
 3995|  8.65k|{
 3996|  8.65k|	uint32_t seq;
 3997|  8.65k|	int len, i;
 3998|  8.65k|	int number_entries;
 3999|  8.65k|	uint16_t temp;
 4000|       |
 4001|       |	/*
 4002|       |	 * peer wants me to send a str-reset to him for my outgoing seq's if
 4003|       |	 * seq_in is right.
 4004|       |	 */
 4005|  8.65k|	struct sctp_association *asoc = &stcb->asoc;
 4006|       |
 4007|  8.65k|	seq = ntohl(req->request_seq);
 4008|  8.65k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4008:6): [True: 300, False: 8.35k]
  ------------------
 4009|    300|		asoc->last_reset_action[1] = asoc->last_reset_action[0];
 4010|    300|		if ((asoc->local_strreset_support & SCTP_ENABLE_RESET_STREAM_REQ) == 0) {
  ------------------
  |  |  180|    300|#define SCTP_ENABLE_RESET_STREAM_REQ 	0x00000001
  ------------------
  |  Branch (4010:7): [True: 0, False: 300]
  ------------------
 4011|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4012|    300|		} else if (trunc) {
  ------------------
  |  Branch (4012:14): [True: 1, False: 299]
  ------------------
 4013|       |			/* Can't do it, since they exceeded our buffer size  */
 4014|      1|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      1|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4015|    299|		} else if (stcb->asoc.stream_reset_out_is_outstanding == 0) {
  ------------------
  |  Branch (4015:14): [True: 299, False: 0]
  ------------------
 4016|    299|			len = ntohs(req->ph.param_length);
 4017|    299|			number_entries = ((len - sizeof(struct sctp_stream_reset_in_request)) / sizeof(uint16_t));
 4018|    299|			if (number_entries) {
  ------------------
  |  Branch (4018:8): [True: 212, False: 87]
  ------------------
 4019|  1.30k|				for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (4019:17): [True: 1.12k, False: 180]
  ------------------
 4020|  1.12k|					temp = ntohs(req->list_of_streams[i]);
 4021|  1.12k|					if (temp >= stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (4021:10): [True: 32, False: 1.09k]
  ------------------
 4022|     32|						asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|     32|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4023|     32|						goto bad_boy;
 4024|     32|					}
 4025|  1.09k|					req->list_of_streams[i] = temp;
 4026|  1.09k|				}
 4027|  1.25k|				for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (4027:17): [True: 1.07k, False: 180]
  ------------------
 4028|  1.07k|					if (stcb->asoc.strmout[req->list_of_streams[i]].state == SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|  1.07k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (4028:10): [True: 706, False: 369]
  ------------------
 4029|    706|						stcb->asoc.strmout[req->list_of_streams[i]].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|    706|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 4030|    706|					}
 4031|  1.07k|				}
 4032|    180|			} else {
 4033|       |				/* Its all */
 4034|  22.4k|				for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (4034:17): [True: 22.3k, False: 87]
  ------------------
 4035|  22.3k|					if (stcb->asoc.strmout[i].state == SCTP_STREAM_OPEN)
  ------------------
  |  |  670|  22.3k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (4035:10): [True: 19.6k, False: 2.75k]
  ------------------
 4036|  19.6k|						stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|  19.6k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 4037|  22.3k|				}
 4038|     87|			}
 4039|    267|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|    267|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4040|    267|		} else {
 4041|       |			/* Can't do it, since we have sent one out */
 4042|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_ERR_IN_PROGRESS;
  ------------------
  |  |  482|      0|#define SCTP_STREAM_RESET_RESULT_ERR_IN_PROGRESS 0x00000004
  ------------------
 4043|      0|		}
 4044|    300|	bad_boy:
 4045|    300|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4046|    300|		asoc->str_reset_seq_in++;
 4047|  8.35k|	} else if (asoc->str_reset_seq_in - 1 == seq) {
  ------------------
  |  Branch (4047:13): [True: 624, False: 7.73k]
  ------------------
 4048|    624|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4049|  7.73k|	} else if (asoc->str_reset_seq_in - 2 == seq) {
  ------------------
  |  Branch (4049:13): [True: 1.29k, False: 6.44k]
  ------------------
 4050|  1.29k|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4051|  6.44k|	} else {
 4052|  6.44k|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|  6.44k|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4053|  6.44k|	}
 4054|  8.65k|	sctp_send_stream_reset_out_if_possible(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  8.65k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4055|  8.65k|}
sctp_input.c:sctp_handle_str_reset_request_tsn:
 4061|    530|{
 4062|       |	/* reset all in and out and update the tsn */
 4063|       |	/*
 4064|       |	 * A) reset my str-seq's on in and out. B) Select a receive next,
 4065|       |	 * and set cum-ack to it. Also process this selected number as a
 4066|       |	 * fwd-tsn as well. C) set in the response my next sending seq.
 4067|       |	 */
 4068|    530|	struct sctp_forward_tsn_chunk fwdtsn;
 4069|    530|	struct sctp_association *asoc = &stcb->asoc;
 4070|    530|	int abort_flag = 0;
 4071|    530|	uint32_t seq;
 4072|       |
 4073|    530|	seq = ntohl(req->request_seq);
 4074|    530|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4074:6): [True: 68, False: 462]
  ------------------
 4075|     68|		asoc->last_reset_action[1] = stcb->asoc.last_reset_action[0];
 4076|     68|		if ((asoc->local_strreset_support & SCTP_ENABLE_CHANGE_ASSOC_REQ) == 0) {
  ------------------
  |  |  182|     68|#define SCTP_ENABLE_CHANGE_ASSOC_REQ 	0x00000004
  ------------------
  |  Branch (4076:7): [True: 0, False: 68]
  ------------------
 4077|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4078|     68|		} else {
 4079|     68|			fwdtsn.ch.chunk_length = htons(sizeof(struct sctp_forward_tsn_chunk));
 4080|     68|			fwdtsn.ch.chunk_type = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|     68|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
 4081|     68|			fwdtsn.ch.chunk_flags = 0;
 4082|     68|			fwdtsn.new_cumulative_tsn = htonl(stcb->asoc.highest_tsn_inside_map + 1);
 4083|     68|			sctp_handle_forward_tsn(stcb, &fwdtsn, &abort_flag, NULL, 0);
 4084|     68|			if (abort_flag) {
  ------------------
  |  Branch (4084:8): [True: 0, False: 68]
  ------------------
 4085|      0|				return (1);
 4086|      0|			}
 4087|     68|			asoc->highest_tsn_inside_map += SCTP_STREAM_RESET_TSN_DELTA;
  ------------------
  |  |  411|     68|#define SCTP_STREAM_RESET_TSN_DELTA	0x1000
  ------------------
 4088|     68|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|     68|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|     68|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (4088:8): [True: 0, False: 68]
  ------------------
 4089|      0|				sctp_log_map(0, 10, asoc->highest_tsn_inside_map, SCTP_MAP_SLIDE_RESULT);
  ------------------
  |  |  128|      0|#define SCTP_MAP_SLIDE_RESULT       23
  ------------------
 4090|      0|			}
 4091|     68|			asoc->tsn_last_delivered = asoc->cumulative_tsn = asoc->highest_tsn_inside_map;
 4092|     68|			asoc->mapping_array_base_tsn = asoc->highest_tsn_inside_map + 1;
 4093|     68|			memset(asoc->mapping_array, 0, asoc->mapping_array_size);
 4094|     68|			asoc->highest_tsn_inside_nr_map = asoc->highest_tsn_inside_map;
 4095|     68|			memset(asoc->nr_mapping_array, 0, asoc->mapping_array_size);
 4096|     68|			atomic_add_int(&asoc->sending_seq, 1);
  ------------------
  |  |   94|     68|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4097|       |			/* save off historical data for retrans */
 4098|     68|			asoc->last_sending_seq[1] = asoc->last_sending_seq[0];
 4099|     68|			asoc->last_sending_seq[0] = asoc->sending_seq;
 4100|     68|			asoc->last_base_tsnsent[1] = asoc->last_base_tsnsent[0];
 4101|     68|			asoc->last_base_tsnsent[0] = asoc->mapping_array_base_tsn;
 4102|     68|			sctp_reset_out_streams(stcb, 0, (uint16_t *) NULL);
 4103|     68|			sctp_reset_in_stream(stcb, 0, (uint16_t *) NULL);
 4104|     68|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|     68|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4105|     68|			sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  726|     68|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     68|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4106|     68|		}
 4107|     68|		sctp_add_stream_reset_result_tsn(chk, seq, asoc->last_reset_action[0],
 4108|     68|		                                 asoc->last_sending_seq[0], asoc->last_base_tsnsent[0]);
 4109|     68|		asoc->str_reset_seq_in++;
 4110|    462|	} else if (asoc->str_reset_seq_in - 1 == seq) {
  ------------------
  |  Branch (4110:13): [True: 214, False: 248]
  ------------------
 4111|    214|		sctp_add_stream_reset_result_tsn(chk, seq, asoc->last_reset_action[0],
 4112|    214|		                                 asoc->last_sending_seq[0], asoc->last_base_tsnsent[0]);
 4113|    248|	} else if (asoc->str_reset_seq_in - 2 == seq) {
  ------------------
  |  Branch (4113:13): [True: 69, False: 179]
  ------------------
 4114|     69|		sctp_add_stream_reset_result_tsn(chk, seq, asoc->last_reset_action[1],
 4115|     69|		                                 asoc->last_sending_seq[1], asoc->last_base_tsnsent[1]);
 4116|    179|	} else {
 4117|    179|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|    179|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4118|    179|	}
 4119|    530|	return (0);
 4120|    530|}
sctp_input.c:sctp_handle_packet_dropped:
 4532|  8.88k|{
 4533|  8.88k|	struct sctp_chunk_desc desc;
 4534|  8.88k|	struct sctp_chunkhdr *chk_hdr;
 4535|  8.88k|	struct sctp_data_chunk *data_chunk;
 4536|  8.88k|	struct sctp_idata_chunk *idata_chunk;
 4537|  8.88k|	uint32_t bottle_bw, on_queue;
 4538|  8.88k|	uint32_t offset, chk_len;
 4539|  8.88k|	uint16_t pktdrp_len;
 4540|  8.88k|	uint8_t pktdrp_flags;
 4541|       |
 4542|  8.88k|	KASSERT(sizeof(struct sctp_pktdrop_chunk) <= limit,
  ------------------
  |  |  112|  8.88k|	do {                         \
  |  |  113|  8.88k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 8.88k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  8.88k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 8.88k]
  |  |  ------------------
  ------------------
 4543|  8.88k|	        ("PKTDROP chunk too small"));
 4544|  8.88k|	pktdrp_flags = cp->ch.chunk_flags;
 4545|  8.88k|	pktdrp_len = ntohs(cp->ch.chunk_length);
 4546|  8.88k|	KASSERT(limit <= pktdrp_len, ("Inconsistent limit"));
  ------------------
  |  |  112|  8.88k|	do {                         \
  |  |  113|  8.88k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 8.88k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  8.88k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 8.88k]
  |  |  ------------------
  ------------------
 4547|  8.88k|	if (pktdrp_flags & SCTP_PACKET_TRUNCATED) {
  ------------------
  |  |  498|  8.88k|#define SCTP_PACKET_TRUNCATED	0x04
  ------------------
  |  Branch (4547:6): [True: 5.55k, False: 3.33k]
  ------------------
 4548|  5.55k|		if (ntohs(cp->trunc_len) <= pktdrp_len - sizeof(struct sctp_pktdrop_chunk)) {
  ------------------
  |  Branch (4548:7): [True: 359, False: 5.19k]
  ------------------
 4549|       |			/* The peer plays games with us. */
 4550|    359|			return;
 4551|    359|		}
 4552|  5.55k|	}
 4553|  8.52k|	limit -= sizeof(struct sctp_pktdrop_chunk);
 4554|  8.52k|	offset = 0;
 4555|  8.52k|	if (offset == limit) {
  ------------------
  |  Branch (4555:6): [True: 1.02k, False: 7.50k]
  ------------------
 4556|  1.02k|		if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|  1.02k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  1.02k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4556:7): [True: 602, False: 419]
  ------------------
 4557|    602|			SCTP_STAT_INCR(sctps_pdrpbwrpt);
  ------------------
  |  | 1112|    602|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    602|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    602|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4558|    602|		}
 4559|  7.50k|	} else if (offset + sizeof(struct sctphdr) > limit) {
  ------------------
  |  Branch (4559:13): [True: 589, False: 6.91k]
  ------------------
 4560|       |		/* Only a partial SCTP common header. */
 4561|    589|		SCTP_STAT_INCR(sctps_pdrpcrupt);
  ------------------
  |  | 1112|    589|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    589|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    589|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4562|    589|		offset = limit;
 4563|  6.91k|	} else {
 4564|       |		/* XXX: Check embedded SCTP common header. */
 4565|  6.91k|		offset += sizeof(struct sctphdr);
 4566|  6.91k|	}
 4567|       |	/* Now parse through the chunks themselves. */
 4568|  71.8k|	while (offset < limit) {
  ------------------
  |  Branch (4568:9): [True: 65.6k, False: 6.24k]
  ------------------
 4569|  65.6k|		if (offset + sizeof(struct sctp_chunkhdr) > limit) {
  ------------------
  |  Branch (4569:7): [True: 327, False: 65.2k]
  ------------------
 4570|    327|			SCTP_STAT_INCR(sctps_pdrpcrupt);
  ------------------
  |  | 1112|    327|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    327|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    327|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4571|    327|			break;
 4572|    327|		}
 4573|  65.2k|		chk_hdr = (struct sctp_chunkhdr *)(cp->data + offset);
 4574|  65.2k|		desc.chunk_type = chk_hdr->chunk_type;
 4575|       |		/* get amount we need to move */
 4576|  65.2k|		chk_len = (uint32_t)ntohs(chk_hdr->chunk_length);
 4577|  65.2k|		if (chk_len < sizeof(struct sctp_chunkhdr)) {
  ------------------
  |  Branch (4577:7): [True: 651, False: 64.6k]
  ------------------
 4578|       |			/* Someone is lying... */
 4579|    651|			break;
 4580|    651|		}
 4581|  64.6k|		if (desc.chunk_type == SCTP_DATA) {
  ------------------
  |  |  454|  64.6k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (4581:7): [True: 1.38k, False: 63.2k]
  ------------------
 4582|  1.38k|			if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (4582:8): [True: 209, False: 1.17k]
  ------------------
 4583|       |				/* Some is playing games with us. */
 4584|    209|				break;
 4585|    209|			}
 4586|  1.17k|			if (chk_len <= sizeof(struct sctp_data_chunk)) {
  ------------------
  |  Branch (4586:8): [True: 203, False: 970]
  ------------------
 4587|       |				/* Some is playing games with us. */
 4588|    203|				break;
 4589|    203|			}
 4590|    970|			if (chk_len < sizeof(struct sctp_data_chunk) + SCTP_NUM_DB_TO_VERIFY) {
  ------------------
  |  |  414|    970|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4590:8): [True: 76, False: 894]
  ------------------
 4591|       |				/* Not enough data bytes available in the chunk. */
 4592|     76|				SCTP_STAT_INCR(sctps_pdrpnedat);
  ------------------
  |  | 1112|     76|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     76|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     76|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4593|     76|				goto next_chunk;
 4594|     76|			}
 4595|    894|			if (offset + sizeof(struct sctp_data_chunk) + SCTP_NUM_DB_TO_VERIFY > limit) {
  ------------------
  |  |  414|    894|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4595:8): [True: 425, False: 469]
  ------------------
 4596|       |				/* Not enough data in buffer. */
 4597|    425|				break;
 4598|    425|			}
 4599|    469|			data_chunk = (struct sctp_data_chunk *)(cp->data + offset);
 4600|    469|			memcpy(desc.data_bytes, data_chunk + 1, SCTP_NUM_DB_TO_VERIFY);
  ------------------
  |  |  414|    469|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 4601|    469|			desc.tsn_ifany = data_chunk->dp.tsn;
 4602|    469|			if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|    469|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|    469|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4602:8): [True: 227, False: 242]
  ------------------
 4603|    227|				SCTP_STAT_INCR(sctps_pdrpmbda);
  ------------------
  |  | 1112|    227|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    227|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    227|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4604|    227|			}
 4605|  63.2k|		} else if (desc.chunk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  63.2k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (4605:14): [True: 1.43k, False: 61.8k]
  ------------------
 4606|  1.43k|			if (!stcb->asoc.idata_supported) {
  ------------------
  |  Branch (4606:8): [True: 239, False: 1.19k]
  ------------------
 4607|       |				/* Some is playing games with us. */
 4608|    239|				break;
 4609|    239|			}
 4610|  1.19k|			if (chk_len <= sizeof(struct sctp_idata_chunk)) {
  ------------------
  |  Branch (4610:8): [True: 93, False: 1.10k]
  ------------------
 4611|       |				/* Some is playing games with us. */
 4612|     93|				break;
 4613|     93|			}
 4614|  1.10k|			if (chk_len < sizeof(struct sctp_idata_chunk) + SCTP_NUM_DB_TO_VERIFY) {
  ------------------
  |  |  414|  1.10k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4614:8): [True: 76, False: 1.02k]
  ------------------
 4615|       |				/* Not enough data bytes available in the chunk. */
 4616|     76|				SCTP_STAT_INCR(sctps_pdrpnedat);
  ------------------
  |  | 1112|     76|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     76|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     76|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4617|     76|				goto next_chunk;
 4618|     76|			}
 4619|  1.02k|			if (offset + sizeof(struct sctp_idata_chunk) + SCTP_NUM_DB_TO_VERIFY > limit) {
  ------------------
  |  |  414|  1.02k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4619:8): [True: 133, False: 892]
  ------------------
 4620|       |				/* Not enough data in buffer. */
 4621|    133|				break;
 4622|    133|			}
 4623|    892|			idata_chunk = (struct sctp_idata_chunk *)(cp->data + offset);
 4624|    892|			memcpy(desc.data_bytes, idata_chunk + 1, SCTP_NUM_DB_TO_VERIFY);
  ------------------
  |  |  414|    892|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 4625|    892|			desc.tsn_ifany = idata_chunk->dp.tsn;
 4626|    892|			if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|    892|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|    892|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4626:8): [True: 443, False: 449]
  ------------------
 4627|    443|				SCTP_STAT_INCR(sctps_pdrpmbda);
  ------------------
  |  | 1112|    443|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    443|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    443|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4628|    443|			}
 4629|  61.8k|		} else {
 4630|  61.8k|			desc.tsn_ifany = htonl(0);
 4631|  61.8k|			memset(desc.data_bytes, 0, SCTP_NUM_DB_TO_VERIFY);
  ------------------
  |  |  414|  61.8k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 4632|  61.8k|			if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|  61.8k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  61.8k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4632:8): [True: 53.0k, False: 8.79k]
  ------------------
 4633|  53.0k|				SCTP_STAT_INCR(sctps_pdrpmbct);
  ------------------
  |  | 1112|  53.0k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  53.0k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  53.0k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4634|  53.0k|			}
 4635|  61.8k|		}
 4636|  63.1k|		if (process_chunk_drop(stcb, &desc, net, pktdrp_flags)) {
  ------------------
  |  Branch (4636:7): [True: 0, False: 63.1k]
  ------------------
 4637|      0|			SCTP_STAT_INCR(sctps_pdrppdbrk);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4638|      0|			break;
 4639|      0|		}
 4640|  63.3k|next_chunk:
 4641|  63.3k|		offset += SCTP_SIZE32(chk_len);
  ------------------
  |  |  383|  63.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4642|  63.3k|	}
 4643|       |	/* Now update any rwnd --- possibly */
 4644|  8.52k|	if ((pktdrp_flags & SCTP_FROM_MIDDLE_BOX) == 0) {
  ------------------
  |  |  496|  8.52k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  8.52k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4644:6): [True: 4.12k, False: 4.40k]
  ------------------
 4645|       |		/* From a peer, we get a rwnd report */
 4646|  4.12k|		uint32_t a_rwnd;
 4647|       |
 4648|  4.12k|		SCTP_STAT_INCR(sctps_pdrpfehos);
  ------------------
  |  | 1112|  4.12k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  4.12k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  4.12k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4649|       |
 4650|  4.12k|		bottle_bw = ntohl(cp->bottle_bw);
 4651|  4.12k|		on_queue = ntohl(cp->current_onq);
 4652|  4.12k|		if (bottle_bw && on_queue) {
  ------------------
  |  Branch (4652:7): [True: 3.67k, False: 442]
  |  Branch (4652:20): [True: 3.46k, False: 218]
  ------------------
 4653|       |			/* a rwnd report is in here */
 4654|  3.46k|			if (bottle_bw > on_queue)
  ------------------
  |  Branch (4654:8): [True: 2.00k, False: 1.45k]
  ------------------
 4655|  2.00k|				a_rwnd = bottle_bw - on_queue;
 4656|  1.45k|			else
 4657|  1.45k|				a_rwnd = 0;
 4658|       |
 4659|  3.46k|			if (a_rwnd == 0)
  ------------------
  |  Branch (4659:8): [True: 1.45k, False: 2.00k]
  ------------------
 4660|  1.45k|				stcb->asoc.peers_rwnd = 0;
 4661|  2.00k|			else {
 4662|  2.00k|				if (a_rwnd > stcb->asoc.total_flight) {
  ------------------
  |  Branch (4662:9): [True: 2.00k, False: 0]
  ------------------
 4663|  2.00k|					stcb->asoc.peers_rwnd =
 4664|  2.00k|					    a_rwnd - stcb->asoc.total_flight;
 4665|  2.00k|				} else {
 4666|      0|					stcb->asoc.peers_rwnd = 0;
 4667|      0|				}
 4668|  2.00k|				if (stcb->asoc.peers_rwnd <
  ------------------
  |  Branch (4668:9): [True: 323, False: 1.68k]
  ------------------
 4669|  2.00k|				    stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
 4670|       |					/* SWS sender side engages */
 4671|    323|					stcb->asoc.peers_rwnd = 0;
 4672|    323|				}
 4673|  2.00k|			}
 4674|  3.46k|		}
 4675|  4.40k|	} else {
 4676|  4.40k|		SCTP_STAT_INCR(sctps_pdrpfmbox);
  ------------------
  |  | 1112|  4.40k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  4.40k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  4.40k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4677|  4.40k|	}
 4678|       |
 4679|       |	/* now middle boxes in sat networks get a cwnd bump */
 4680|  8.52k|	if ((pktdrp_flags & SCTP_FROM_MIDDLE_BOX) &&
  ------------------
  |  |  496|  8.52k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  8.52k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4680:6): [True: 4.40k, False: 4.12k]
  ------------------
 4681|  4.40k|	    (stcb->asoc.sat_t3_loss_recovery == 0) &&
  ------------------
  |  Branch (4681:6): [True: 4.40k, False: 0]
  ------------------
 4682|  4.40k|	    (stcb->asoc.sat_network)) {
  ------------------
  |  Branch (4682:6): [True: 0, False: 4.40k]
  ------------------
 4683|       |		/*
 4684|       |		 * This is debatable but for sat networks it makes sense
 4685|       |		 * Note if a T3 timer has went off, we will prohibit any
 4686|       |		 * changes to cwnd until we exit the t3 loss recovery.
 4687|       |		 */
 4688|      0|		stcb->asoc.cc_functions.sctp_cwnd_update_after_packet_dropped(stcb,
 4689|      0|			net, cp, &bottle_bw, &on_queue);
 4690|      0|	}
 4691|  8.52k|}
sctp_input.c:process_chunk_drop:
 3463|  63.1k|{
 3464|  63.1k|	switch (desc->chunk_type) {
 3465|    469|	case SCTP_DATA:
  ------------------
  |  |  454|    469|#define SCTP_DATA		0x00
  ------------------
  |  Branch (3465:2): [True: 469, False: 62.7k]
  ------------------
 3466|  1.36k|	case SCTP_IDATA:
  ------------------
  |  |  474|  1.36k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (3466:2): [True: 892, False: 62.2k]
  ------------------
 3467|       |		/* find the tsn to resend (possibly) */
 3468|  1.36k|	{
 3469|  1.36k|		uint32_t tsn;
 3470|  1.36k|		struct sctp_tmit_chunk *tp1;
 3471|       |
 3472|  1.36k|		tsn = ntohl(desc->tsn_ifany);
 3473|  1.36k|		TAILQ_FOREACH(tp1, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3473:3): [True: 0, False: 1.36k]
  ------------------
 3474|      0|			if (tp1->rec.data.tsn == tsn) {
  ------------------
  |  Branch (3474:8): [True: 0, False: 0]
  ------------------
 3475|       |				/* found it */
 3476|      0|				break;
 3477|      0|			}
 3478|      0|			if (SCTP_TSN_GT(tp1->rec.data.tsn, tsn)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3479|       |				/* not found */
 3480|      0|				tp1 = NULL;
 3481|      0|				break;
 3482|      0|			}
 3483|      0|		}
 3484|  1.36k|		if (tp1 == NULL) {
  ------------------
  |  Branch (3484:7): [True: 1.36k, False: 0]
  ------------------
 3485|       |			/*
 3486|       |			 * Do it the other way , aka without paying
 3487|       |			 * attention to queue seq order.
 3488|       |			 */
 3489|  1.36k|			SCTP_STAT_INCR(sctps_pdrpdnfnd);
  ------------------
  |  | 1112|  1.36k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.36k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.36k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3490|  1.36k|			TAILQ_FOREACH(tp1, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3490:4): [True: 0, False: 1.36k]
  ------------------
 3491|      0|				if (tp1->rec.data.tsn == tsn) {
  ------------------
  |  Branch (3491:9): [True: 0, False: 0]
  ------------------
 3492|       |					/* found it */
 3493|      0|					break;
 3494|      0|				}
 3495|      0|			}
 3496|  1.36k|		}
 3497|  1.36k|		if (tp1 == NULL) {
  ------------------
  |  Branch (3497:7): [True: 1.36k, False: 0]
  ------------------
 3498|  1.36k|			SCTP_STAT_INCR(sctps_pdrptsnnf);
  ------------------
  |  | 1112|  1.36k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.36k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.36k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3499|  1.36k|		}
 3500|  1.36k|		if ((tp1) && (tp1->sent < SCTP_DATAGRAM_ACKED)) {
  ------------------
  |  |  355|      0|#define SCTP_DATAGRAM_ACKED		10010
  ------------------
  |  Branch (3500:7): [True: 0, False: 1.36k]
  |  Branch (3500:16): [True: 0, False: 0]
  ------------------
 3501|      0|			if (((flg & SCTP_BADCRC) == 0) &&
  ------------------
  |  |  497|      0|#define SCTP_BADCRC		0x02
  ------------------
  |  Branch (3501:8): [True: 0, False: 0]
  ------------------
 3502|      0|			    ((flg & SCTP_FROM_MIDDLE_BOX) == 0)) {
  ------------------
  |  |  496|      0|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|      0|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (3502:8): [True: 0, False: 0]
  ------------------
 3503|      0|				return (0);
 3504|      0|			}
 3505|      0|			if ((stcb->asoc.peers_rwnd == 0) &&
  ------------------
  |  Branch (3505:8): [True: 0, False: 0]
  ------------------
 3506|      0|			    ((flg & SCTP_FROM_MIDDLE_BOX) == 0)) {
  ------------------
  |  |  496|      0|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|      0|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (3506:8): [True: 0, False: 0]
  ------------------
 3507|      0|				SCTP_STAT_INCR(sctps_pdrpdiwnp);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3508|      0|				return (0);
 3509|      0|			}
 3510|      0|			if (stcb->asoc.peers_rwnd == 0 &&
  ------------------
  |  Branch (3510:8): [True: 0, False: 0]
  ------------------
 3511|      0|			    (flg & SCTP_FROM_MIDDLE_BOX)) {
  ------------------
  |  |  496|      0|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|      0|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (3511:8): [True: 0, False: 0]
  ------------------
 3512|      0|				SCTP_STAT_INCR(sctps_pdrpdizrw);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3513|      0|				return (0);
 3514|      0|			}
 3515|      0|			if ((uint32_t)SCTP_BUF_LEN(tp1->data) <
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3515:8): [True: 0, False: 0]
  ------------------
 3516|      0|			    SCTP_DATA_CHUNK_OVERHEAD(stcb) + SCTP_NUM_DB_TO_VERIFY) {
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
              			    SCTP_DATA_CHUNK_OVERHEAD(stcb) + SCTP_NUM_DB_TO_VERIFY) {
  ------------------
  |  |  414|      0|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 3517|       |				/* Payload not matching. */
 3518|      0|				SCTP_STAT_INCR(sctps_pdrpbadd);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3519|      0|				return (-1);
 3520|      0|			}
 3521|      0|			if (memcmp(mtod(tp1->data, caddr_t) + SCTP_DATA_CHUNK_OVERHEAD(stcb),
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			if (memcmp(mtod(tp1->data, caddr_t) + SCTP_DATA_CHUNK_OVERHEAD(stcb),
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
  |  Branch (3521:8): [True: 0, False: 0]
  ------------------
 3522|      0|			           desc->data_bytes, SCTP_NUM_DB_TO_VERIFY) != 0) {
  ------------------
  |  |  414|      0|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 3523|       |				/* Payload not matching. */
 3524|      0|				SCTP_STAT_INCR(sctps_pdrpbadd);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3525|      0|				return (-1);
 3526|      0|			}
 3527|      0|			if (tp1->do_rtt) {
  ------------------
  |  Branch (3527:8): [True: 0, False: 0]
  ------------------
 3528|       |				/*
 3529|       |				 * this guy had a RTO calculation
 3530|       |				 * pending on it, cancel it
 3531|       |				 */
 3532|      0|				if (tp1->whoTo->rto_needed == 0) {
  ------------------
  |  Branch (3532:9): [True: 0, False: 0]
  ------------------
 3533|      0|					tp1->whoTo->rto_needed = 1;
 3534|      0|				}
 3535|      0|				tp1->do_rtt = 0;
 3536|      0|			}
 3537|      0|			SCTP_STAT_INCR(sctps_pdrpmark);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3538|      0|			if (tp1->sent != SCTP_DATAGRAM_RESEND)
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3538:8): [True: 0, False: 0]
  ------------------
 3539|      0|				sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt);
  ------------------
  |  |  266|      0|#define sctp_ucount_incr(val) { \
  |  |  267|      0|	val++; \
  |  |  268|      0|}
  ------------------
 3540|       |			/*
 3541|       |			 * mark it as if we were doing a FR, since
 3542|       |			 * we will be getting gap ack reports behind
 3543|       |			 * the info from the router.
 3544|       |			 */
 3545|      0|			tp1->rec.data.doing_fast_retransmit = 1;
 3546|       |			/*
 3547|       |			 * mark the tsn with what sequences can
 3548|       |			 * cause a new FR.
 3549|       |			 */
 3550|      0|			if (TAILQ_EMPTY(&stcb->asoc.send_queue)) {
  ------------------
  |  Branch (3550:8): [True: 0, False: 0]
  ------------------
 3551|      0|				tp1->rec.data.fast_retran_tsn = stcb->asoc.sending_seq;
 3552|      0|			} else {
 3553|      0|				tp1->rec.data.fast_retran_tsn = (TAILQ_FIRST(&stcb->asoc.send_queue))->rec.data.tsn;
 3554|      0|			}
 3555|       |
 3556|       |			/* restart the timer */
 3557|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 3558|      0|					stcb, tp1->whoTo,
 3559|      0|			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_26);
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_26);
  ------------------
  |  |  794|      0|#define SCTP_LOC_26 0x0000001a
  ------------------
 3560|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 3561|      0|					 stcb, tp1->whoTo);
 3562|       |
 3563|       |			/* fix counts and things */
 3564|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  646|      0|#define SCTP_FLIGHT_LOGGING_ENABLE			0x00000020
  ------------------
  |  Branch (3564:8): [True: 0, False: 0]
  ------------------
 3565|      0|				sctp_misc_ints(SCTP_FLIGHT_LOG_DOWN_PDRP,
  ------------------
  |  |  219|      0|#define SCTP_FLIGHT_LOG_DOWN_PDRP  115
  ------------------
 3566|      0|					       tp1->whoTo->flight_size,
 3567|      0|					       tp1->book_size,
 3568|      0|					       (uint32_t)(uintptr_t)stcb,
 3569|      0|					       tp1->rec.data.tsn);
 3570|      0|			}
 3571|      0|			if (tp1->sent < SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3571:8): [True: 0, False: 0]
  ------------------
 3572|      0|				sctp_flight_size_decrease(tp1);
  ------------------
  |  |  289|      0|#define sctp_flight_size_decrease(tp1) do { \
  |  |  290|      0|	if (tp1->whoTo->flight_size >= tp1->book_size) \
  |  |  ------------------
  |  |  |  Branch (290:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  291|      0|		tp1->whoTo->flight_size -= tp1->book_size; \
  |  |  292|      0|	else \
  |  |  293|      0|		tp1->whoTo->flight_size = 0; \
  |  |  294|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (294:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 3573|      0|				sctp_total_flight_decrease(stcb, tp1);
  ------------------
  |  |  338|      0|#define sctp_total_flight_decrease(stcb, tp1) do { \
  |  |  339|      0|	tp1->window_probe = 0; \
  |  |  340|      0|	if (stcb->asoc.total_flight >= tp1->book_size) { \
  |  |  ------------------
  |  |  |  Branch (340:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  341|      0|		stcb->asoc.total_flight -= tp1->book_size; \
  |  |  342|      0|		if (stcb->asoc.total_flight_count > 0) \
  |  |  ------------------
  |  |  |  Branch (342:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  343|      0|			stcb->asoc.total_flight_count--; \
  |  |  344|      0|	} else { \
  |  |  345|      0|		stcb->asoc.total_flight = 0; \
  |  |  346|      0|		stcb->asoc.total_flight_count = 0; \
  |  |  347|      0|	} \
  |  |  348|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (348:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 3574|      0|			}
 3575|      0|			tp1->sent = SCTP_DATAGRAM_RESEND;
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
 3576|  1.36k|		} {
 3577|       |			/* audit code */
 3578|  1.36k|			unsigned int audit;
 3579|       |
 3580|  1.36k|			audit = 0;
 3581|  1.36k|			TAILQ_FOREACH(tp1, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3581:4): [True: 0, False: 1.36k]
  ------------------
 3582|      0|				if (tp1->sent == SCTP_DATAGRAM_RESEND)
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3582:9): [True: 0, False: 0]
  ------------------
 3583|      0|					audit++;
 3584|      0|			}
 3585|  1.36k|			TAILQ_FOREACH(tp1, &stcb->asoc.control_send_queue,
  ------------------
  |  Branch (3585:4): [True: 6.22k, False: 1.36k]
  ------------------
 3586|  6.22k|				      sctp_next) {
 3587|  6.22k|				if (tp1->sent == SCTP_DATAGRAM_RESEND)
  ------------------
  |  |  354|  6.22k|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3587:9): [True: 0, False: 6.22k]
  ------------------
 3588|      0|					audit++;
 3589|  6.22k|			}
 3590|  1.36k|			if (audit != stcb->asoc.sent_queue_retran_cnt) {
  ------------------
  |  Branch (3590:8): [True: 0, False: 1.36k]
  ------------------
 3591|      0|				SCTP_PRINTF("**Local Audit finds cnt:%d asoc cnt:%d\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 3592|      0|					    audit, stcb->asoc.sent_queue_retran_cnt);
 3593|      0|#ifndef SCTP_AUDITING_ENABLED
 3594|      0|				stcb->asoc.sent_queue_retran_cnt = audit;
 3595|      0|#endif
 3596|      0|			}
 3597|  1.36k|		}
 3598|  1.36k|	}
 3599|      0|	break;
 3600|  1.19k|	case SCTP_ASCONF:
  ------------------
  |  |  489|  1.19k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (3600:2): [True: 1.19k, False: 61.9k]
  ------------------
 3601|  1.19k|	{
 3602|  1.19k|		struct sctp_tmit_chunk *asconf;
 3603|       |
 3604|  1.19k|		TAILQ_FOREACH(asconf, &stcb->asoc.control_send_queue,
  ------------------
  |  Branch (3604:3): [True: 57.9k, False: 1.19k]
  ------------------
 3605|  57.9k|			      sctp_next) {
 3606|  57.9k|			if (asconf->rec.chunk_id.id == SCTP_ASCONF) {
  ------------------
  |  |  489|  57.9k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (3606:8): [True: 0, False: 57.9k]
  ------------------
 3607|      0|				break;
 3608|      0|			}
 3609|  57.9k|		}
 3610|  1.19k|		if (asconf) {
  ------------------
  |  Branch (3610:7): [True: 0, False: 1.19k]
  ------------------
 3611|      0|			if (asconf->sent != SCTP_DATAGRAM_RESEND)
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3611:8): [True: 0, False: 0]
  ------------------
 3612|      0|				sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt);
  ------------------
  |  |  266|      0|#define sctp_ucount_incr(val) { \
  |  |  267|      0|	val++; \
  |  |  268|      0|}
  ------------------
 3613|      0|			asconf->sent = SCTP_DATAGRAM_RESEND;
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
 3614|      0|			asconf->snd_count--;
 3615|      0|		}
 3616|  1.19k|	}
 3617|  1.19k|	break;
 3618|  1.31k|	case SCTP_INITIATION:
  ------------------
  |  |  455|  1.31k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (3618:2): [True: 1.31k, False: 61.8k]
  ------------------
 3619|       |		/* resend the INIT */
 3620|  1.31k|		stcb->asoc.dropped_special_cnt++;
 3621|  1.31k|		if (stcb->asoc.dropped_special_cnt < SCTP_RETRY_DROPPED_THRESH) {
  ------------------
  |  |  567|  1.31k|#define SCTP_RETRY_DROPPED_THRESH 4
  ------------------
  |  Branch (3621:7): [True: 122, False: 1.19k]
  ------------------
 3622|       |			/*
 3623|       |			 * If we can get it in, in a few attempts we do
 3624|       |			 * this, otherwise we let the timer fire.
 3625|       |			 */
 3626|    122|			sctp_timer_stop(SCTP_TIMER_TYPE_INIT, stcb->sctp_ep,
  ------------------
  |  |  533|    122|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
 3627|    122|					stcb, net,
 3628|    122|			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_27);
  ------------------
  |  |  755|    122|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_27);
  ------------------
  |  |  795|    122|#define SCTP_LOC_27 0x0000001b
  ------------------
 3629|    122|			sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    122|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3630|    122|		}
 3631|  1.31k|		break;
 3632|  5.37k|	case SCTP_SELECTIVE_ACK:
  ------------------
  |  |  457|  5.37k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (3632:2): [True: 5.37k, False: 57.8k]
  ------------------
 3633|  7.72k|	case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|  7.72k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (3633:2): [True: 2.35k, False: 60.8k]
  ------------------
 3634|       |		/* resend the sack */
 3635|  7.72k|		sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  7.72k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3636|  7.72k|		break;
 3637|  39.1k|	case SCTP_HEARTBEAT_REQUEST:
  ------------------
  |  |  458|  39.1k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (3637:2): [True: 39.1k, False: 23.9k]
  ------------------
 3638|       |		/* resend a demand HB */
 3639|  39.1k|		if ((stcb->asoc.overall_error_count + 3) < stcb->asoc.max_send_times) {
  ------------------
  |  Branch (3639:7): [True: 39.1k, False: 0]
  ------------------
 3640|       |			/* Only retransmit if we KNOW we wont destroy the tcb */
 3641|  39.1k|			sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  39.1k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3642|  39.1k|		}
 3643|  39.1k|		break;
 3644|  3.39k|	case SCTP_SHUTDOWN:
  ------------------
  |  |  461|  3.39k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (3644:2): [True: 3.39k, False: 59.7k]
  ------------------
 3645|  3.39k|		sctp_send_shutdown(stcb, net);
 3646|  3.39k|		break;
 3647|    701|	case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|    701|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (3647:2): [True: 701, False: 62.4k]
  ------------------
 3648|    701|		sctp_send_shutdown_ack(stcb, net);
 3649|    701|		break;
 3650|  1.30k|	case SCTP_COOKIE_ECHO:
  ------------------
  |  |  464|  1.30k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (3650:2): [True: 1.30k, False: 61.8k]
  ------------------
 3651|  1.30k|	{
 3652|  1.30k|		struct sctp_tmit_chunk *cookie;
 3653|       |
 3654|  1.30k|		cookie = NULL;
 3655|  1.30k|		TAILQ_FOREACH(cookie, &stcb->asoc.control_send_queue,
  ------------------
  |  Branch (3655:3): [True: 56.0k, False: 1.30k]
  ------------------
 3656|  56.0k|			      sctp_next) {
 3657|  56.0k|			if (cookie->rec.chunk_id.id == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  56.0k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (3657:8): [True: 0, False: 56.0k]
  ------------------
 3658|      0|				break;
 3659|      0|			}
 3660|  56.0k|		}
 3661|  1.30k|		if (cookie) {
  ------------------
  |  Branch (3661:7): [True: 0, False: 1.30k]
  ------------------
 3662|      0|			if (cookie->sent != SCTP_DATAGRAM_RESEND)
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3662:8): [True: 0, False: 0]
  ------------------
 3663|      0|				sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt);
  ------------------
  |  |  266|      0|#define sctp_ucount_incr(val) { \
  |  |  267|      0|	val++; \
  |  |  268|      0|}
  ------------------
 3664|      0|			cookie->sent = SCTP_DATAGRAM_RESEND;
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
 3665|      0|			sctp_stop_all_cookie_timers(stcb);
 3666|      0|		}
 3667|  1.30k|	}
 3668|  1.30k|	break;
 3669|    591|	case SCTP_COOKIE_ACK:
  ------------------
  |  |  465|    591|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (3669:2): [True: 591, False: 62.5k]
  ------------------
 3670|    591|		sctp_send_cookie_ack(stcb);
 3671|    591|		break;
 3672|    462|	case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|    462|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (3672:2): [True: 462, False: 62.7k]
  ------------------
 3673|       |		/* resend last asconf ack */
 3674|    462|		sctp_send_asconf_ack(stcb);
 3675|    462|		break;
 3676|    217|	case SCTP_IFORWARD_CUM_TSN:
  ------------------
  |  |  490|    217|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (3676:2): [True: 217, False: 62.9k]
  ------------------
 3677|    802|	case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|    802|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (3677:2): [True: 585, False: 62.6k]
  ------------------
 3678|    802|		send_forward_tsn(stcb, &stcb->asoc);
 3679|    802|		break;
 3680|       |		/* can't do anything with these */
 3681|    386|	case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|    386|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (3681:2): [True: 386, False: 62.7k]
  ------------------
 3682|    391|	case SCTP_INITIATION_ACK:	/* this should not happen */
  ------------------
  |  |  456|    391|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (3682:2): [True: 5, False: 63.1k]
  ------------------
 3683|    605|	case SCTP_HEARTBEAT_ACK:
  ------------------
  |  |  459|    605|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (3683:2): [True: 214, False: 62.9k]
  ------------------
 3684|    612|	case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|    612|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (3684:2): [True: 7, False: 63.1k]
  ------------------
 3685|  2.52k|	case SCTP_OPERATION_ERROR:
  ------------------
  |  |  463|  2.52k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (3685:2): [True: 1.91k, False: 61.2k]
  ------------------
 3686|  2.52k|	case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|  2.52k|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (3686:2): [True: 6, False: 63.1k]
  ------------------
 3687|  2.74k|	case SCTP_ECN_ECHO:
  ------------------
  |  |  466|  2.74k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (3687:2): [True: 216, False: 62.9k]
  ------------------
 3688|  2.82k|	case SCTP_ECN_CWR:
  ------------------
  |  |  467|  2.82k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (3688:2): [True: 81, False: 63.1k]
  ------------------
 3689|  5.14k|	default:
  ------------------
  |  Branch (3689:2): [True: 2.31k, False: 60.8k]
  ------------------
 3690|  5.14k|		break;
 3691|  63.1k|	}
 3692|  63.1k|	return (0);
 3693|  63.1k|}
sctp_input.c:sctp_handle_cookie_ack:
 3125|  23.4k|{
 3126|       |	/* cp must not be used, others call this without a c-ack :-) */
 3127|  23.4k|	struct sctp_association *asoc;
 3128|  23.4k|	struct sctp_tmit_chunk *chk;
 3129|       |
 3130|  23.4k|	SCTPDBG(SCTP_DEBUG_INPUT2,
 3131|  23.4k|		"sctp_handle_cookie_ack: handling COOKIE-ACK\n");
 3132|  23.4k|	if ((stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (3132:6): [True: 0, False: 23.4k]
  |  Branch (3132:24): [True: 0, False: 23.4k]
  ------------------
 3133|      0|		return;
 3134|      0|	}
 3135|       |
 3136|  23.4k|	asoc = &stcb->asoc;
 3137|  23.4k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  23.4k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  23.4k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (3137:6): [True: 0, False: 23.4k]
  ------------------
 3138|      0|		sctp_misc_ints(SCTP_THRESHOLD_CLEAR,
  ------------------
  |  |  224|      0|#define SCTP_THRESHOLD_CLEAR       120
  ------------------
 3139|      0|			       asoc->overall_error_count,
 3140|      0|			       0,
 3141|      0|			       SCTP_FROM_SCTP_INPUT,
  ------------------
  |  |  755|      0|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
 3142|      0|			       __LINE__);
 3143|      0|	}
 3144|  23.4k|	sctp_stop_all_cookie_timers(stcb);
 3145|  23.4k|	sctp_toss_old_cookies(stcb, asoc);
 3146|       |	/* process according to association state */
 3147|  23.4k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) {
  ------------------
  |  |  472|  23.4k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  23.4k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) {
  ------------------
  |  |  458|  23.4k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (3147:6): [True: 5.17k, False: 18.2k]
  ------------------
 3148|       |		/* state change only needed when I am in right state */
 3149|  5.17k|		SCTPDBG(SCTP_DEBUG_INPUT2, "moving to OPEN state\n");
 3150|  5.17k|		SCTP_SET_STATE(stcb, SCTP_STATE_OPEN);
  ------------------
  |  |  474|  5.17k|	sctp_set_state(_stcb, _state)
  ------------------
 3151|  5.17k|		sctp_start_net_timers(stcb);
 3152|       |		/* update RTO */
 3153|  5.17k|		SCTP_STAT_INCR_COUNTER32(sctps_activeestab);
  ------------------
  |  | 1127|  5.17k|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  5.17k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  5.17k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  5.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3154|  5.17k|		SCTP_STAT_INCR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1129|  5.17k|#define SCTP_STAT_INCR_GAUGE32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  5.17k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  5.17k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  5.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3155|  5.17k|		if (asoc->overall_error_count == 0) {
  ------------------
  |  Branch (3155:7): [True: 5.17k, False: 0]
  ------------------
 3156|  5.17k|			sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
 3157|  5.17k|			                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|  5.17k|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
 3158|  5.17k|		}
 3159|       |		/*
 3160|       |		 * Since we did not send a HB make sure we don't double
 3161|       |		 * things.
 3162|       |		 */
 3163|  5.17k|		asoc->overall_error_count = 0;
 3164|  5.17k|		net->hb_responded = 1;
 3165|  5.17k|		(void)SCTP_GETTIME_TIMEVAL(&asoc->time_entered);
  ------------------
  |  |  991|  5.17k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 3166|  5.17k|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_UP, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  703|  5.17k|#define SCTP_NOTIFY_ASSOC_UP                     1
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_UP, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  5.17k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3167|  5.17k|		if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  5.17k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3167:7): [True: 5.17k, False: 0]
  ------------------
 3168|  5.17k|		    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (3168:7): [True: 0, False: 0]
  ------------------
 3169|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3170|       |			struct socket *so;
 3171|       |
 3172|       |#endif
 3173|  5.17k|			sctp_pcb_add_flags(stcb->sctp_ep, SCTP_PCB_FLAGS_CONNECTED);
  ------------------
  |  |  539|  5.17k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
 3174|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3175|       |			so = SCTP_INP_SO(stcb->sctp_ep);
 3176|       |			atomic_add_int(&stcb->asoc.refcnt, 1);
 3177|       |			SCTP_TCB_UNLOCK(stcb);
 3178|       |			SCTP_SOCKET_LOCK(so, 1);
 3179|       |			SCTP_TCB_LOCK(stcb);
 3180|       |			atomic_subtract_int(&stcb->asoc.refcnt, 1);
 3181|       |#endif
 3182|  5.17k|			if ((stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) == 0) {
  ------------------
  |  |  464|  5.17k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (3182:8): [True: 5.17k, False: 0]
  ------------------
 3183|  5.17k|				soisconnected(stcb->sctp_socket);
 3184|  5.17k|			}
 3185|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3186|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3187|       |#endif
 3188|  5.17k|		}
 3189|       |
 3190|  5.17k|		if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) &&
  ------------------
  |  |  463|  5.17k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (3190:7): [True: 0, False: 5.17k]
  ------------------
 3191|  5.17k|		    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (3191:7): [True: 0, False: 0]
  ------------------
 3192|  5.17k|		    TAILQ_EMPTY(&asoc->sent_queue) &&
  ------------------
  |  Branch (3192:7): [True: 0, False: 0]
  ------------------
 3193|      0|		    (asoc->stream_queue_cnt == 0)) {
  ------------------
  |  Branch (3193:7): [True: 0, False: 0]
  ------------------
 3194|      0|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3195|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
 3196|      0|			sctp_stop_timers_for_shutdown(stcb);
 3197|      0|			sctp_send_shutdown(stcb, net);
 3198|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN,
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
 3199|      0|			                 stcb->sctp_ep, stcb, net);
 3200|      0|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD,
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
 3201|      0|			                 stcb->sctp_ep, stcb, NULL);
 3202|      0|			sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_LOCKED);
  ------------------
  |  |  362|      0|#define SCTP_OUTPUT_FROM_T3       	1
  ------------------
              			sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 3203|      0|		}
 3204|       |
 3205|  5.17k|		if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
  ------------------
  |  |  464|  5.17k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (3205:7): [True: 0, False: 5.17k]
  ------------------
 3206|       |			/* We don't need to do the asconf thing,
 3207|       |			 * nor hb or autoclose if the socket is closed.
 3208|       |			 */
 3209|      0|			goto closed_socket;
 3210|      0|		}
 3211|       |
 3212|  5.17k|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep,
  ------------------
  |  |  536|  5.17k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 3213|  5.17k|		    stcb, net);
 3214|       |
 3215|  5.17k|		if (stcb->asoc.sctp_autoclose_ticks &&
  ------------------
  |  Branch (3215:7): [True: 0, False: 5.17k]
  ------------------
 3216|      0|		    sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_AUTOCLOSE)) {
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3217|      0|			sctp_timer_start(SCTP_TIMER_TYPE_AUTOCLOSE,
  ------------------
  |  |  543|      0|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
 3218|      0|			    stcb->sctp_ep, stcb, NULL);
 3219|      0|		}
 3220|       |		/*
 3221|       |		 * send ASCONF if parameters are pending and ASCONFs are
 3222|       |		 * allowed (eg. addresses changed when init/cookie echo were
 3223|       |		 * in flight)
 3224|       |		 */
 3225|  5.17k|		if ((sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_DO_ASCONF)) &&
  ------------------
  |  |   52|  5.17k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3225:7): [True: 5.17k, False: 0]
  ------------------
 3226|  5.17k|		    (stcb->asoc.asconf_supported == 1) &&
  ------------------
  |  Branch (3226:7): [True: 5.16k, False: 5]
  ------------------
 3227|  5.16k|		    (!TAILQ_EMPTY(&stcb->asoc.asconf_queue))) {
  ------------------
  |  Branch (3227:7): [True: 0, False: 5.16k]
  ------------------
 3228|       |#ifdef SCTP_TIMER_BASED_ASCONF
 3229|       |			sctp_timer_start(SCTP_TIMER_TYPE_ASCONF,
 3230|       |					 stcb->sctp_ep, stcb,
 3231|       |					 stcb->asoc.primary_destination);
 3232|       |#else
 3233|      0|			sctp_send_asconf(stcb, stcb->asoc.primary_destination,
 3234|      0|					 SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|      0|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 3235|      0|#endif
 3236|      0|		}
 3237|  5.17k|	}
 3238|  23.4k|closed_socket:
 3239|       |	/* Restart the timer if we have pending data */
 3240|  23.4k|	TAILQ_FOREACH(chk, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (3240:2): [True: 3.77k, False: 19.6k]
  ------------------
 3241|  3.77k|		if (chk->whoTo != NULL) {
  ------------------
  |  Branch (3241:7): [True: 3.77k, False: 0]
  ------------------
 3242|  3.77k|			break;
 3243|  3.77k|		}
 3244|  3.77k|	}
 3245|  23.4k|	if (chk != NULL) {
  ------------------
  |  Branch (3245:6): [True: 3.77k, False: 19.6k]
  ------------------
 3246|  3.77k|		sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  532|  3.77k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 3247|  3.77k|	}
 3248|  23.4k|}

sctp_output.c:sctp_userspace_rtfree:
  875|    499|{
  876|    499|	if(rt == NULL) {
  ------------------
  |  Branch (876:5): [True: 0, False: 499]
  ------------------
  877|      0|		return;
  878|      0|	}
  879|    499|	if(--rt->rt_refcnt > 0) {
  ------------------
  |  Branch (879:5): [True: 0, False: 499]
  ------------------
  880|      0|		return;
  881|      0|	}
  882|    499|	free(rt);
  883|    499|}
sctp_pcb.c:sctp_userspace_rtfree:
  875|  47.9k|{
  876|  47.9k|	if(rt == NULL) {
  ------------------
  |  Branch (876:5): [True: 0, False: 47.9k]
  ------------------
  877|      0|		return;
  878|      0|	}
  879|  47.9k|	if(--rt->rt_refcnt > 0) {
  ------------------
  |  Branch (879:5): [True: 0, False: 47.9k]
  ------------------
  880|      0|		return;
  881|      0|	}
  882|  47.9k|	free(rt);
  883|  47.9k|}
sctp_pcb.c:sctp_userspace_rtalloc:
  842|  50.7k|{
  843|  50.7k|	if (ro->ro_rt != NULL) {
  ------------------
  |  Branch (843:6): [True: 0, False: 50.7k]
  ------------------
  844|      0|		ro->ro_rt->rt_refcnt++;
  845|      0|		return;
  846|      0|	}
  847|       |
  848|  50.7k|	ro->ro_rt = (sctp_rtentry_t *) malloc(sizeof(sctp_rtentry_t));
  849|  50.7k|	if (ro->ro_rt == NULL)
  ------------------
  |  Branch (849:6): [True: 0, False: 50.7k]
  ------------------
  850|      0|		return;
  851|       |
  852|       |	/* initialize */
  853|  50.7k|	memset(ro->ro_rt, 0, sizeof(sctp_rtentry_t));
  854|  50.7k|	ro->ro_rt->rt_refcnt = 1;
  855|       |
  856|       |	/* set MTU */
  857|       |	/* TODO set this based on the ro->ro_dst, looking up MTU with routing socket */
  858|       |#if 0
  859|       |	if (userspace_rawroute == -1) {
  860|       |		userspace_rawroute = socket(AF_ROUTE, SOCK_RAW, 0);
  861|       |		if (userspace_rawroute == -1)
  862|       |			return;
  863|       |	}
  864|       |#endif
  865|  50.7k|	ro->ro_rt->rt_rmx.rmx_mtu = 1500; /* FIXME temporary solution */
  866|       |
  867|       |	/* TODO enable the ability to obtain interface index of route for
  868|       |	 *  SCTP_GET_IF_INDEX_FROM_ROUTE macro.
  869|       |	 */
  870|  50.7k|}
sctputil.c:sctp_userspace_rtfree:
  875|  2.29k|{
  876|  2.29k|	if(rt == NULL) {
  ------------------
  |  Branch (876:5): [True: 0, False: 2.29k]
  ------------------
  877|      0|		return;
  878|      0|	}
  879|  2.29k|	if(--rt->rt_refcnt > 0) {
  ------------------
  |  Branch (879:5): [True: 0, False: 2.29k]
  ------------------
  880|      0|		return;
  881|      0|	}
  882|  2.29k|	free(rt);
  883|  2.29k|}

sctp_add_addresses_to_i_ia:
 2063|  19.2k|{
 2064|  19.2k|	struct sctp_vrf *vrf = NULL;
 2065|  19.2k|	int cnt, limit_out = 0, total_count;
 2066|  19.2k|	uint32_t vrf_id;
 2067|       |
 2068|  19.2k|	vrf_id = inp->def_vrf_id;
 2069|  19.2k|	SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  19.2k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  19.2k|	do {                         \
  |  |  |  |  113|  19.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 19.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  19.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 19.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2070|  19.2k|	vrf = sctp_find_vrf(vrf_id);
 2071|  19.2k|	if (vrf == NULL) {
  ------------------
  |  Branch (2071:6): [True: 0, False: 19.2k]
  ------------------
 2072|      0|		SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2073|      0|		return (m_at);
 2074|      0|	}
 2075|  19.2k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|  19.2k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (2075:6): [True: 0, False: 19.2k]
  ------------------
 2076|      0|		struct sctp_ifa *sctp_ifap;
 2077|      0|		struct sctp_ifn *sctp_ifnp;
 2078|       |
 2079|      0|		cnt = cnt_inits_to;
 2080|      0|		if (vrf->total_ifa_count > SCTP_COUNT_LIMIT) {
  ------------------
  |  |   76|      0|#define SCTP_COUNT_LIMIT 40
  ------------------
  |  Branch (2080:7): [True: 0, False: 0]
  ------------------
 2081|      0|			limit_out = 1;
 2082|      0|			cnt = SCTP_ADDRESS_LIMIT;
  ------------------
  |  |   64|      0|#define SCTP_ADDRESS_LIMIT 1080
  ------------------
 2083|      0|			goto skip_count;
 2084|      0|		}
 2085|      0|		LIST_FOREACH(sctp_ifnp, &vrf->ifnlist, next_ifn) {
  ------------------
  |  Branch (2085:3): [True: 0, False: 0]
  ------------------
 2086|      0|			if ((scope->loopback_scope == 0) &&
  ------------------
  |  Branch (2086:8): [True: 0, False: 0]
  ------------------
 2087|      0|			    SCTP_IFN_IS_IFT_LOOP(sctp_ifnp)) {
  ------------------
  |  |  656|      0|#define SCTP_IFN_IS_IFT_LOOP(ifn) (strncmp((ifn)->ifn_name, "lo", 2) == 0)
  |  |  ------------------
  |  |  |  Branch (656:35): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 2088|       |				/*
 2089|       |				 * Skip loopback devices if loopback_scope
 2090|       |				 * not set
 2091|       |				 */
 2092|      0|				continue;
 2093|      0|			}
 2094|      0|			LIST_FOREACH(sctp_ifap, &sctp_ifnp->ifalist, next_ifa) {
  ------------------
  |  Branch (2094:4): [True: 0, False: 0]
  ------------------
 2095|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2096|       |#ifdef INET
 2097|       |				if ((sctp_ifap->address.sa.sa_family == AF_INET) &&
 2098|       |				    (prison_check_ip4(inp->ip_inp.inp.inp_cred,
 2099|       |				                      &sctp_ifap->address.sin.sin_addr) != 0)) {
 2100|       |					continue;
 2101|       |				}
 2102|       |#endif
 2103|       |#ifdef INET6
 2104|       |				if ((sctp_ifap->address.sa.sa_family == AF_INET6) &&
 2105|       |				    (prison_check_ip6(inp->ip_inp.inp.inp_cred,
 2106|       |				                      &sctp_ifap->address.sin6.sin6_addr) != 0)) {
 2107|       |					continue;
 2108|       |				}
 2109|       |#endif
 2110|       |#endif
 2111|      0|				if (sctp_is_addr_restricted(stcb, sctp_ifap)) {
  ------------------
  |  Branch (2111:9): [True: 0, False: 0]
  ------------------
 2112|      0|					continue;
 2113|      0|				}
 2114|      0|#if defined(__Userspace__)
 2115|      0|				if (sctp_ifap->address.sa.sa_family == AF_CONN) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (2115:9): [True: 0, False: 0]
  ------------------
 2116|      0|					continue;
 2117|      0|				}
 2118|      0|#endif
 2119|      0|				if (sctp_is_address_in_scope(sctp_ifap, scope, 1) == 0) {
  ------------------
  |  Branch (2119:9): [True: 0, False: 0]
  ------------------
 2120|      0|					continue;
 2121|      0|				}
 2122|      0|				cnt++;
 2123|      0|				if (cnt > SCTP_ADDRESS_LIMIT) {
  ------------------
  |  |   64|      0|#define SCTP_ADDRESS_LIMIT 1080
  ------------------
  |  Branch (2123:9): [True: 0, False: 0]
  ------------------
 2124|      0|					break;
 2125|      0|				}
 2126|      0|			}
 2127|      0|			if (cnt > SCTP_ADDRESS_LIMIT) {
  ------------------
  |  |   64|      0|#define SCTP_ADDRESS_LIMIT 1080
  ------------------
  |  Branch (2127:8): [True: 0, False: 0]
  ------------------
 2128|      0|				break;
 2129|      0|			}
 2130|      0|		}
 2131|      0|	skip_count:
 2132|      0|		if (cnt > 1) {
  ------------------
  |  Branch (2132:7): [True: 0, False: 0]
  ------------------
 2133|      0|			total_count = 0;
 2134|      0|			LIST_FOREACH(sctp_ifnp, &vrf->ifnlist, next_ifn) {
  ------------------
  |  Branch (2134:4): [True: 0, False: 0]
  ------------------
 2135|      0|				cnt = 0;
 2136|      0|				if ((scope->loopback_scope == 0) &&
  ------------------
  |  Branch (2136:9): [True: 0, False: 0]
  ------------------
 2137|      0|				    SCTP_IFN_IS_IFT_LOOP(sctp_ifnp)) {
  ------------------
  |  |  656|      0|#define SCTP_IFN_IS_IFT_LOOP(ifn) (strncmp((ifn)->ifn_name, "lo", 2) == 0)
  |  |  ------------------
  |  |  |  Branch (656:35): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 2138|       |					/*
 2139|       |					 * Skip loopback devices if
 2140|       |					 * loopback_scope not set
 2141|       |					 */
 2142|      0|					continue;
 2143|      0|				}
 2144|      0|				LIST_FOREACH(sctp_ifap, &sctp_ifnp->ifalist, next_ifa) {
  ------------------
  |  Branch (2144:5): [True: 0, False: 0]
  ------------------
 2145|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2146|       |#ifdef INET
 2147|       |					if ((sctp_ifap->address.sa.sa_family == AF_INET) &&
 2148|       |					    (prison_check_ip4(inp->ip_inp.inp.inp_cred,
 2149|       |					                      &sctp_ifap->address.sin.sin_addr) != 0)) {
 2150|       |						continue;
 2151|       |					}
 2152|       |#endif
 2153|       |#ifdef INET6
 2154|       |					if ((sctp_ifap->address.sa.sa_family == AF_INET6) &&
 2155|       |					    (prison_check_ip6(inp->ip_inp.inp.inp_cred,
 2156|       |					                      &sctp_ifap->address.sin6.sin6_addr) != 0)) {
 2157|       |						continue;
 2158|       |					}
 2159|       |#endif
 2160|       |#endif
 2161|      0|					if (sctp_is_addr_restricted(stcb, sctp_ifap)) {
  ------------------
  |  Branch (2161:10): [True: 0, False: 0]
  ------------------
 2162|      0|						continue;
 2163|      0|					}
 2164|      0|#if defined(__Userspace__)
 2165|      0|					if (sctp_ifap->address.sa.sa_family == AF_CONN) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (2165:10): [True: 0, False: 0]
  ------------------
 2166|      0|						continue;
 2167|      0|					}
 2168|      0|#endif
 2169|      0|					if (sctp_is_address_in_scope(sctp_ifap,
  ------------------
  |  Branch (2169:10): [True: 0, False: 0]
  ------------------
 2170|      0|								     scope, 0) == 0) {
 2171|      0|						continue;
 2172|      0|					}
 2173|      0|					if ((chunk_len != NULL) &&
  ------------------
  |  Branch (2173:10): [True: 0, False: 0]
  ------------------
 2174|      0|					    (padding_len != NULL) &&
  ------------------
  |  Branch (2174:10): [True: 0, False: 0]
  ------------------
 2175|      0|					    (*padding_len > 0)) {
  ------------------
  |  Branch (2175:10): [True: 0, False: 0]
  ------------------
 2176|      0|						memset(mtod(m_at, caddr_t) + *chunk_len, 0, *padding_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2177|      0|						SCTP_BUF_LEN(m_at) += *padding_len;
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2178|      0|						*chunk_len += *padding_len;
 2179|      0|						*padding_len = 0;
 2180|      0|					}
 2181|      0|					m_at = sctp_add_addr_to_mbuf(m_at, sctp_ifap, chunk_len);
 2182|      0|					if (limit_out) {
  ------------------
  |  Branch (2182:10): [True: 0, False: 0]
  ------------------
 2183|      0|						cnt++;
 2184|      0|						total_count++;
 2185|      0|						if (cnt >= 2) {
  ------------------
  |  Branch (2185:11): [True: 0, False: 0]
  ------------------
 2186|       |							/* two from each address */
 2187|      0|							break;
 2188|      0|						}
 2189|      0|						if (total_count > SCTP_ADDRESS_LIMIT) {
  ------------------
  |  |   64|      0|#define SCTP_ADDRESS_LIMIT 1080
  ------------------
  |  Branch (2189:11): [True: 0, False: 0]
  ------------------
 2190|       |							/* No more addresses */
 2191|      0|							break;
 2192|      0|						}
 2193|      0|					}
 2194|      0|				}
 2195|      0|			}
 2196|      0|		}
 2197|  19.2k|	} else {
 2198|  19.2k|		struct sctp_laddr *laddr;
 2199|       |
 2200|  19.2k|		cnt = cnt_inits_to;
 2201|       |		/* First, how many ? */
 2202|  19.2k|		LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (2202:3): [True: 19.2k, False: 19.2k]
  ------------------
 2203|  19.2k|			if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2203:8): [True: 0, False: 19.2k]
  ------------------
 2204|      0|				continue;
 2205|      0|			}
 2206|  19.2k|			if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED)
  ------------------
  |  |   90|  19.2k|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (2206:8): [True: 0, False: 19.2k]
  ------------------
 2207|       |				/* Address being deleted by the system, dont
 2208|       |				 * list.
 2209|       |				 */
 2210|      0|				continue;
 2211|  19.2k|			if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|  19.2k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (2211:8): [True: 0, False: 19.2k]
  ------------------
 2212|       |				/* Address being deleted on this ep
 2213|       |				 * don't list.
 2214|       |				 */
 2215|      0|				continue;
 2216|      0|			}
 2217|  19.2k|#if defined(__Userspace__)
 2218|  19.2k|			if (laddr->ifa->address.sa.sa_family == AF_CONN) {
  ------------------
  |  | 1014|  19.2k|#define AF_CONN 123
  ------------------
  |  Branch (2218:8): [True: 19.2k, False: 0]
  ------------------
 2219|  19.2k|				continue;
 2220|  19.2k|			}
 2221|      0|#endif
 2222|      0|			if (sctp_is_address_in_scope(laddr->ifa,
  ------------------
  |  Branch (2222:8): [True: 0, False: 0]
  ------------------
 2223|      0|						     scope, 1) == 0) {
 2224|      0|				continue;
 2225|      0|			}
 2226|      0|			cnt++;
 2227|      0|		}
 2228|       |		/*
 2229|       |		 * To get through a NAT we only list addresses if we have
 2230|       |		 * more than one. That way if you just bind a single address
 2231|       |		 * we let the source of the init dictate our address.
 2232|       |		 */
 2233|  19.2k|		if (cnt > 1) {
  ------------------
  |  Branch (2233:7): [True: 0, False: 19.2k]
  ------------------
 2234|      0|			cnt = cnt_inits_to;
 2235|      0|			LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (2235:4): [True: 0, False: 0]
  ------------------
 2236|      0|				if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2236:9): [True: 0, False: 0]
  ------------------
 2237|      0|					continue;
 2238|      0|				}
 2239|      0|				if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
  ------------------
  |  |   90|      0|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (2239:9): [True: 0, False: 0]
  ------------------
 2240|      0|					continue;
 2241|      0|				}
 2242|      0|#if defined(__Userspace__)
 2243|      0|				if (laddr->ifa->address.sa.sa_family == AF_CONN) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (2243:9): [True: 0, False: 0]
  ------------------
 2244|      0|					continue;
 2245|      0|				}
 2246|      0|#endif
 2247|      0|				if (sctp_is_address_in_scope(laddr->ifa,
  ------------------
  |  Branch (2247:9): [True: 0, False: 0]
  ------------------
 2248|      0|							     scope, 0) == 0) {
 2249|      0|					continue;
 2250|      0|				}
 2251|      0|				if ((chunk_len != NULL) &&
  ------------------
  |  Branch (2251:9): [True: 0, False: 0]
  ------------------
 2252|      0|				    (padding_len != NULL) &&
  ------------------
  |  Branch (2252:9): [True: 0, False: 0]
  ------------------
 2253|      0|				    (*padding_len > 0)) {
  ------------------
  |  Branch (2253:9): [True: 0, False: 0]
  ------------------
 2254|      0|					memset(mtod(m_at, caddr_t) + *chunk_len, 0, *padding_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2255|      0|					SCTP_BUF_LEN(m_at) += *padding_len;
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2256|      0|					*chunk_len += *padding_len;
 2257|      0|					*padding_len = 0;
 2258|      0|				}
 2259|      0|				m_at = sctp_add_addr_to_mbuf(m_at, laddr->ifa, chunk_len);
 2260|      0|				cnt++;
 2261|      0|				if (cnt >= SCTP_ADDRESS_LIMIT) {
  ------------------
  |  |   64|      0|#define SCTP_ADDRESS_LIMIT 1080
  ------------------
  |  Branch (2261:9): [True: 0, False: 0]
  ------------------
 2262|      0|					break;
 2263|      0|				}
 2264|      0|			}
 2265|      0|		}
 2266|  19.2k|	}
 2267|  19.2k|	SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  19.2k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  19.2k|	do {                         \
  |  |  |  |  113|  19.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 19.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  19.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 19.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2268|  19.2k|	return (m_at);
 2269|  19.2k|}
sctp_is_addr_restricted:
 2457|  31.8k|{
 2458|  31.8k|	struct sctp_laddr *laddr;
 2459|       |
 2460|  31.8k|	if (stcb == NULL) {
  ------------------
  |  Branch (2460:6): [True: 0, False: 31.8k]
  ------------------
 2461|       |		/* There are no restrictions, no TCB :-) */
 2462|      0|		return (0);
 2463|      0|	}
 2464|  31.8k|	LIST_FOREACH(laddr, &stcb->asoc.sctp_restricted_addrs, sctp_nxt_addr) {
  ------------------
  |  Branch (2464:2): [True: 0, False: 31.8k]
  ------------------
 2465|      0|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2465:7): [True: 0, False: 0]
  ------------------
 2466|      0|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "%s: NULL ifa\n",
 2467|      0|				__func__);
 2468|      0|			continue;
 2469|      0|		}
 2470|      0|		if (laddr->ifa == ifa) {
  ------------------
  |  Branch (2470:7): [True: 0, False: 0]
  ------------------
 2471|       |			/* Yes it is on the list */
 2472|      0|			return (1);
 2473|      0|		}
 2474|      0|	}
 2475|  31.8k|	return (0);
 2476|  31.8k|}
sctp_is_addr_in_ep:
 2480|  6.02k|{
 2481|  6.02k|	struct sctp_laddr *laddr;
 2482|       |
 2483|  6.02k|	if (ifa == NULL)
  ------------------
  |  Branch (2483:6): [True: 0, False: 6.02k]
  ------------------
 2484|      0|		return (0);
 2485|  6.02k|	LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (2485:2): [True: 6.02k, False: 6.02k]
  ------------------
 2486|  6.02k|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2486:7): [True: 0, False: 6.02k]
  ------------------
 2487|      0|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "%s: NULL ifa\n",
 2488|      0|				__func__);
 2489|      0|			continue;
 2490|      0|		}
 2491|  6.02k|		if ((laddr->ifa == ifa) && laddr->action == 0)
  ------------------
  |  Branch (2491:7): [True: 0, False: 6.02k]
  |  Branch (2491:30): [True: 0, False: 0]
  ------------------
 2492|       |			/* same pointer */
 2493|      0|			return (1);
 2494|  6.02k|	}
 2495|  6.02k|	return (0);
 2496|  6.02k|}
sctp_source_address_selection:
 3381|  3.01k|{
 3382|  3.01k|	struct sctp_ifa *answer;
 3383|  3.01k|	uint8_t dest_is_priv, dest_is_loop;
 3384|  3.01k|	sa_family_t fam;
 3385|  3.01k|#ifdef INET
 3386|  3.01k|	struct sockaddr_in *to = (struct sockaddr_in *)&ro->ro_dst;
 3387|  3.01k|#endif
 3388|  3.01k|#ifdef INET6
 3389|  3.01k|	struct sockaddr_in6 *to6 = (struct sockaddr_in6 *)&ro->ro_dst;
 3390|  3.01k|#endif
 3391|       |
 3392|       |	/**
 3393|       |	 * Rules:
 3394|       |	 * - Find the route if needed, cache if I can.
 3395|       |	 * - Look at interface address in route, Is it in the bound list. If so we
 3396|       |	 *   have the best source.
 3397|       |	 * - If not we must rotate amongst the addresses.
 3398|       |	 *
 3399|       |	 * Caveats and issues
 3400|       |	 *
 3401|       |	 * Do we need to pay attention to scope. We can have a private address
 3402|       |	 * or a global address we are sourcing or sending to. So if we draw
 3403|       |	 * it out
 3404|       |	 * zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 3405|       |	 * For V4
 3406|       |	 * ------------------------------------------
 3407|       |	 *      source     *      dest  *  result
 3408|       |	 * -----------------------------------------
 3409|       |	 * <a>  Private    *    Global  *  NAT
 3410|       |	 * -----------------------------------------
 3411|       |	 * <b>  Private    *    Private *  No problem
 3412|       |	 * -----------------------------------------
 3413|       |	 * <c>  Global     *    Private *  Huh, How will this work?
 3414|       |	 * -----------------------------------------
 3415|       |	 * <d>  Global     *    Global  *  No Problem
 3416|       |	 *------------------------------------------
 3417|       |	 * zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 3418|       |	 * For V6
 3419|       |	 *------------------------------------------
 3420|       |	 *      source     *      dest  *  result
 3421|       |	 * -----------------------------------------
 3422|       |	 * <a>  Linklocal  *    Global  *
 3423|       |	 * -----------------------------------------
 3424|       |	 * <b>  Linklocal  * Linklocal  *  No problem
 3425|       |	 * -----------------------------------------
 3426|       |	 * <c>  Global     * Linklocal  *  Huh, How will this work?
 3427|       |	 * -----------------------------------------
 3428|       |	 * <d>  Global     *    Global  *  No Problem
 3429|       |	 *------------------------------------------
 3430|       |	 * zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 3431|       |	 *
 3432|       |	 * And then we add to that what happens if there are multiple addresses
 3433|       |	 * assigned to an interface. Remember the ifa on a ifn is a linked
 3434|       |	 * list of addresses. So one interface can have more than one IP
 3435|       |	 * address. What happens if we have both a private and a global
 3436|       |	 * address? Do we then use context of destination to sort out which
 3437|       |	 * one is best? And what about NAT's sending P->G may get you a NAT
 3438|       |	 * translation, or should you select the G thats on the interface in
 3439|       |	 * preference.
 3440|       |	 *
 3441|       |	 * Decisions:
 3442|       |	 *
 3443|       |	 * - count the number of addresses on the interface.
 3444|       |	 * - if it is one, no problem except case <c>.
 3445|       |	 *   For <a> we will assume a NAT out there.
 3446|       |	 * - if there are more than one, then we need to worry about scope P
 3447|       |	 *   or G. We should prefer G -> G and P -> P if possible.
 3448|       |	 *   Then as a secondary fall back to mixed types G->P being a last
 3449|       |	 *   ditch one.
 3450|       |	 * - The above all works for bound all, but bound specific we need to
 3451|       |	 *   use the same concept but instead only consider the bound
 3452|       |	 *   addresses. If the bound set is NOT assigned to the interface then
 3453|       |	 *   we must use rotation amongst the bound addresses..
 3454|       |	 */
 3455|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3456|       |	if (ro->ro_nh == NULL) {
 3457|       |#else
 3458|  3.01k|	if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (3458:6): [True: 0, False: 3.01k]
  ------------------
 3459|      0|#endif
 3460|       |		/*
 3461|       |		 * Need a route to cache.
 3462|       |		 */
 3463|      0|		SCTP_RTALLOC(ro, vrf_id, inp->fibnum);
  ------------------
  |  |  871|      0|#define SCTP_RTALLOC(ro, vrf_id, fibnum) sctp_userspace_rtalloc((sctp_route_t *)ro)
  ------------------
 3464|      0|	}
 3465|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3466|       |	if (ro->ro_nh == NULL) {
 3467|       |#else
 3468|  3.01k|	if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (3468:6): [True: 0, False: 3.01k]
  ------------------
 3469|      0|#endif
 3470|      0|		return (NULL);
 3471|      0|	}
 3472|       |#if defined(_WIN32)
 3473|       |	/* On Windows the sa_family is U_SHORT or ADDRESS_FAMILY */
 3474|       |	fam = (sa_family_t)ro->ro_dst.sa_family;
 3475|       |#else
 3476|  3.01k|	fam = ro->ro_dst.sa_family;
 3477|  3.01k|#endif
 3478|  3.01k|	dest_is_priv = dest_is_loop = 0;
 3479|       |	/* Setup our scopes for the destination */
 3480|  3.01k|	switch (fam) {
  ------------------
  |  Branch (3480:10): [True: 3.01k, False: 0]
  ------------------
 3481|      0|#ifdef INET
 3482|  1.03k|	case AF_INET:
  ------------------
  |  Branch (3482:2): [True: 1.03k, False: 1.97k]
  ------------------
 3483|       |		/* Scope based on outbound address */
 3484|  1.03k|		if (IN4_ISLOOPBACK_ADDRESS(&to->sin_addr)) {
  ------------------
  |  |  977|  1.03k|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  |  |  ------------------
  |  |  |  Branch (977:5): [True: 305, False: 728]
  |  |  ------------------
  ------------------
 3485|    305|			dest_is_loop = 1;
 3486|    305|			if (net != NULL) {
  ------------------
  |  Branch (3486:8): [True: 305, False: 0]
  ------------------
 3487|       |				/* mark it as local */
 3488|    305|				net->addr_is_local = 1;
 3489|    305|			}
 3490|    728|		} else if ((IN4_ISPRIVATE_ADDRESS(&to->sin_addr))) {
  ------------------
  |  |  969|    728|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 52, False: 676]
  |  |  ------------------
  |  |  970|    728|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 86, False: 590]
  |  |  ------------------
  |  |  971|    676|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 67, False: 19]
  |  |  ------------------
  |  |  972|    676|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 24, False: 43]
  |  |  ------------------
  |  |  973|    728|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 38, False: 614]
  |  |  ------------------
  |  |  974|    652|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 12, False: 26]
  |  |  ------------------
  ------------------
 3491|     88|			dest_is_priv = 1;
 3492|     88|		}
 3493|  1.03k|		break;
 3494|      0|#endif
 3495|      0|#ifdef INET6
 3496|  1.97k|	case AF_INET6:
  ------------------
  |  Branch (3496:2): [True: 1.97k, False: 1.03k]
  ------------------
 3497|       |		/* Scope based on outbound address */
 3498|       |#if defined(_WIN32)
 3499|       |		if (IN6_IS_ADDR_LOOPBACK(&to6->sin6_addr)) {
 3500|       |#else
 3501|  1.97k|		if (IN6_IS_ADDR_LOOPBACK(&to6->sin6_addr) ||
  ------------------
  |  Branch (3501:7): [True: 1, False: 1.97k]
  ------------------
 3502|  1.97k|		    SCTP_ROUTE_IS_REAL_LOOP(ro)) {
  ------------------
  |  |  660|  1.97k|#define SCTP_ROUTE_IS_REAL_LOOP(ro) 0
  |  |  ------------------
  |  |  |  Branch (660:37): [Folded, False: 0]
  |  |  ------------------
  ------------------
 3503|      1|#endif
 3504|       |			/*
 3505|       |			 * If the address is a loopback address, which
 3506|       |			 * consists of "::1" OR "fe80::1%lo0", we are loopback
 3507|       |			 * scope. But we don't use dest_is_priv (link local
 3508|       |			 * addresses).
 3509|       |			 */
 3510|      1|			dest_is_loop = 1;
 3511|      1|			if (net != NULL) {
  ------------------
  |  Branch (3511:8): [True: 1, False: 0]
  ------------------
 3512|       |				/* mark it as local */
 3513|      1|				net->addr_is_local = 1;
 3514|      1|			}
 3515|  1.97k|		} else if (IN6_IS_ADDR_LINKLOCAL(&to6->sin6_addr)) {
  ------------------
  |  Branch (3515:14): [True: 974, False: 1.00k]
  ------------------
 3516|    974|			dest_is_priv = 1;
 3517|    974|		}
 3518|  1.97k|		break;
 3519|  3.01k|#endif
 3520|  3.01k|	}
 3521|  3.01k|	SCTPDBG(SCTP_DEBUG_OUTPUT2, "Select source addr for:");
 3522|  3.01k|	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)&ro->ro_dst);
 3523|  3.01k|	SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  3.01k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  3.01k|	do {                         \
  |  |  |  |  113|  3.01k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.01k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  3.01k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3524|  3.01k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|  3.01k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (3524:6): [True: 0, False: 3.01k]
  ------------------
 3525|       |		/*
 3526|       |		 * Bound all case
 3527|       |		 */
 3528|      0|		answer = sctp_choose_boundall(inp, stcb, net, ro, vrf_id,
 3529|      0|					      dest_is_priv, dest_is_loop,
 3530|      0|					      non_asoc_addr_ok, fam);
 3531|      0|		SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3532|      0|		return (answer);
 3533|      0|	}
 3534|       |	/*
 3535|       |	 * Subset bound case
 3536|       |	 */
 3537|  3.01k|	if (stcb) {
  ------------------
  |  Branch (3537:6): [True: 3.01k, False: 0]
  ------------------
 3538|  3.01k|		answer = sctp_choose_boundspecific_stcb(inp, stcb, ro,
 3539|  3.01k|							vrf_id,	dest_is_priv,
 3540|  3.01k|							dest_is_loop,
 3541|  3.01k|							non_asoc_addr_ok, fam);
 3542|  3.01k|	} else {
 3543|      0|		answer = sctp_choose_boundspecific_inp(inp, ro, vrf_id,
 3544|      0|						       non_asoc_addr_ok,
 3545|      0|						       dest_is_priv,
 3546|      0|						       dest_is_loop, fam);
 3547|      0|	}
 3548|  3.01k|	SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  3.01k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  3.01k|	do {                         \
  |  |  |  |  113|  3.01k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.01k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  3.01k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3549|  3.01k|	return (answer);
 3550|  3.01k|}
sctp_send_initiate:
 5065|  27.6k|{
 5066|  27.6k|	struct mbuf *m, *m_last;
 5067|  27.6k|	struct sctp_nets *net;
 5068|  27.6k|	struct sctp_init_chunk *init;
 5069|  27.6k|	struct sctp_supported_addr_param *sup_addr;
 5070|  27.6k|	struct sctp_adaptation_layer_indication *ali;
 5071|  27.6k|	struct sctp_zero_checksum_acceptable *zero_chksum;
 5072|  27.6k|	struct sctp_supported_chunk_types_param *pr_supported;
 5073|  27.6k|	struct sctp_paramhdr *ph;
 5074|  27.6k|	int cnt_inits_to = 0;
 5075|  27.6k|	int error;
 5076|  27.6k|	uint16_t num_ext, chunk_len, padding_len, parameter_len;
 5077|       |
 5078|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5079|       |	if (so_locked) {
 5080|       |		sctp_lock_assert(SCTP_INP_SO(inp));
 5081|       |	} else {
 5082|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
 5083|       |	}
 5084|       |#endif
 5085|       |	/* INIT's always go to the primary (and usually ONLY address) */
 5086|  27.6k|	net = stcb->asoc.primary_destination;
 5087|  27.6k|	if (net == NULL) {
  ------------------
  |  Branch (5087:6): [True: 0, False: 27.6k]
  ------------------
 5088|      0|		net = TAILQ_FIRST(&stcb->asoc.nets);
 5089|      0|		if (net == NULL) {
  ------------------
  |  Branch (5089:7): [True: 0, False: 0]
  ------------------
 5090|       |			/* TSNH */
 5091|      0|			return;
 5092|      0|		}
 5093|       |		/* we confirm any address we send an INIT to */
 5094|      0|		net->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 5095|      0|		(void)sctp_set_primary_addr(stcb, NULL, net);
 5096|  27.6k|	} else {
 5097|       |		/* we confirm any address we send an INIT to */
 5098|  27.6k|		net->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|  27.6k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 5099|  27.6k|	}
 5100|  27.6k|	SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT\n");
 5101|  27.6k|#ifdef INET6
 5102|  27.6k|	if (net->ro._l_addr.sa.sa_family == AF_INET6) {
  ------------------
  |  Branch (5102:6): [True: 2.19k, False: 25.4k]
  ------------------
 5103|       |		/*
 5104|       |		 * special hook, if we are sending to link local it will not
 5105|       |		 * show up in our private address count.
 5106|       |		 */
 5107|  2.19k|		if (IN6_IS_ADDR_LINKLOCAL(&net->ro._l_addr.sin6.sin6_addr))
  ------------------
  |  Branch (5107:7): [True: 2.19k, False: 0]
  ------------------
 5108|  2.19k|			cnt_inits_to = 1;
 5109|  2.19k|	}
 5110|  27.6k|#endif
 5111|  27.6k|	if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|  27.6k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  27.6k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 8.35k, False: 19.2k]
  |  |  ------------------
  ------------------
 5112|       |		/* This case should not happen */
 5113|  8.35k|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT - failed timer?\n");
 5114|  8.35k|		return;
 5115|  8.35k|	}
 5116|       |	/* start the INIT timer */
 5117|  19.2k|	sctp_timer_start(SCTP_TIMER_TYPE_INIT, inp, stcb, net);
  ------------------
  |  |  533|  19.2k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
 5118|       |
 5119|  19.2k|	m = sctp_get_mbuf_for_msg(MCLBYTES, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  19.2k|#define MCLBYTES 2048
  ------------------
              	m = sctp_get_mbuf_for_msg(MCLBYTES, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  19.2k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m = sctp_get_mbuf_for_msg(MCLBYTES, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  19.2k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5120|  19.2k|	if (m == NULL) {
  ------------------
  |  Branch (5120:6): [True: 0, False: 19.2k]
  ------------------
 5121|       |		/* No memory, INIT timer will re-attempt. */
 5122|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT - mbuf?\n");
 5123|      0|		return;
 5124|      0|	}
 5125|  19.2k|	chunk_len = (uint16_t)sizeof(struct sctp_init_chunk);
 5126|  19.2k|	padding_len = 0;
 5127|       |	/* Now lets put the chunk header in place */
 5128|  19.2k|	init = mtod(m, struct sctp_init_chunk *);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5129|       |	/* now the chunk header */
 5130|  19.2k|	init->ch.chunk_type = SCTP_INITIATION;
  ------------------
  |  |  455|  19.2k|#define SCTP_INITIATION		0x01
  ------------------
 5131|  19.2k|	init->ch.chunk_flags = 0;
 5132|       |	/* fill in later from mbuf we build */
 5133|  19.2k|	init->ch.chunk_length = 0;
 5134|       |	/* place in my tag */
 5135|  19.2k|	init->init.initiate_tag = htonl(stcb->asoc.my_vtag);
 5136|       |	/* set up some of the credits. */
 5137|  19.2k|	init->init.a_rwnd = htonl(max(inp->sctp_socket?SCTP_SB_LIMIT_RCV(inp->sctp_socket):0,
  ------------------
  |  Branch (5137:22): [True: 19.2k, False: 0]
  |  Branch (5137:22): [True: 19.2k, False: 0]
  |  Branch (5137:22): [True: 19.2k, False: 0]
  ------------------
 5138|  19.2k|	                              SCTP_MINIMAL_RWND));
 5139|  19.2k|	init->init.num_outbound_streams = htons(stcb->asoc.pre_open_streams);
 5140|  19.2k|	init->init.num_inbound_streams = htons(stcb->asoc.max_inbound_streams);
 5141|  19.2k|	init->init.initial_tsn = htonl(stcb->asoc.init_seq_number);
 5142|       |
 5143|       |	/* Adaptation layer indication parameter */
 5144|  19.2k|	if (inp->sctp_ep.adaptation_layer_indicator_provided) {
  ------------------
  |  Branch (5144:6): [True: 0, False: 19.2k]
  ------------------
 5145|      0|		parameter_len = (uint16_t)sizeof(struct sctp_adaptation_layer_indication);
 5146|      0|		ali = (struct sctp_adaptation_layer_indication *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5147|      0|		ali->ph.param_type = htons(SCTP_ULP_ADAPTATION);
 5148|      0|		ali->ph.param_length = htons(parameter_len);
 5149|      0|		ali->indication = htonl(inp->sctp_ep.adaptation_layer_indicator);
 5150|      0|		chunk_len += parameter_len;
 5151|      0|	}
 5152|       |
 5153|       |	/* ECN parameter */
 5154|  19.2k|	if (stcb->asoc.ecn_supported == 1) {
  ------------------
  |  Branch (5154:6): [True: 19.2k, False: 0]
  ------------------
 5155|  19.2k|		parameter_len = (uint16_t)sizeof(struct sctp_paramhdr);
 5156|  19.2k|		ph = (struct sctp_paramhdr *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5157|  19.2k|		ph->param_type = htons(SCTP_ECN_CAPABLE);
 5158|  19.2k|		ph->param_length = htons(parameter_len);
 5159|  19.2k|		chunk_len += parameter_len;
 5160|  19.2k|	}
 5161|       |
 5162|       |	/* PR-SCTP supported parameter */
 5163|  19.2k|	if (stcb->asoc.prsctp_supported == 1) {
  ------------------
  |  Branch (5163:6): [True: 18.5k, False: 732]
  ------------------
 5164|  18.5k|		parameter_len = (uint16_t)sizeof(struct sctp_paramhdr);
 5165|  18.5k|		ph = (struct sctp_paramhdr *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  18.5k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  18.5k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5166|  18.5k|		ph->param_type = htons(SCTP_PRSCTP_SUPPORTED);
 5167|  18.5k|		ph->param_length = htons(parameter_len);
 5168|  18.5k|		chunk_len += parameter_len;
 5169|  18.5k|	}
 5170|       |
 5171|       |	/* Zero checksum acceptable parameter */
 5172|  19.2k|	if (stcb->asoc.rcv_edmid != SCTP_EDMID_NONE) {
  ------------------
  |  |  809|  19.2k|#define SCTP_EDMID_NONE             0
  ------------------
  |  Branch (5172:6): [True: 0, False: 19.2k]
  ------------------
 5173|      0|		parameter_len = (uint16_t)sizeof(struct sctp_zero_checksum_acceptable);
 5174|      0|		zero_chksum = (struct sctp_zero_checksum_acceptable *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5175|      0|		zero_chksum->ph.param_type = htons(SCTP_ZERO_CHECKSUM_ACCEPTABLE);
 5176|      0|		zero_chksum->ph.param_length = htons(parameter_len);
 5177|      0|		zero_chksum->edmid = htonl(stcb->asoc.rcv_edmid);
 5178|      0|		chunk_len += parameter_len;
 5179|      0|	}
 5180|       |
 5181|       |	/* Add NAT friendly parameter. */
 5182|  19.2k|	if (SCTP_BASE_SYSCTL(sctp_inits_include_nat_friendly)) {
  ------------------
  |  |  590|  19.2k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 19.2k]
  |  |  ------------------
  ------------------
 5183|      0|		parameter_len = (uint16_t)sizeof(struct sctp_paramhdr);
 5184|      0|		ph = (struct sctp_paramhdr *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5185|      0|		ph->param_type = htons(SCTP_HAS_NAT_SUPPORT);
 5186|      0|		ph->param_length = htons(parameter_len);
 5187|      0|		chunk_len += parameter_len;
 5188|      0|	}
 5189|       |
 5190|       |	/* And now tell the peer which extensions we support */
 5191|  19.2k|	num_ext = 0;
 5192|  19.2k|	pr_supported = (struct sctp_supported_chunk_types_param *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5193|  19.2k|	if (stcb->asoc.prsctp_supported == 1) {
  ------------------
  |  Branch (5193:6): [True: 18.5k, False: 732]
  ------------------
 5194|  18.5k|		pr_supported->chunk_types[num_ext++] = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|  18.5k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
 5195|  18.5k|		if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (5195:7): [True: 7.88k, False: 10.6k]
  ------------------
 5196|  7.88k|			pr_supported->chunk_types[num_ext++] = SCTP_IFORWARD_CUM_TSN;
  ------------------
  |  |  490|  7.88k|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
 5197|  7.88k|		}
 5198|  18.5k|	}
 5199|  19.2k|	if (stcb->asoc.auth_supported == 1) {
  ------------------
  |  Branch (5199:6): [True: 19.2k, False: 0]
  ------------------
 5200|  19.2k|		pr_supported->chunk_types[num_ext++] = SCTP_AUTHENTICATION;
  ------------------
  |  |  470|  19.2k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
 5201|  19.2k|	}
 5202|  19.2k|	if (stcb->asoc.asconf_supported == 1) {
  ------------------
  |  Branch (5202:6): [True: 16.7k, False: 2.50k]
  ------------------
 5203|  16.7k|		pr_supported->chunk_types[num_ext++] = SCTP_ASCONF;
  ------------------
  |  |  489|  16.7k|#define SCTP_ASCONF		0xc1
  ------------------
 5204|  16.7k|		pr_supported->chunk_types[num_ext++] = SCTP_ASCONF_ACK;
  ------------------
  |  |  477|  16.7k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
 5205|  16.7k|	}
 5206|  19.2k|	if (stcb->asoc.reconfig_supported == 1) {
  ------------------
  |  Branch (5206:6): [True: 19.2k, False: 0]
  ------------------
 5207|  19.2k|		pr_supported->chunk_types[num_ext++] = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  19.2k|#define SCTP_STREAM_RESET       0x82
  ------------------
 5208|  19.2k|	}
 5209|  19.2k|	if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (5209:6): [True: 8.31k, False: 10.9k]
  ------------------
 5210|  8.31k|		pr_supported->chunk_types[num_ext++] = SCTP_IDATA;
  ------------------
  |  |  474|  8.31k|#define SCTP_IDATA		0x40
  ------------------
 5211|  8.31k|	}
 5212|  19.2k|	if (stcb->asoc.nrsack_supported == 1) {
  ------------------
  |  Branch (5212:6): [True: 14.9k, False: 4.31k]
  ------------------
 5213|  14.9k|		pr_supported->chunk_types[num_ext++] = SCTP_NR_SELECTIVE_ACK;
  ------------------
  |  |  472|  14.9k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
 5214|  14.9k|	}
 5215|  19.2k|	if (stcb->asoc.pktdrop_supported == 1) {
  ------------------
  |  Branch (5215:6): [True: 14.9k, False: 4.31k]
  ------------------
 5216|  14.9k|		pr_supported->chunk_types[num_ext++] = SCTP_PACKET_DROPPED;
  ------------------
  |  |  479|  14.9k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
 5217|  14.9k|	}
 5218|  19.2k|	if (num_ext > 0) {
  ------------------
  |  Branch (5218:6): [True: 19.2k, False: 0]
  ------------------
 5219|  19.2k|		parameter_len = (uint16_t)sizeof(struct sctp_supported_chunk_types_param) + num_ext;
 5220|  19.2k|		pr_supported->ph.param_type = htons(SCTP_SUPPORTED_CHUNK_EXT);
 5221|  19.2k|		pr_supported->ph.param_length = htons(parameter_len);
 5222|  19.2k|		padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  19.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5223|  19.2k|		chunk_len += parameter_len;
 5224|  19.2k|	}
 5225|       |	/* add authentication parameters */
 5226|  19.2k|	if (stcb->asoc.auth_supported) {
  ------------------
  |  Branch (5226:6): [True: 19.2k, False: 0]
  ------------------
 5227|       |		/* attach RANDOM parameter, if available */
 5228|  19.2k|		if (stcb->asoc.authinfo.random != NULL) {
  ------------------
  |  Branch (5228:7): [True: 19.2k, False: 0]
  ------------------
 5229|  19.2k|			struct sctp_auth_random *randp;
 5230|       |
 5231|  19.2k|			if (padding_len > 0) {
  ------------------
  |  Branch (5231:8): [True: 19.0k, False: 261]
  ------------------
 5232|  19.0k|				memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|  19.0k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.0k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5233|  19.0k|				chunk_len += padding_len;
 5234|  19.0k|				padding_len = 0;
 5235|  19.0k|			}
 5236|  19.2k|			randp = (struct sctp_auth_random *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5237|  19.2k|			parameter_len = (uint16_t)sizeof(struct sctp_auth_random) + stcb->asoc.authinfo.random_len;
 5238|       |			/* random key already contains the header */
 5239|  19.2k|			memcpy(randp, stcb->asoc.authinfo.random->key, parameter_len);
 5240|  19.2k|			padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  19.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5241|  19.2k|			chunk_len += parameter_len;
 5242|  19.2k|		}
 5243|       |		/* add HMAC_ALGO parameter */
 5244|  19.2k|		if (stcb->asoc.local_hmacs != NULL) {
  ------------------
  |  Branch (5244:7): [True: 19.2k, False: 0]
  ------------------
 5245|  19.2k|			struct sctp_auth_hmac_algo *hmacs;
 5246|       |
 5247|  19.2k|			if (padding_len > 0) {
  ------------------
  |  Branch (5247:8): [True: 0, False: 19.2k]
  ------------------
 5248|      0|				memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5249|      0|				chunk_len += padding_len;
 5250|      0|				padding_len = 0;
 5251|      0|			}
 5252|  19.2k|			hmacs = (struct sctp_auth_hmac_algo *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5253|  19.2k|			parameter_len = (uint16_t)(sizeof(struct sctp_auth_hmac_algo) +
 5254|  19.2k|			                           stcb->asoc.local_hmacs->num_algo * sizeof(uint16_t));
 5255|  19.2k|			hmacs->ph.param_type = htons(SCTP_HMAC_LIST);
 5256|  19.2k|			hmacs->ph.param_length = htons(parameter_len);
 5257|  19.2k|			sctp_serialize_hmaclist(stcb->asoc.local_hmacs, (uint8_t *)hmacs->hmac_ids);
 5258|  19.2k|			padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  19.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5259|  19.2k|			chunk_len += parameter_len;
 5260|  19.2k|		}
 5261|       |		/* add CHUNKS parameter */
 5262|  19.2k|		if (stcb->asoc.local_auth_chunks != NULL) {
  ------------------
  |  Branch (5262:7): [True: 19.2k, False: 0]
  ------------------
 5263|  19.2k|			struct sctp_auth_chunk_list *chunks;
 5264|       |
 5265|  19.2k|			if (padding_len > 0) {
  ------------------
  |  Branch (5265:8): [True: 19.2k, False: 0]
  ------------------
 5266|  19.2k|				memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5267|  19.2k|				chunk_len += padding_len;
 5268|  19.2k|				padding_len = 0;
 5269|  19.2k|			}
 5270|  19.2k|			chunks = (struct sctp_auth_chunk_list *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  19.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5271|  19.2k|			parameter_len = (uint16_t)(sizeof(struct sctp_auth_chunk_list) +
 5272|  19.2k|			                           sctp_auth_get_chklist_size(stcb->asoc.local_auth_chunks));
 5273|  19.2k|			chunks->ph.param_type = htons(SCTP_CHUNK_LIST);
 5274|  19.2k|			chunks->ph.param_length = htons(parameter_len);
 5275|  19.2k|			sctp_serialize_auth_chunks(stcb->asoc.local_auth_chunks, chunks->chunk_types);
 5276|  19.2k|			padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  19.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5277|  19.2k|			chunk_len += parameter_len;
 5278|  19.2k|		}
 5279|  19.2k|	}
 5280|       |
 5281|       |	/* now any cookie time extensions */
 5282|  19.2k|	if (stcb->asoc.cookie_preserve_req > 0) {
  ------------------
  |  Branch (5282:6): [True: 62, False: 19.2k]
  ------------------
 5283|     62|		struct sctp_cookie_perserve_param *cookie_preserve;
 5284|       |
 5285|     62|		if (padding_len > 0) {
  ------------------
  |  Branch (5285:7): [True: 62, False: 0]
  ------------------
 5286|     62|			memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|     62|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     62|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5287|     62|			chunk_len += padding_len;
 5288|     62|			padding_len = 0;
 5289|     62|		}
 5290|     62|		parameter_len = (uint16_t)sizeof(struct sctp_cookie_perserve_param);
 5291|     62|		cookie_preserve = (struct sctp_cookie_perserve_param *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|     62|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     62|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5292|     62|		cookie_preserve->ph.param_type = htons(SCTP_COOKIE_PRESERVE);
 5293|     62|		cookie_preserve->ph.param_length = htons(parameter_len);
 5294|     62|		cookie_preserve->time = htonl(stcb->asoc.cookie_preserve_req);
 5295|     62|		stcb->asoc.cookie_preserve_req = 0;
 5296|     62|		chunk_len += parameter_len;
 5297|     62|	}
 5298|       |
 5299|  19.2k|	if (stcb->asoc.scope.ipv4_addr_legal || stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (5299:6): [True: 0, False: 19.2k]
  |  Branch (5299:42): [True: 0, False: 19.2k]
  ------------------
 5300|      0|		uint8_t i;
 5301|       |
 5302|      0|		if (padding_len > 0) {
  ------------------
  |  Branch (5302:7): [True: 0, False: 0]
  ------------------
 5303|      0|			memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5304|      0|			chunk_len += padding_len;
 5305|      0|			padding_len = 0;
 5306|      0|		}
 5307|      0|		parameter_len = (uint16_t)sizeof(struct sctp_paramhdr);
 5308|      0|		if (stcb->asoc.scope.ipv4_addr_legal) {
  ------------------
  |  Branch (5308:7): [True: 0, False: 0]
  ------------------
 5309|      0|			parameter_len += (uint16_t)sizeof(uint16_t);
 5310|      0|		}
 5311|      0|		if (stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (5311:7): [True: 0, False: 0]
  ------------------
 5312|      0|			parameter_len += (uint16_t)sizeof(uint16_t);
 5313|      0|		}
 5314|      0|		sup_addr = (struct sctp_supported_addr_param *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5315|      0|		sup_addr->ph.param_type = htons(SCTP_SUPPORTED_ADDRTYPE);
 5316|      0|		sup_addr->ph.param_length = htons(parameter_len);
 5317|      0|		i = 0;
 5318|      0|		if (stcb->asoc.scope.ipv4_addr_legal) {
  ------------------
  |  Branch (5318:7): [True: 0, False: 0]
  ------------------
 5319|      0|			sup_addr->addr_type[i++] = htons(SCTP_IPV4_ADDRESS);
 5320|      0|		}
 5321|      0|		if (stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (5321:7): [True: 0, False: 0]
  ------------------
 5322|      0|			sup_addr->addr_type[i++] = htons(SCTP_IPV6_ADDRESS);
 5323|      0|		}
 5324|      0|		padding_len = 4 - 2 * i;
 5325|      0|		chunk_len += parameter_len;
 5326|      0|	}
 5327|       |
 5328|  19.2k|	SCTP_BUF_LEN(m) = chunk_len;
  ------------------
  |  |  801|  19.2k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  19.2k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5329|       |	/* now the addresses */
 5330|       |	/* To optimize this we could put the scoping stuff
 5331|       |	 * into a structure and remove the individual uint8's from
 5332|       |	 * the assoc structure. Then we could just sifa in the
 5333|       |	 * address within the stcb. But for now this is a quick
 5334|       |	 * hack to get the address stuff teased apart.
 5335|       |	 */
 5336|  19.2k|	m_last = sctp_add_addresses_to_i_ia(inp, stcb, &stcb->asoc.scope,
 5337|  19.2k|	                                    m, cnt_inits_to,
 5338|  19.2k|	                                    &padding_len, &chunk_len);
 5339|       |
 5340|  19.2k|	init->ch.chunk_length = htons(chunk_len);
 5341|  19.2k|	if (padding_len > 0) {
  ------------------
  |  Branch (5341:6): [True: 19.2k, False: 62]
  ------------------
 5342|  19.2k|		if (sctp_add_pad_tombuf(m_last, padding_len) == NULL) {
  ------------------
  |  Branch (5342:7): [True: 0, False: 19.2k]
  ------------------
 5343|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5344|      0|			return;
 5345|      0|		}
 5346|  19.2k|	}
 5347|  19.2k|	SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT - calls lowlevel_output\n");
 5348|  19.2k|	if ((error = sctp_lowlevel_chunk_output(inp, stcb, net,
  ------------------
  |  Branch (5348:6): [True: 2.20k, False: 17.0k]
  ------------------
 5349|  19.2k|	                                        (struct sockaddr *)&net->ro._l_addr,
 5350|  19.2k|	                                        m, 0, NULL, 0, 0, 0, 0,
 5351|  19.2k|	                                        inp->sctp_lport, stcb->rport, htonl(0),
  ------------------
  |  |  426|  19.2k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  19.2k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  19.2k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5352|  19.2k|	                                        net->port, NULL,
 5353|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5354|       |	                                        0, 0,
 5355|       |#endif
 5356|  19.2k|	                                        false, so_locked))) {
 5357|  2.20k|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Gak send error %d\n", error);
 5358|  2.20k|		if (error == ENOBUFS) {
  ------------------
  |  Branch (5358:7): [True: 0, False: 2.20k]
  ------------------
 5359|      0|			stcb->asoc.ifp_had_enobuf = 1;
 5360|      0|			SCTP_STAT_INCR(sctps_lowlevelerr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5361|      0|		}
 5362|  17.0k|	} else {
 5363|  17.0k|		stcb->asoc.ifp_had_enobuf = 0;
 5364|  17.0k|	}
 5365|  19.2k|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|  19.2k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  19.2k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  19.2k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  19.2k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5366|       |	(void)SCTP_GETTIME_TIMEVAL(&net->last_sent_time);
  ------------------
  |  |  991|  19.2k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 5367|  19.2k|}
sctp_arethere_unrecognized_parameters:
 5376|  8.35k|{
 5377|       |	/*
 5378|       |	 * Given a mbuf containing an INIT or INIT-ACK with the param_offset
 5379|       |	 * being equal to the beginning of the params i.e. (iphlen +
 5380|       |	 * sizeof(struct sctp_init_msg) parse through the parameters to the
 5381|       |	 * end of the mbuf verifying that all parameters are known.
 5382|       |	 *
 5383|       |	 * For unknown parameters build and return a mbuf with
 5384|       |	 * UNRECOGNIZED_PARAMETER errors. If the flags indicate to stop
 5385|       |	 * processing this chunk stop, and set *abort_processing to 1.
 5386|       |	 *
 5387|       |	 * By having param_offset be pre-set to where parameters begin it is
 5388|       |	 * hoped that this routine may be reused in the future by new
 5389|       |	 * features.
 5390|       |	 */
 5391|  8.35k|	struct sctp_zero_checksum_acceptable zero_chksum, *zero_chksum_p;
 5392|  8.35k|	struct sctp_paramhdr *phdr, params;
 5393|  8.35k|	struct mbuf *mat, *m_tmp, *op_err, *op_err_last;
 5394|  8.35k|	int at, limit, pad_needed;
 5395|  8.35k|	uint16_t ptype, plen, padded_size;
 5396|       |
 5397|  8.35k|	*abort_processing = 0;
 5398|  8.35k|	if (cookie_found != NULL) {
  ------------------
  |  Branch (5398:6): [True: 8.35k, False: 0]
  ------------------
 5399|  8.35k|		*cookie_found = 0;
 5400|  8.35k|	}
 5401|  8.35k|	if (edmid != NULL) {
  ------------------
  |  Branch (5401:6): [True: 0, False: 8.35k]
  ------------------
 5402|      0|		*edmid = SCTP_EDMID_NONE;
  ------------------
  |  |  809|      0|#define SCTP_EDMID_NONE             0
  ------------------
 5403|      0|	}
 5404|  8.35k|	mat = in_initpkt;
 5405|  8.35k|	limit = ntohs(cp->chunk_length) - sizeof(struct sctp_init_chunk);
 5406|  8.35k|	at = param_offset;
 5407|  8.35k|	op_err = NULL;
 5408|  8.35k|	op_err_last = NULL;
 5409|  8.35k|	pad_needed = 0;
 5410|  8.35k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "Check for unrecognized param's\n");
 5411|  8.35k|	phdr = sctp_get_next_param(mat, at, &params, sizeof(params));
 5412|   133k|	while ((phdr != NULL) && ((size_t)limit >= sizeof(struct sctp_paramhdr))) {
  ------------------
  |  Branch (5412:9): [True: 125k, False: 8.02k]
  |  Branch (5412:27): [True: 125k, False: 29]
  ------------------
 5413|   125k|		ptype = ntohs(phdr->param_type);
 5414|   125k|		plen = ntohs(phdr->param_length);
 5415|   125k|		if ((plen > limit) || (plen < sizeof(struct sctp_paramhdr))) {
  ------------------
  |  Branch (5415:7): [True: 39, False: 125k]
  |  Branch (5415:25): [True: 11, False: 125k]
  ------------------
 5416|       |			/* wacked parameter */
 5417|     50|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error %d\n", plen);
 5418|     50|			goto invalid_size;
 5419|     50|		}
 5420|   125k|		limit -= SCTP_SIZE32(plen);
  ------------------
  |  |  383|   125k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5421|       |		/*-
 5422|       |		 * All parameters for all chunks that we know/understand are
 5423|       |		 * listed here. We process them other places and make
 5424|       |		 * appropriate stop actions per the upper bits. However this
 5425|       |		 * is the generic routine processor's can call to get back
 5426|       |		 * an operr.. to either incorporate (init-ack) or send.
 5427|       |		 */
 5428|   125k|		padded_size = SCTP_SIZE32(plen);
  ------------------
  |  |  383|   125k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5429|   125k|		switch (ptype) {
 5430|       |			/* Param's with variable size */
 5431|    465|		case SCTP_HEARTBEAT_INFO:
  ------------------
  |  |  390|    465|#define SCTP_HEARTBEAT_INFO		0x0001
  ------------------
  |  Branch (5431:3): [True: 465, False: 125k]
  ------------------
 5432|  2.24k|		case SCTP_UNRECOG_PARAM:
  ------------------
  |  |  397|  2.24k|#define SCTP_UNRECOG_PARAM		0x0008
  ------------------
  |  Branch (5432:3): [True: 1.77k, False: 124k]
  ------------------
 5433|  3.84k|		case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|  3.84k|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (5433:3): [True: 1.59k, False: 124k]
  ------------------
 5434|       |			/* ok skip fwd */
 5435|  3.84k|			at += padded_size;
 5436|  3.84k|			break;
 5437|  10.1k|		case SCTP_STATE_COOKIE:
  ------------------
  |  |  396|  10.1k|#define SCTP_STATE_COOKIE		0x0007
  ------------------
  |  Branch (5437:3): [True: 10.1k, False: 115k]
  ------------------
 5438|  10.1k|			if (cookie_found != NULL) {
  ------------------
  |  Branch (5438:8): [True: 10.1k, False: 0]
  ------------------
 5439|  10.1k|				*cookie_found = 1;
 5440|  10.1k|			}
 5441|  10.1k|			at += padded_size;
 5442|  10.1k|			break;
 5443|       |			/* Param's with variable size within a range */
 5444|  10.2k|		case SCTP_CHUNK_LIST:
  ------------------
  |  |  420|  10.2k|#define SCTP_CHUNK_LIST			0x8003
  ------------------
  |  Branch (5444:3): [True: 10.2k, False: 115k]
  ------------------
 5445|  32.7k|		case SCTP_SUPPORTED_CHUNK_EXT:
  ------------------
  |  |  425|  32.7k|#define SCTP_SUPPORTED_CHUNK_EXT	0x8008
  ------------------
  |  Branch (5445:3): [True: 22.5k, False: 103k]
  ------------------
 5446|  32.7k|			if (padded_size > (sizeof(struct sctp_supported_chunk_types_param) + (sizeof(uint8_t) * SCTP_MAX_SUPPORTED_EXT))) {
  ------------------
  |  |  135|  32.7k|#define SCTP_MAX_SUPPORTED_EXT 256
  ------------------
  |  Branch (5446:8): [True: 1, False: 32.7k]
  ------------------
 5447|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error chklist %d\n", plen);
 5448|      1|				goto invalid_size;
 5449|      1|			}
 5450|  32.7k|			at += padded_size;
 5451|  32.7k|			break;
 5452|  1.86k|		case SCTP_SUPPORTED_ADDRTYPE:
  ------------------
  |  |  400|  1.86k|#define SCTP_SUPPORTED_ADDRTYPE		0x000c
  ------------------
  |  Branch (5452:3): [True: 1.86k, False: 123k]
  ------------------
 5453|  1.86k|			if (padded_size > SCTP_MAX_ADDR_PARAMS_SIZE) {
  ------------------
  |  |   86|  1.86k|#define SCTP_MAX_ADDR_PARAMS_SIZE 12
  ------------------
  |  Branch (5453:8): [True: 1, False: 1.86k]
  ------------------
 5454|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error supaddrtype %d\n", plen);
 5455|      1|				goto invalid_size;
 5456|      1|			}
 5457|  1.86k|			at += padded_size;
 5458|  1.86k|			break;
 5459|  1.00k|		case SCTP_ZERO_CHECKSUM_ACCEPTABLE:
  ------------------
  |  |  417|  1.00k|#define SCTP_ZERO_CHECKSUM_ACCEPTABLE	0x8001
  ------------------
  |  Branch (5459:3): [True: 1.00k, False: 124k]
  ------------------
 5460|  1.00k|			if (padded_size != sizeof(struct sctp_zero_checksum_acceptable)) {
  ------------------
  |  Branch (5460:8): [True: 1, False: 1.00k]
  ------------------
 5461|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error checksum acceptable %d\n", plen);
 5462|      1|				goto invalid_size;
 5463|      1|			}
 5464|  1.00k|			if (edmid != NULL) {
  ------------------
  |  Branch (5464:8): [True: 0, False: 1.00k]
  ------------------
 5465|      0|				phdr = sctp_get_next_param(mat, at,
 5466|      0|				                           (struct sctp_paramhdr *)&zero_chksum,
 5467|      0|				                           sizeof(struct sctp_zero_checksum_acceptable));
 5468|      0|				if (phdr != NULL) {
  ------------------
  |  Branch (5468:9): [True: 0, False: 0]
  ------------------
 5469|      0|					zero_chksum_p = (struct sctp_zero_checksum_acceptable *)phdr;
 5470|      0|					*edmid = ntohl(zero_chksum_p->edmid);
 5471|      0|				}
 5472|      0|			}
 5473|  1.00k|			at += padded_size;
 5474|  1.00k|			break;
 5475|  7.49k|		case SCTP_RANDOM:
  ------------------
  |  |  419|  7.49k|#define SCTP_RANDOM			0x8002
  ------------------
  |  Branch (5475:3): [True: 7.49k, False: 118k]
  ------------------
 5476|  7.49k|			if (padded_size > (sizeof(struct sctp_auth_random) + SCTP_RANDOM_MAX_SIZE)) {
  ------------------
  |  |  514|  7.49k|#define SCTP_RANDOM_MAX_SIZE 256
  ------------------
  |  Branch (5476:8): [True: 1, False: 7.49k]
  ------------------
 5477|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error random %d\n", plen);
 5478|      1|				goto invalid_size;
 5479|      1|			}
 5480|  7.49k|			at += padded_size;
 5481|  7.49k|			break;
 5482|  2.00k|		case SCTP_SET_PRIM_ADDR:
  ------------------
  |  |  433|  2.00k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (5482:3): [True: 2.00k, False: 123k]
  ------------------
 5483|  2.96k|		case SCTP_DEL_IP_ADDRESS:
  ------------------
  |  |  431|  2.96k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (5483:3): [True: 957, False: 124k]
  ------------------
 5484|  5.08k|		case SCTP_ADD_IP_ADDRESS:
  ------------------
  |  |  430|  5.08k|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (5484:3): [True: 2.11k, False: 123k]
  ------------------
 5485|  5.08k|			if ((padded_size != sizeof(struct sctp_asconf_addrv4_param)) &&
  ------------------
  |  Branch (5485:8): [True: 585, False: 4.49k]
  ------------------
 5486|    585|			    (padded_size != sizeof(struct sctp_asconf_addr_param))) {
  ------------------
  |  Branch (5486:8): [True: 5, False: 580]
  ------------------
 5487|      5|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error setprim %d\n", plen);
 5488|      5|				goto invalid_size;
 5489|      5|			}
 5490|  5.07k|			at += padded_size;
 5491|  5.07k|			break;
 5492|       |			/* Param's with a fixed size */
 5493|    201|		case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|    201|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (5493:3): [True: 201, False: 125k]
  ------------------
 5494|    201|			if (padded_size != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (5494:8): [True: 2, False: 199]
  ------------------
 5495|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error ipv4 addr %d\n", plen);
 5496|      2|				goto invalid_size;
 5497|      2|			}
 5498|    199|			at += padded_size;
 5499|    199|			break;
 5500|     73|		case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|     73|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (5500:3): [True: 73, False: 125k]
  ------------------
 5501|     73|			if (padded_size != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (5501:8): [True: 1, False: 72]
  ------------------
 5502|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error ipv6 addr %d\n", plen);
 5503|      1|				goto invalid_size;
 5504|      1|			}
 5505|     72|			at += padded_size;
 5506|     72|			break;
 5507|    701|		case SCTP_COOKIE_PRESERVE:
  ------------------
  |  |  398|    701|#define SCTP_COOKIE_PRESERVE		0x0009
  ------------------
  |  Branch (5507:3): [True: 701, False: 125k]
  ------------------
 5508|    701|			if (padded_size != sizeof(struct sctp_cookie_perserve_param)) {
  ------------------
  |  Branch (5508:8): [True: 2, False: 699]
  ------------------
 5509|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error cookie-preserve %d\n", plen);
 5510|      2|				goto invalid_size;
 5511|      2|			}
 5512|    699|			at += padded_size;
 5513|    699|			break;
 5514|  3.02k|		case SCTP_HAS_NAT_SUPPORT:
  ------------------
  |  |  437|  3.02k|#define SCTP_HAS_NAT_SUPPORT		0xc007
  ------------------
  |  Branch (5514:3): [True: 3.02k, False: 122k]
  ------------------
 5515|  3.02k|			if (padded_size != sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (5515:8): [True: 2, False: 3.02k]
  ------------------
 5516|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error nat support %d\n", plen);
 5517|      2|				goto invalid_size;
 5518|      2|			}
 5519|  3.02k|			*nat_friendly = 1;
 5520|  3.02k|			at += padded_size;
 5521|  3.02k|			break;
 5522|  10.5k|		case SCTP_PRSCTP_SUPPORTED:
  ------------------
  |  |  428|  10.5k|#define SCTP_PRSCTP_SUPPORTED		0xc000
  ------------------
  |  Branch (5522:3): [True: 10.5k, False: 115k]
  ------------------
 5523|  10.5k|			if (padded_size != sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (5523:8): [True: 1, False: 10.5k]
  ------------------
 5524|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error prsctp %d\n", plen);
 5525|      1|				goto invalid_size;
 5526|      1|			}
 5527|  10.5k|			at += padded_size;
 5528|  10.5k|			break;
 5529|  13.3k|		case SCTP_ECN_CAPABLE:
  ------------------
  |  |  416|  13.3k|#define SCTP_ECN_CAPABLE		0x8000
  ------------------
  |  Branch (5529:3): [True: 13.3k, False: 112k]
  ------------------
 5530|  13.3k|			if (padded_size != sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (5530:8): [True: 2, False: 13.3k]
  ------------------
 5531|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error ecn %d\n", plen);
 5532|      2|				goto invalid_size;
 5533|      2|			}
 5534|  13.3k|			at += padded_size;
 5535|  13.3k|			break;
 5536|  7.70k|		case SCTP_ULP_ADAPTATION:
  ------------------
  |  |  435|  7.70k|#define SCTP_ULP_ADAPTATION		0xc006
  ------------------
  |  Branch (5536:3): [True: 7.70k, False: 118k]
  ------------------
 5537|  7.70k|			if (padded_size != sizeof(struct sctp_adaptation_layer_indication)) {
  ------------------
  |  Branch (5537:8): [True: 2, False: 7.70k]
  ------------------
 5538|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error adapatation %d\n", plen);
 5539|      2|				goto invalid_size;
 5540|      2|			}
 5541|  7.70k|			at += padded_size;
 5542|  7.70k|			break;
 5543|    498|		case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|    498|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (5543:3): [True: 498, False: 125k]
  ------------------
 5544|    498|			if (padded_size != sizeof(struct sctp_asconf_paramhdr)) {
  ------------------
  |  Branch (5544:8): [True: 2, False: 496]
  ------------------
 5545|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error success %d\n", plen);
 5546|      2|				goto invalid_size;
 5547|      2|			}
 5548|    496|			at += padded_size;
 5549|    496|			break;
 5550|      7|		case SCTP_HOSTNAME_ADDRESS:
  ------------------
  |  |  399|      7|#define SCTP_HOSTNAME_ADDRESS		0x000b
  ------------------
  |  Branch (5550:3): [True: 7, False: 125k]
  ------------------
 5551|      7|		{
 5552|       |			/* Hostname parameters are deprecated. */
 5553|      7|			struct sctp_gen_error_cause *cause;
 5554|      7|			int l_len;
 5555|       |
 5556|      7|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Can't handle hostname addresses.. abort processing\n");
 5557|      7|			*abort_processing = 1;
 5558|      7|			sctp_m_freem(op_err);
  ------------------
  |  |   52|      7|#define sctp_m_freem m_freem
  ------------------
 5559|      7|			op_err = NULL;
 5560|      7|			op_err_last = NULL;
 5561|      7|#ifdef INET6
 5562|      7|			l_len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      7|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      7|                           sizeof(struct sctphdr))
  ------------------
 5563|       |#else
 5564|       |			l_len = SCTP_MIN_V4_OVERHEAD;
 5565|       |#endif
 5566|      7|			l_len += sizeof(struct sctp_chunkhdr);
 5567|      7|			l_len += sizeof(struct sctp_gen_error_cause);
 5568|      7|			op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      7|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      7|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5569|      7|			if (op_err != NULL) {
  ------------------
  |  Branch (5569:8): [True: 7, False: 0]
  ------------------
 5570|       |				/*
 5571|       |				 * Pre-reserve space for IP, SCTP, and
 5572|       |				 * chunk header.
 5573|       |				 */
 5574|      7|#ifdef INET6
 5575|      7|				SCTP_BUF_RESV_UF(op_err, sizeof(struct ip6_hdr));
  ------------------
  |  |  804|      7|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      7|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5576|       |#else
 5577|       |				SCTP_BUF_RESV_UF(op_err, sizeof(struct ip));
 5578|       |#endif
 5579|      7|				SCTP_BUF_RESV_UF(op_err, sizeof(struct sctphdr));
  ------------------
  |  |  804|      7|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      7|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5580|      7|				SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|      7|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      7|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5581|      7|				SCTP_BUF_LEN(op_err) = sizeof(struct sctp_gen_error_cause);
  ------------------
  |  |  801|      7|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      7|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5582|      7|				cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|      7|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      7|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5583|      7|				cause->code = htons(SCTP_CAUSE_UNRESOLVABLE_ADDR);
 5584|      7|				cause->length = htons((uint16_t)(sizeof(struct sctp_gen_error_cause) + plen));
 5585|      7|				SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  802|      7|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      7|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              				SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  770|      7|#define SCTP_M_COPYM	m_copym
  ------------------
              				SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |   60|      7|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 5586|      7|				if (SCTP_BUF_NEXT(op_err) == NULL) {
  ------------------
  |  |  802|      7|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      7|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5586:9): [True: 0, False: 7]
  ------------------
 5587|      0|					sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5588|      0|					op_err = NULL;
 5589|      0|					op_err_last = NULL;
 5590|      0|				}
 5591|      7|			}
 5592|      7|			return (op_err);
 5593|    498|		}
 5594|  27.5k|		default:
  ------------------
  |  Branch (5594:3): [True: 27.5k, False: 98.2k]
  ------------------
 5595|       |			/*
 5596|       |			 * we do not recognize the parameter figure out what
 5597|       |			 * we do.
 5598|       |			 */
 5599|  27.5k|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Hit default param %x\n", ptype);
 5600|  27.5k|			if ((ptype & 0x4000) == 0x4000) {
  ------------------
  |  Branch (5600:8): [True: 11.1k, False: 16.3k]
  ------------------
 5601|       |				/* Report bit is set?? */
 5602|  11.1k|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "report op err\n");
 5603|  11.1k|				if (op_err == NULL) {
  ------------------
  |  Branch (5603:9): [True: 336, False: 10.8k]
  ------------------
 5604|    336|					int l_len;
 5605|       |					/* Ok need to try to get an mbuf */
 5606|    336|#ifdef INET6
 5607|    336|					l_len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|    336|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|    336|                           sizeof(struct sctphdr))
  ------------------
 5608|       |#else
 5609|       |					l_len = SCTP_MIN_V4_OVERHEAD;
 5610|       |#endif
 5611|    336|					l_len += sizeof(struct sctp_chunkhdr);
 5612|    336|					l_len += sizeof(struct sctp_paramhdr);
 5613|    336|					op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    336|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    336|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5614|    336|					if (op_err) {
  ------------------
  |  Branch (5614:10): [True: 336, False: 0]
  ------------------
 5615|    336|						SCTP_BUF_LEN(op_err) = 0;
  ------------------
  |  |  801|    336|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    336|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5616|    336|#ifdef INET6
 5617|    336|						SCTP_BUF_RESV_UF(op_err, sizeof(struct ip6_hdr));
  ------------------
  |  |  804|    336|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    336|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5618|       |#else
 5619|       |						SCTP_BUF_RESV_UF(op_err, sizeof(struct ip));
 5620|       |#endif
 5621|    336|						SCTP_BUF_RESV_UF(op_err, sizeof(struct sctphdr));
  ------------------
  |  |  804|    336|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    336|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5622|    336|						SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|    336|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    336|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5623|    336|						op_err_last = op_err;
 5624|    336|					}
 5625|    336|				}
 5626|  11.1k|				if (op_err != NULL) {
  ------------------
  |  Branch (5626:9): [True: 11.1k, False: 0]
  ------------------
 5627|       |					/* If we have space */
 5628|  11.1k|					struct sctp_paramhdr *param;
 5629|       |
 5630|  11.1k|					if (pad_needed > 0) {
  ------------------
  |  Branch (5630:10): [True: 3.38k, False: 7.80k]
  ------------------
 5631|  3.38k|						op_err_last = sctp_add_pad_tombuf(op_err_last, pad_needed);
 5632|  3.38k|					}
 5633|  11.1k|					if (op_err_last == NULL) {
  ------------------
  |  Branch (5633:10): [True: 0, False: 11.1k]
  ------------------
 5634|      0|						sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5635|      0|						op_err = NULL;
 5636|      0|						op_err_last = NULL;
 5637|      0|						goto more_processing;
 5638|      0|					}
 5639|  11.1k|					if (M_TRAILINGSPACE(op_err_last) < (int)sizeof(struct sctp_paramhdr)) {
  ------------------
  |  |  355|  11.1k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  11.1k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  11.1k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 6.26k, False: 4.92k]
  |  |  ------------------
  |  |  356|  11.1k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  6.26k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  6.26k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  6.26k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 6.26k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  6.26k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  6.26k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  6.26k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 6.26k]
  |  |  |  |  ------------------
  |  |  |  |  328|  6.26k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  6.26k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 0, False: 6.26k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  6.26k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  11.1k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  4.92k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  4.92k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.92k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  4.92k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  4.92k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (5639:10): [True: 6.26k, False: 4.92k]
  ------------------
 5640|  6.26k|						m_tmp = sctp_get_mbuf_for_msg(sizeof(struct sctp_paramhdr), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  6.26k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              						m_tmp = sctp_get_mbuf_for_msg(sizeof(struct sctp_paramhdr), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  6.26k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5641|  6.26k|						if (m_tmp == NULL) {
  ------------------
  |  Branch (5641:11): [True: 0, False: 6.26k]
  ------------------
 5642|      0|							sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5643|      0|							op_err = NULL;
 5644|      0|							op_err_last = NULL;
 5645|      0|							goto more_processing;
 5646|      0|						}
 5647|  6.26k|						SCTP_BUF_LEN(m_tmp) = 0;
  ------------------
  |  |  801|  6.26k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  6.26k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5648|  6.26k|						SCTP_BUF_NEXT(m_tmp) = NULL;
  ------------------
  |  |  802|  6.26k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  6.26k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5649|  6.26k|						SCTP_BUF_NEXT(op_err_last) = m_tmp;
  ------------------
  |  |  802|  6.26k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  6.26k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5650|  6.26k|						op_err_last = m_tmp;
 5651|  6.26k|					}
 5652|  11.1k|					param = (struct sctp_paramhdr *)(mtod(op_err_last, caddr_t) + SCTP_BUF_LEN(op_err_last));
  ------------------
  |  |   96|  11.1k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  11.1k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              					param = (struct sctp_paramhdr *)(mtod(op_err_last, caddr_t) + SCTP_BUF_LEN(op_err_last));
  ------------------
  |  |  801|  11.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  11.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5653|  11.1k|					param->param_type = htons(SCTP_UNRECOG_PARAM);
 5654|  11.1k|					param->param_length = htons((uint16_t)sizeof(struct sctp_paramhdr) + plen);
 5655|  11.1k|					SCTP_BUF_LEN(op_err_last) += sizeof(struct sctp_paramhdr);
  ------------------
  |  |  801|  11.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  11.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5656|  11.1k|					SCTP_BUF_NEXT(op_err_last) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  802|  11.1k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  11.1k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              					SCTP_BUF_NEXT(op_err_last) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  770|  11.1k|#define SCTP_M_COPYM	m_copym
  ------------------
              					SCTP_BUF_NEXT(op_err_last) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |   60|  11.1k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 5657|  11.1k|					if (SCTP_BUF_NEXT(op_err_last) == NULL) {
  ------------------
  |  |  802|  11.1k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  11.1k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5657:10): [True: 0, False: 11.1k]
  ------------------
 5658|      0|						sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5659|      0|						op_err = NULL;
 5660|      0|						op_err_last = NULL;
 5661|      0|						goto more_processing;
 5662|  11.1k|					} else {
 5663|  22.4k|						while (SCTP_BUF_NEXT(op_err_last) != NULL) {
  ------------------
  |  |  802|  22.4k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  22.4k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5663:14): [True: 11.3k, False: 11.1k]
  ------------------
 5664|  11.3k|							op_err_last = SCTP_BUF_NEXT(op_err_last);
  ------------------
  |  |  802|  11.3k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  11.3k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5665|  11.3k|						}
 5666|  11.1k|					}
 5667|  11.1k|					if (plen % 4 != 0) {
  ------------------
  |  Branch (5667:10): [True: 3.49k, False: 7.70k]
  ------------------
 5668|  3.49k|						pad_needed = 4 - (plen % 4);
 5669|  7.70k|					} else {
 5670|  7.70k|						pad_needed = 0;
 5671|  7.70k|					}
 5672|  11.1k|				}
 5673|  11.1k|			}
 5674|  27.5k|		more_processing:
 5675|  27.5k|			if ((ptype & 0x8000) == 0x0000) {
  ------------------
  |  Branch (5675:8): [True: 216, False: 27.3k]
  ------------------
 5676|    216|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "stop proc\n");
 5677|    216|				return (op_err);
 5678|  27.3k|			} else {
 5679|       |				/* skip this chunk and continue processing */
 5680|  27.3k|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "move on\n");
 5681|  27.3k|				at += SCTP_SIZE32(plen);
  ------------------
  |  |  383|  27.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5682|  27.3k|			}
 5683|  27.3k|			break;
 5684|   125k|		}
 5685|   125k|		phdr = sctp_get_next_param(mat, at, &params, sizeof(params));
 5686|   125k|	}
 5687|  8.05k|	return (op_err);
 5688|     73| invalid_size:
 5689|     73|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "abort flag set\n");
 5690|     73|	*abort_processing = 1;
 5691|     73|	sctp_m_freem(op_err);
  ------------------
  |  |   52|     73|#define sctp_m_freem m_freem
  ------------------
 5692|     73|	op_err = NULL;
 5693|     73|	op_err_last = NULL;
 5694|     73|	if (phdr != NULL) {
  ------------------
  |  Branch (5694:6): [True: 73, False: 0]
  ------------------
 5695|     73|		struct sctp_paramhdr *param;
 5696|     73|		int l_len;
 5697|     73|#ifdef INET6
 5698|     73|		l_len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|     73|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|     73|                           sizeof(struct sctphdr))
  ------------------
 5699|       |#else
 5700|       |		l_len = SCTP_MIN_V4_OVERHEAD;
 5701|       |#endif
 5702|     73|		l_len += sizeof(struct sctp_chunkhdr);
 5703|     73|		l_len += (2 * sizeof(struct sctp_paramhdr));
 5704|     73|		op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     73|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     73|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5705|     73|		if (op_err) {
  ------------------
  |  Branch (5705:7): [True: 73, False: 0]
  ------------------
 5706|     73|			SCTP_BUF_LEN(op_err) = 0;
  ------------------
  |  |  801|     73|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     73|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5707|     73|#ifdef INET6
 5708|     73|			SCTP_BUF_RESV_UF(op_err, sizeof(struct ip6_hdr));
  ------------------
  |  |  804|     73|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     73|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5709|       |#else
 5710|       |			SCTP_BUF_RESV_UF(op_err, sizeof(struct ip));
 5711|       |#endif
 5712|     73|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctphdr));
  ------------------
  |  |  804|     73|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     73|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5713|     73|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|     73|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     73|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5714|     73|			SCTP_BUF_LEN(op_err) = 2 * sizeof(struct sctp_paramhdr);
  ------------------
  |  |  801|     73|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     73|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5715|     73|			param = mtod(op_err, struct sctp_paramhdr *);
  ------------------
  |  |   96|     73|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     73|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5716|     73|			param->param_type = htons(SCTP_CAUSE_PROTOCOL_VIOLATION);
 5717|     73|			param->param_length = htons(2 * sizeof(struct sctp_paramhdr));
 5718|     73|			param++;
 5719|     73|			param->param_type = htons(ptype);
 5720|       |			param->param_length = htons(plen);
 5721|     73|		}
 5722|     73|	}
 5723|     73|	return (op_err);
 5724|  8.35k|}
sctp_get_frag_point:
 6860|  32.2k|{
 6861|  32.2k|	struct sctp_association *asoc;
 6862|  32.2k|	uint32_t frag_point, overhead;
 6863|       |
 6864|  32.2k|	asoc = &stcb->asoc;
 6865|       |	/* Consider IP header and SCTP common header. */
 6866|  32.2k|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|  32.2k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (6866:6): [True: 0, False: 32.2k]
  ------------------
 6867|      0|		overhead = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 6868|  32.2k|	} else {
 6869|  32.2k|#if defined(__Userspace__)
 6870|  32.2k|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) {
  ------------------
  |  |  550|  32.2k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (6870:7): [True: 32.2k, False: 0]
  ------------------
 6871|  32.2k|			overhead = sizeof(struct sctphdr);
 6872|  32.2k|		} else {
 6873|      0|			overhead = SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      0|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      0|                              sizeof(struct sctphdr))
  ------------------
 6874|      0|		}
 6875|       |#else
 6876|       |		overhead = SCTP_MIN_V4_OVERHEAD;
 6877|       |#endif
 6878|  32.2k|	}
 6879|       |	/* Consider DATA/IDATA chunk header and AUTH header, if needed. */
 6880|  32.2k|	if (asoc->idata_supported) {
  ------------------
  |  Branch (6880:6): [True: 17.3k, False: 14.8k]
  ------------------
 6881|  17.3k|		overhead += sizeof(struct sctp_idata_chunk);
 6882|  17.3k|		if (sctp_auth_is_required_chunk(SCTP_IDATA, asoc->peer_auth_chunks)) {
  ------------------
  |  |  100|  17.3k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 14, False: 17.3k]
  |  |  |  Branch (100:51): [True: 714, False: 16.6k]
  |  |  ------------------
  ------------------
 6883|     14|			overhead += sctp_get_auth_chunk_len(asoc->peer_hmac_id);
 6884|     14|		}
 6885|  17.3k|	} else {
 6886|  14.8k|		overhead += sizeof(struct sctp_data_chunk);
 6887|  14.8k|		if (sctp_auth_is_required_chunk(SCTP_DATA, asoc->peer_auth_chunks)) {
  ------------------
  |  |  100|  14.8k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 40, False: 14.8k]
  |  |  |  Branch (100:51): [True: 1.29k, False: 13.5k]
  |  |  ------------------
  ------------------
 6888|     40|			overhead += sctp_get_auth_chunk_len(asoc->peer_hmac_id);
 6889|     40|		}
 6890|  14.8k|	}
 6891|  32.2k|	KASSERT(overhead % 4 == 0,
  ------------------
  |  |  112|  32.2k|	do {                         \
  |  |  113|  32.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 32.2k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  32.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 32.2k]
  |  |  ------------------
  ------------------
 6892|  32.2k|	        ("overhead (%u) not a multiple of 4", overhead));
 6893|       |	/* Consider padding. */
 6894|  32.2k|	if (asoc->smallest_mtu % 4 > 0) {
  ------------------
  |  Branch (6894:6): [True: 0, False: 32.2k]
  ------------------
 6895|      0|		overhead += (asoc->smallest_mtu % 4);
 6896|      0|	}
 6897|  32.2k|	KASSERT(asoc->smallest_mtu > overhead,
  ------------------
  |  |  112|  32.2k|	do {                         \
  |  |  113|  32.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 32.2k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  32.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 32.2k]
  |  |  ------------------
  ------------------
 6898|  32.2k|	        ("Association MTU (%u) too small for overhead (%u)",
 6899|  32.2k|	         asoc->smallest_mtu, overhead));
 6900|  32.2k|	frag_point = asoc->smallest_mtu - overhead;
 6901|  32.2k|	KASSERT(frag_point % 4 == 0,
  ------------------
  |  |  112|  32.2k|	do {                         \
  |  |  113|  32.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 32.2k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  32.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 32.2k]
  |  |  ------------------
  ------------------
 6902|  32.2k|	        ("frag_point (%u) not a multiple of 4", frag_point));
 6903|       |	/* Honor MAXSEG socket option. */
 6904|  32.2k|	if ((asoc->sctp_frag_point > 0) &&
  ------------------
  |  Branch (6904:6): [True: 0, False: 32.2k]
  ------------------
 6905|      0|	    (asoc->sctp_frag_point < frag_point)) {
  ------------------
  |  Branch (6905:6): [True: 0, False: 0]
  ------------------
 6906|      0|		frag_point = asoc->sctp_frag_point;
 6907|      0|	}
 6908|  32.2k|	return (frag_point);
 6909|  32.2k|}
sctp_toss_old_cookies:
 7573|  23.6k|{
 7574|  23.6k|	struct sctp_tmit_chunk *chk, *nchk;
 7575|       |
 7576|  4.34M|	TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  23.6k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  4.37M|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 4.34M, False: 23.6k]
  |  |  |  Branch (1130:24): [True: 4.34M, False: 0]
  |  |  ------------------
  |  | 1131|  4.34M|              (var) = (tvar))
  ------------------
 7577|  4.34M|		if (chk->rec.chunk_id.id == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  4.34M|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (7577:7): [True: 5.41k, False: 4.34M]
  ------------------
 7578|  5.41k|			TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (7578:4): [True: 877, False: 4.54k]
  |  Branch (7578:4): [Folded, False: 5.41k]
  ------------------
 7579|  5.41k|			asoc->ctrl_queue_cnt--;
 7580|  5.41k|			if (chk->data) {
  ------------------
  |  Branch (7580:8): [True: 5.41k, False: 0]
  ------------------
 7581|  5.41k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  5.41k|#define sctp_m_freem m_freem
  ------------------
 7582|  5.41k|				chk->data = NULL;
 7583|  5.41k|			}
 7584|  5.41k|			sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|  5.41k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  5.41k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  5.41k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 5.41k, False: 0]
  |  |  ------------------
  |  |  149|  5.41k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  5.41k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.41k|	do {                         \
  |  |  |  |  |  |  113|  5.41k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.41k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  5.41k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 5.41k, False: 0]
  |  |  ------------------
  |  |  151|  5.41k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|  5.41k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|  5.41k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 5.41k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|  5.41k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|  5.41k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|  5.41k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 5.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|  5.41k|	} \
  |  |  |  |  245|  5.41k|}
  |  |  ------------------
  |  |  152|  5.41k|			(_chk)->whoTo = NULL; \
  |  |  153|  5.41k|		} \
  |  |  154|  5.41k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  5.41k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  155|  5.41k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  5.41k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|  5.41k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 5.41k]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|  5.41k|		} else { \
  |  |  159|  5.41k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  5.41k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  5.41k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  5.41k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  5.41k|		} \
  |  |  163|  5.41k|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|  5.41k|}
  ------------------
  |  Branch (7584:4): [Folded, False: 5.41k]
  ------------------
 7585|  5.41k|		}
 7586|  4.34M|	}
 7587|  23.6k|}
sctp_toss_old_asconf:
 7591|    415|{
 7592|    415|	struct sctp_association *asoc;
 7593|    415|	struct sctp_tmit_chunk *chk, *nchk;
 7594|    415|	struct sctp_asconf_chunk *acp;
 7595|       |
 7596|    415|	asoc = &stcb->asoc;
 7597|    415|	TAILQ_FOREACH_SAFE(chk, &asoc->asconf_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|    415|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    415|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 415]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    415|              (var) = (tvar))
  ------------------
 7598|       |		/* find SCTP_ASCONF chunk in queue */
 7599|      0|		if (chk->rec.chunk_id.id == SCTP_ASCONF) {
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (7599:7): [True: 0, False: 0]
  ------------------
 7600|      0|			if (chk->data) {
  ------------------
  |  Branch (7600:8): [True: 0, False: 0]
  ------------------
 7601|      0|				acp = mtod(chk->data, struct sctp_asconf_chunk *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 7602|      0|				if (SCTP_TSN_GT(ntohl(acp->serial_number), asoc->asconf_seq_out_acked)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7603|       |					/* Not Acked yet */
 7604|      0|					break;
 7605|      0|				}
 7606|      0|			}
 7607|      0|			TAILQ_REMOVE(&asoc->asconf_send_queue, chk, sctp_next);
  ------------------
  |  Branch (7607:4): [True: 0, False: 0]
  |  Branch (7607:4): [Folded, False: 0]
  ------------------
 7608|      0|			asoc->ctrl_queue_cnt--;
 7609|      0|			if (chk->data) {
  ------------------
  |  Branch (7609:8): [True: 0, False: 0]
  ------------------
 7610|      0|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 7611|      0|				chk->data = NULL;
 7612|      0|			}
 7613|      0|			sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (7613:4): [Folded, False: 0]
  ------------------
 7614|      0|		}
 7615|      0|	}
 7616|    415|}
sctp_move_chunks_from_net:
 8369|  1.93k|{
 8370|  1.93k|	struct sctp_association *asoc;
 8371|  1.93k|	struct sctp_tmit_chunk *chk;
 8372|  1.93k|	struct sctp_stream_queue_pending *sp;
 8373|  1.93k|	unsigned int i;
 8374|       |
 8375|  1.93k|	if (net == NULL) {
  ------------------
  |  Branch (8375:6): [True: 0, False: 1.93k]
  ------------------
 8376|      0|		return;
 8377|      0|	}
 8378|  1.93k|	asoc = &stcb->asoc;
 8379|   499k|	for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (8379:14): [True: 497k, False: 1.93k]
  ------------------
 8380|   497k|		TAILQ_FOREACH(sp, &stcb->asoc.strmout[i].outqueue, next) {
  ------------------
  |  Branch (8380:3): [True: 0, False: 497k]
  ------------------
 8381|      0|			if (sp->net == net) {
  ------------------
  |  Branch (8381:8): [True: 0, False: 0]
  ------------------
 8382|      0|				sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 8383|      0|				sp->net = NULL;
 8384|      0|			}
 8385|      0|		}
 8386|   497k|	}
 8387|  1.93k|	TAILQ_FOREACH(chk, &asoc->send_queue, sctp_next) {
  ------------------
  |  Branch (8387:2): [True: 783, False: 1.93k]
  ------------------
 8388|    783|		if (chk->whoTo == net) {
  ------------------
  |  Branch (8388:7): [True: 0, False: 783]
  ------------------
 8389|      0|			sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 8390|       |			chk->whoTo = NULL;
 8391|      0|		}
 8392|    783|	}
 8393|  1.93k|}
sctp_queue_op_err:
 9542|   135k|{
 9543|       |	/*-
 9544|       |	 * Prepend a OPERATIONAL_ERROR chunk header and put on the end of
 9545|       |	 * the control chunk queue.
 9546|       |	 */
 9547|   135k|	struct sctp_chunkhdr *hdr;
 9548|   135k|	struct sctp_tmit_chunk *chk;
 9549|   135k|	struct mbuf *mat, *last_mbuf;
 9550|   135k|	uint32_t chunk_length;
 9551|   135k|	uint16_t padding_length;
 9552|       |
 9553|   135k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   135k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   135k|	do {                         \
  |  |  |  |  113|   135k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 135k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   135k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 135k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9554|   135k|	SCTP_BUF_PREPEND(op_err, sizeof(struct sctp_chunkhdr), M_NOWAIT);
  ------------------
  |  |  810|   135k|#define SCTP_BUF_PREPEND	M_PREPEND
  |  |  ------------------
  |  |  |  |  367|   135k|#define	M_PREPEND(m, plen, how) do {					\
  |  |  |  |  368|   135k|	struct mbuf **_mmp = &(m);					\
  |  |  |  |  369|   135k|	struct mbuf *_mm = *_mmp;					\
  |  |  |  |  370|   135k|	int _mplen = (plen);						\
  |  |  |  |  371|   135k|	int __mhow = (how);						\
  |  |  |  |  372|   135k|									\
  |  |  |  |  373|   135k|	if (M_LEADINGSPACE(_mm) >= _mplen) {				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  343|   135k|	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|   135k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  233|   135k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (343:3): [True: 0, False: 135k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  344|   135k|	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  326|      0|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  236|      0|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (326:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  327|      0|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  233|      0|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (327:6): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  328|      0|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (328:5): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  345|   135k|	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|   135k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  234|   135k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  226|      0|#define	m_pktdat	M_dat.MH.MH_dat.MH_databuf
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (345:6): [True: 0, False: 135k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  346|   135k|	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|   135k|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|   135k|#define	m_dat		M_dat.M_databuf
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (373:6): [True: 506, False: 134k]
  |  |  |  |  ------------------
  |  |  |  |  374|    506|		_mm->m_data -= _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|    506|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |  375|    506|		_mm->m_len += _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|    506|#define	m_len		m_hdr.mh_len
  |  |  |  |  ------------------
  |  |  |  |  376|    506|	} else								\
  |  |  |  |  377|   135k|		_mm = m_prepend(_mm, _mplen, __mhow);			\
  |  |  |  |  378|   135k|	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|   135k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  234|   135k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (378:6): [True: 135k, False: 0]
  |  |  |  |  |  Branch (378:21): [True: 0, False: 135k]
  |  |  |  |  ------------------
  |  |  |  |  379|   135k|		_mm->m_pkthdr.len += _mplen;				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  |  |  ------------------
  |  |  |  |  380|   135k|	*_mmp = _mm;							\
  |  |  |  |  381|   135k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (381:10): [Folded, False: 135k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9555|   135k|	if (op_err == NULL) {
  ------------------
  |  Branch (9555:6): [True: 0, False: 135k]
  ------------------
 9556|      0|		return;
 9557|      0|	}
 9558|   135k|	last_mbuf = NULL;
 9559|   135k|	chunk_length = 0;
 9560|   550k|	for (mat = op_err; mat != NULL; mat = SCTP_BUF_NEXT(mat)) {
  ------------------
  |  |  802|   415k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   415k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (9560:21): [True: 415k, False: 135k]
  ------------------
 9561|   415k|		chunk_length += SCTP_BUF_LEN(mat);
  ------------------
  |  |  801|   415k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   415k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9562|   415k|		if (SCTP_BUF_NEXT(mat) == NULL) {
  ------------------
  |  |  802|   415k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   415k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (9562:7): [True: 135k, False: 280k]
  ------------------
 9563|   135k|			last_mbuf = mat;
 9564|   135k|		}
 9565|   415k|	}
 9566|   135k|	if (chunk_length > SCTP_MAX_CHUNK_LENGTH) {
  ------------------
  |  |   72|   135k|#define SCTP_MAX_CHUNK_LENGTH 0xffff
  ------------------
  |  Branch (9566:6): [True: 0, False: 135k]
  ------------------
 9567|      0|		sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9568|      0|		return;
 9569|      0|	}
 9570|   135k|	padding_length = chunk_length % 4;
 9571|   135k|	if (padding_length != 0) {
  ------------------
  |  Branch (9571:6): [True: 555, False: 134k]
  ------------------
 9572|    555|		padding_length = 4 - padding_length;
 9573|    555|	}
 9574|   135k|	if (padding_length != 0) {
  ------------------
  |  Branch (9574:6): [True: 555, False: 134k]
  ------------------
 9575|    555|		if (sctp_add_pad_tombuf(last_mbuf, padding_length) == NULL) {
  ------------------
  |  Branch (9575:7): [True: 0, False: 555]
  ------------------
 9576|      0|			sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9577|      0|			return;
 9578|      0|		}
 9579|    555|	}
 9580|   135k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|   135k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|   135k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|   133k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|   133k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|   133k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 133k, False: 0]
  |  |  ------------------
  |  |  173|   133k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|   133k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|   133k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|   133k|			(_chk)->whoTo = NULL; \
  |  |  175|   133k|			(_chk)->holds_key_ref = 0; \
  |  |  176|   133k|		} \
  |  |  177|   133k|	} else { \
  |  |  178|  1.26k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  1.26k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  1.26k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  1.26k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  1.26k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  1.26k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  1.26k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.26k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.26k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  1.26k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  1.26k|	} \
  |  |  185|   135k|}
  ------------------
  |  Branch (9580:2): [True: 208, False: 1.05k]
  |  Branch (9580:2): [Folded, False: 1.26k]
  |  Branch (9580:2): [True: 133k, False: 1.26k]
  ------------------
 9581|   135k|	if (chk == NULL) {
  ------------------
  |  Branch (9581:6): [True: 0, False: 135k]
  ------------------
 9582|       |		/* no memory */
 9583|      0|		sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9584|      0|		return;
 9585|      0|	}
 9586|   135k|	chk->copy_by_ref = 0;
 9587|   135k|	chk->rec.chunk_id.id = SCTP_OPERATION_ERROR;
  ------------------
  |  |  463|   135k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
 9588|   135k|	chk->rec.chunk_id.can_take_data = 0;
 9589|   135k|	chk->flags = 0;
 9590|   135k|	chk->send_size = (uint16_t)chunk_length;
 9591|   135k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|   135k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9592|   135k|	chk->snd_count = 0;
 9593|   135k|	chk->asoc = &stcb->asoc;
 9594|   135k|	chk->data = op_err;
 9595|   135k|	chk->whoTo = NULL;
 9596|   135k|	hdr = mtod(op_err, struct sctp_chunkhdr *);
  ------------------
  |  |   96|   135k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   135k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9597|   135k|	hdr->chunk_type = SCTP_OPERATION_ERROR;
  ------------------
  |  |  463|   135k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
 9598|   135k|	hdr->chunk_flags = 0;
 9599|   135k|	hdr->chunk_length = htons(chk->send_size);
 9600|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9600:2): [Folded, False: 135k]
  ------------------
 9601|   135k|	chk->asoc->ctrl_queue_cnt++;
 9602|   135k|}
sctp_send_cookie_echo:
 9609|  7.88k|{
 9610|       |	/*-
 9611|       |	 * pull out the cookie and put it at the front of the control chunk
 9612|       |	 * queue.
 9613|       |	 */
 9614|  7.88k|	int at;
 9615|  7.88k|	struct mbuf *cookie;
 9616|  7.88k|	struct sctp_paramhdr param, *phdr;
 9617|  7.88k|	struct sctp_chunkhdr *hdr;
 9618|  7.88k|	struct sctp_tmit_chunk *chk;
 9619|  7.88k|	uint16_t ptype, plen;
 9620|       |
 9621|  7.88k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  7.88k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  7.88k|	do {                         \
  |  |  |  |  113|  7.88k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.88k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  7.88k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 7.88k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9622|       |	/* First find the cookie in the param area */
 9623|  7.88k|	cookie = NULL;
 9624|  7.88k|	at = offset + sizeof(struct sctp_init_chunk);
 9625|  63.1k|	for (;;) {
 9626|  63.1k|		phdr = sctp_get_next_param(m, at, &param, sizeof(param));
 9627|  63.1k|		if (phdr == NULL) {
  ------------------
  |  Branch (9627:7): [True: 0, False: 63.1k]
  ------------------
 9628|      0|			return (-3);
 9629|      0|		}
 9630|  63.1k|		ptype = ntohs(phdr->param_type);
 9631|  63.1k|		plen = ntohs(phdr->param_length);
 9632|  63.1k|		if (plen < sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (9632:7): [True: 0, False: 63.1k]
  ------------------
 9633|      0|			return (-6);
 9634|      0|		}
 9635|  63.1k|		if (ptype == SCTP_STATE_COOKIE) {
  ------------------
  |  |  396|  63.1k|#define SCTP_STATE_COOKIE		0x0007
  ------------------
  |  Branch (9635:7): [True: 7.88k, False: 55.2k]
  ------------------
 9636|  7.88k|			int pad;
 9637|       |
 9638|       |			/* found the cookie */
 9639|  7.88k|			if (at + plen > limit) {
  ------------------
  |  Branch (9639:8): [True: 0, False: 7.88k]
  ------------------
 9640|      0|				return (-7);
 9641|      0|			}
 9642|  7.88k|			cookie = SCTP_M_COPYM(m, at, plen, M_NOWAIT);
  ------------------
  |  |  770|  7.88k|#define SCTP_M_COPYM	m_copym
  ------------------
              			cookie = SCTP_M_COPYM(m, at, plen, M_NOWAIT);
  ------------------
  |  |   60|  7.88k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 9643|  7.88k|			if (cookie == NULL) {
  ------------------
  |  Branch (9643:8): [True: 0, False: 7.88k]
  ------------------
 9644|       |				/* No memory */
 9645|      0|				return (-2);
 9646|      0|			}
 9647|  7.88k|			if ((pad = (plen % 4)) > 0) {
  ------------------
  |  Branch (9647:8): [True: 70, False: 7.81k]
  ------------------
 9648|     70|				pad = 4 - pad;
 9649|     70|			}
 9650|  7.88k|			if (pad > 0) {
  ------------------
  |  Branch (9650:8): [True: 70, False: 7.81k]
  ------------------
 9651|     70|				if (sctp_pad_lastmbuf(cookie, pad, NULL) == NULL) {
  ------------------
  |  Branch (9651:9): [True: 0, False: 70]
  ------------------
 9652|      0|					return (-8);
 9653|      0|				}
 9654|     70|			}
 9655|       |#ifdef SCTP_MBUF_LOGGING
 9656|       |			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 9657|       |				sctp_log_mbc(cookie, SCTP_MBUF_ICOPY);
 9658|       |			}
 9659|       |#endif
 9660|  7.88k|			break;
 9661|  7.88k|		}
 9662|  55.2k|		at += SCTP_SIZE32(plen);
  ------------------
  |  |  383|  55.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 9663|  55.2k|	}
 9664|       |	/* ok, we got the cookie lets change it into a cookie echo chunk */
 9665|       |	/* first the change from param to cookie */
 9666|  7.88k|	hdr = mtod(cookie, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  7.88k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  7.88k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9667|  7.88k|	hdr->chunk_type = SCTP_COOKIE_ECHO;
  ------------------
  |  |  464|  7.88k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
 9668|  7.88k|	hdr->chunk_flags = 0;
 9669|       |	/* get the chunk stuff now and place it in the FRONT of the queue */
 9670|  7.88k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  7.88k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  7.88k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  7.88k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  7.88k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  7.88k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 7.88k, False: 0]
  |  |  ------------------
  |  |  173|  7.88k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  7.88k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  7.88k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  7.88k|			(_chk)->whoTo = NULL; \
  |  |  175|  7.88k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  7.88k|		} \
  |  |  177|  7.88k|	} else { \
  |  |  178|      0|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|      0|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|      0|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|      0|		(_chk)->holds_key_ref = 0; \
  |  |  182|      0|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|      0|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|      0|	} \
  |  |  185|  7.88k|}
  ------------------
  |  Branch (9670:2): [True: 0, False: 0]
  |  Branch (9670:2): [Folded, False: 0]
  |  Branch (9670:2): [True: 7.88k, False: 0]
  ------------------
 9671|  7.88k|	if (chk == NULL) {
  ------------------
  |  Branch (9671:6): [True: 0, False: 7.88k]
  ------------------
 9672|       |		/* no memory */
 9673|      0|		sctp_m_freem(cookie);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9674|      0|		return (-5);
 9675|      0|	}
 9676|  7.88k|	chk->copy_by_ref = 0;
 9677|  7.88k|	chk->rec.chunk_id.id = SCTP_COOKIE_ECHO;
  ------------------
  |  |  464|  7.88k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
 9678|  7.88k|	chk->rec.chunk_id.can_take_data = 0;
 9679|  7.88k|	chk->flags = CHUNK_FLAGS_FRAGMENT_OK;
  ------------------
  |  |  481|  7.88k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
 9680|  7.88k|	chk->send_size = SCTP_SIZE32(plen);
  ------------------
  |  |  383|  7.88k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 9681|  7.88k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  7.88k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9682|  7.88k|	chk->snd_count = 0;
 9683|  7.88k|	chk->asoc = &stcb->asoc;
 9684|  7.88k|	chk->data = cookie;
 9685|  7.88k|	chk->whoTo = net;
 9686|  7.88k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  7.88k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9687|       |	TAILQ_INSERT_HEAD(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9687:2): [True: 184, False: 7.70k]
  |  Branch (9687:2): [Folded, False: 7.88k]
  ------------------
 9688|  7.88k|	chk->asoc->ctrl_queue_cnt++;
 9689|  7.88k|	return (0);
 9690|  7.88k|}
sctp_send_heartbeat_ack:
 9698|  28.8k|{
 9699|       |	/*
 9700|       |	 * take a HB request and make it into a HB ack and send it.
 9701|       |	 */
 9702|  28.8k|	struct mbuf *outchain;
 9703|  28.8k|	struct sctp_chunkhdr *chdr;
 9704|  28.8k|	struct sctp_tmit_chunk *chk;
 9705|       |
 9706|  28.8k|	if (net == NULL)
  ------------------
  |  Branch (9706:6): [True: 0, False: 28.8k]
  ------------------
 9707|       |		/* must have a net pointer */
 9708|      0|		return;
 9709|       |
 9710|  28.8k|	outchain = SCTP_M_COPYM(m, offset, chk_length, M_NOWAIT);
  ------------------
  |  |  770|  28.8k|#define SCTP_M_COPYM	m_copym
  ------------------
              	outchain = SCTP_M_COPYM(m, offset, chk_length, M_NOWAIT);
  ------------------
  |  |   60|  28.8k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 9711|  28.8k|	if (outchain == NULL) {
  ------------------
  |  Branch (9711:6): [True: 0, False: 28.8k]
  ------------------
 9712|       |		/* gak out of memory */
 9713|      0|		return;
 9714|      0|	}
 9715|       |#ifdef SCTP_MBUF_LOGGING
 9716|       |	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 9717|       |		sctp_log_mbc(outchain, SCTP_MBUF_ICOPY);
 9718|       |	}
 9719|       |#endif
 9720|  28.8k|	chdr = mtod(outchain, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  28.8k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  28.8k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9721|  28.8k|	chdr->chunk_type = SCTP_HEARTBEAT_ACK;
  ------------------
  |  |  459|  28.8k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
 9722|  28.8k|	chdr->chunk_flags = 0;
 9723|  28.8k|	if (chk_length % 4 != 0) {
  ------------------
  |  Branch (9723:6): [True: 2.72k, False: 26.1k]
  ------------------
 9724|  2.72k|		sctp_pad_lastmbuf(outchain, 4 - (chk_length % 4), NULL);
 9725|  2.72k|	}
 9726|  28.8k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  28.8k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  28.8k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  27.3k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  27.3k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  27.3k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 27.3k, False: 0]
  |  |  ------------------
  |  |  173|  27.3k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  27.3k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  27.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  27.3k|			(_chk)->whoTo = NULL; \
  |  |  175|  27.3k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  27.3k|		} \
  |  |  177|  27.3k|	} else { \
  |  |  178|  1.50k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  1.50k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  1.50k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  1.50k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  1.50k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  1.50k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  1.50k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.50k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.50k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  1.50k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  1.50k|	} \
  |  |  185|  28.8k|}
  ------------------
  |  Branch (9726:2): [True: 74, False: 1.42k]
  |  Branch (9726:2): [Folded, False: 1.50k]
  |  Branch (9726:2): [True: 27.3k, False: 1.50k]
  ------------------
 9727|  28.8k|	if (chk == NULL) {
  ------------------
  |  Branch (9727:6): [True: 0, False: 28.8k]
  ------------------
 9728|       |		/* no memory */
 9729|      0|		sctp_m_freem(outchain);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9730|      0|		return;
 9731|      0|	}
 9732|  28.8k|	chk->copy_by_ref = 0;
 9733|  28.8k|	chk->rec.chunk_id.id = SCTP_HEARTBEAT_ACK;
  ------------------
  |  |  459|  28.8k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
 9734|  28.8k|	chk->rec.chunk_id.can_take_data = 1;
 9735|  28.8k|	chk->flags = 0;
 9736|  28.8k|	chk->send_size = chk_length;
 9737|  28.8k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  28.8k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9738|  28.8k|	chk->snd_count = 0;
 9739|  28.8k|	chk->asoc = &stcb->asoc;
 9740|  28.8k|	chk->data = outchain;
 9741|  28.8k|	chk->whoTo = net;
 9742|  28.8k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  28.8k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9743|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9743:2): [Folded, False: 28.8k]
  ------------------
 9744|  28.8k|	chk->asoc->ctrl_queue_cnt++;
 9745|  28.8k|}
sctp_send_cookie_ack:
 9749|    591|{
 9750|       |	/* formulate and queue a cookie-ack back to sender */
 9751|    591|	struct mbuf *cookie_ack;
 9752|    591|	struct sctp_chunkhdr *hdr;
 9753|    591|	struct sctp_tmit_chunk *chk;
 9754|       |
 9755|    591|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    591|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    591|	do {                         \
  |  |  |  |  113|    591|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 591]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    591|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 591]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9756|       |
 9757|    591|	cookie_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_chunkhdr), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    591|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	cookie_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_chunkhdr), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|    591|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    591|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 9758|    591|	if (cookie_ack == NULL) {
  ------------------
  |  Branch (9758:6): [True: 0, False: 591]
  ------------------
 9759|       |		/* no mbuf's */
 9760|      0|		return;
 9761|      0|	}
 9762|    591|	SCTP_BUF_RESV_UF(cookie_ack, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    591|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    591|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9763|    591|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    591|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    591|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    447|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    447|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    447|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 447, False: 0]
  |  |  ------------------
  |  |  173|    447|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    447|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    447|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    447|			(_chk)->whoTo = NULL; \
  |  |  175|    447|			(_chk)->holds_key_ref = 0; \
  |  |  176|    447|		} \
  |  |  177|    447|	} else { \
  |  |  178|    144|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    144|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    144|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    144|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    144|		(_chk)->holds_key_ref = 0; \
  |  |  182|    144|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    144|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    144|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    144|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    144|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    144|	} \
  |  |  185|    591|}
  ------------------
  |  Branch (9763:2): [True: 0, False: 144]
  |  Branch (9763:2): [Folded, False: 144]
  |  Branch (9763:2): [True: 447, False: 144]
  ------------------
 9764|    591|	if (chk == NULL) {
  ------------------
  |  Branch (9764:6): [True: 0, False: 591]
  ------------------
 9765|       |		/* no memory */
 9766|      0|		sctp_m_freem(cookie_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9767|      0|		return;
 9768|      0|	}
 9769|    591|	chk->copy_by_ref = 0;
 9770|    591|	chk->rec.chunk_id.id = SCTP_COOKIE_ACK;
  ------------------
  |  |  465|    591|#define SCTP_COOKIE_ACK		0x0b
  ------------------
 9771|    591|	chk->rec.chunk_id.can_take_data = 1;
 9772|    591|	chk->flags = 0;
 9773|    591|	chk->send_size = sizeof(struct sctp_chunkhdr);
 9774|    591|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    591|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9775|    591|	chk->snd_count = 0;
 9776|    591|	chk->asoc = &stcb->asoc;
 9777|    591|	chk->data = cookie_ack;
 9778|    591|	if (chk->asoc->last_control_chunk_from != NULL) {
  ------------------
  |  Branch (9778:6): [True: 591, False: 0]
  ------------------
 9779|    591|		chk->whoTo = chk->asoc->last_control_chunk_from;
 9780|    591|		atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    591|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9781|    591|	} else {
 9782|      0|		chk->whoTo = NULL;
 9783|      0|	}
 9784|    591|	hdr = mtod(cookie_ack, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    591|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    591|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9785|    591|	hdr->chunk_type = SCTP_COOKIE_ACK;
  ------------------
  |  |  465|    591|#define SCTP_COOKIE_ACK		0x0b
  ------------------
 9786|    591|	hdr->chunk_flags = 0;
 9787|    591|	hdr->chunk_length = htons(chk->send_size);
 9788|    591|	SCTP_BUF_LEN(cookie_ack) = chk->send_size;
  ------------------
  |  |  801|    591|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    591|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9789|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9789:2): [Folded, False: 591]
  ------------------
 9790|    591|	chk->asoc->ctrl_queue_cnt++;
 9791|    591|	return;
 9792|    591|}
sctp_send_shutdown_ack:
 9796|    824|{
 9797|       |	/* formulate and queue a SHUTDOWN-ACK back to the sender */
 9798|    824|	struct mbuf *m_shutdown_ack;
 9799|    824|	struct sctp_shutdown_ack_chunk *ack_cp;
 9800|    824|	struct sctp_tmit_chunk *chk;
 9801|       |
 9802|    824|	m_shutdown_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_ack_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    824|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_shutdown_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_ack_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|    824|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    824|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 9803|    824|	if (m_shutdown_ack == NULL) {
  ------------------
  |  Branch (9803:6): [True: 0, False: 824]
  ------------------
 9804|       |		/* no mbuf's */
 9805|      0|		return;
 9806|      0|	}
 9807|    824|	SCTP_BUF_RESV_UF(m_shutdown_ack, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    824|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    824|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9808|    824|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    824|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    824|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    498|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    498|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    498|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 498, False: 0]
  |  |  ------------------
  |  |  173|    498|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    498|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    498|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    498|			(_chk)->whoTo = NULL; \
  |  |  175|    498|			(_chk)->holds_key_ref = 0; \
  |  |  176|    498|		} \
  |  |  177|    498|	} else { \
  |  |  178|    326|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    326|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    326|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    326|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    326|		(_chk)->holds_key_ref = 0; \
  |  |  182|    326|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    326|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    326|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    326|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    326|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    326|	} \
  |  |  185|    824|}
  ------------------
  |  Branch (9808:2): [True: 12, False: 314]
  |  Branch (9808:2): [Folded, False: 326]
  |  Branch (9808:2): [True: 498, False: 326]
  ------------------
 9809|    824|	if (chk == NULL) {
  ------------------
  |  Branch (9809:6): [True: 0, False: 824]
  ------------------
 9810|       |		/* no memory */
 9811|      0|		sctp_m_freem(m_shutdown_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9812|      0|		return;
 9813|      0|	}
 9814|    824|	chk->copy_by_ref = 0;
 9815|    824|	chk->rec.chunk_id.id = SCTP_SHUTDOWN_ACK;
  ------------------
  |  |  462|    824|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
 9816|    824|	chk->rec.chunk_id.can_take_data = 1;
 9817|    824|	chk->flags = 0;
 9818|    824|	chk->send_size = sizeof(struct sctp_chunkhdr);
 9819|    824|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    824|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9820|    824|	chk->snd_count = 0;
 9821|    824|	chk->asoc = &stcb->asoc;
 9822|    824|	chk->data = m_shutdown_ack;
 9823|    824|	chk->whoTo = net;
 9824|    824|	if (chk->whoTo) {
  ------------------
  |  Branch (9824:6): [True: 824, False: 0]
  ------------------
 9825|    824|		atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    824|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9826|    824|	}
 9827|    824|	ack_cp = mtod(m_shutdown_ack, struct sctp_shutdown_ack_chunk *);
  ------------------
  |  |   96|    824|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    824|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9828|    824|	ack_cp->ch.chunk_type = SCTP_SHUTDOWN_ACK;
  ------------------
  |  |  462|    824|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
 9829|    824|	ack_cp->ch.chunk_flags = 0;
 9830|    824|	ack_cp->ch.chunk_length = htons(chk->send_size);
 9831|    824|	SCTP_BUF_LEN(m_shutdown_ack) = chk->send_size;
  ------------------
  |  |  801|    824|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    824|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9832|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9832:2): [Folded, False: 824]
  ------------------
 9833|    824|	chk->asoc->ctrl_queue_cnt++;
 9834|    824|	return;
 9835|    824|}
sctp_send_shutdown:
 9839|  3.39k|{
 9840|       |	/* formulate and queue a SHUTDOWN to the sender */
 9841|  3.39k|	struct mbuf *m_shutdown;
 9842|  3.39k|	struct sctp_shutdown_chunk *shutdown_cp;
 9843|  3.39k|	struct sctp_tmit_chunk *chk;
 9844|       |
 9845|  2.84M|	TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) {
  ------------------
  |  Branch (9845:2): [True: 2.84M, False: 87]
  ------------------
 9846|  2.84M|		if (chk->rec.chunk_id.id == SCTP_SHUTDOWN) {
  ------------------
  |  |  461|  2.84M|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (9846:7): [True: 3.30k, False: 2.84M]
  ------------------
 9847|       |			/* We already have a SHUTDOWN queued. Reuse it. */
 9848|  3.30k|			if (chk->whoTo) {
  ------------------
  |  Branch (9848:8): [True: 3.30k, False: 0]
  ------------------
 9849|  3.30k|				sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  3.30k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  3.30k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 3.30k, False: 0]
  |  |  ------------------
  |  |  230|  3.30k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  3.30k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  3.30k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 3.30k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|  3.30k|	} \
  |  |  245|  3.30k|}
  ------------------
 9850|  3.30k|				chk->whoTo = NULL;
 9851|  3.30k|			}
 9852|  3.30k|			break;
 9853|  3.30k|		}
 9854|  2.84M|	}
 9855|  3.39k|	if (chk == NULL) {
  ------------------
  |  Branch (9855:6): [True: 87, False: 3.30k]
  ------------------
 9856|     87|		m_shutdown = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|     87|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m_shutdown = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|     87|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|     87|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 9857|     87|		if (m_shutdown == NULL) {
  ------------------
  |  Branch (9857:7): [True: 0, False: 87]
  ------------------
 9858|       |			/* no mbuf's */
 9859|      0|			return;
 9860|      0|		}
 9861|     87|		SCTP_BUF_RESV_UF(m_shutdown, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|     87|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     87|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9862|     87|		sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|     87|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|     87|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|     76|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|     76|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|     76|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 76, False: 0]
  |  |  ------------------
  |  |  173|     76|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|     76|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     76|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|     76|			(_chk)->whoTo = NULL; \
  |  |  175|     76|			(_chk)->holds_key_ref = 0; \
  |  |  176|     76|		} \
  |  |  177|     76|	} else { \
  |  |  178|     11|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|     11|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|     11|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|     11|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|     11|		(_chk)->holds_key_ref = 0; \
  |  |  182|     11|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|     11|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     11|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     11|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|     11|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|     11|	} \
  |  |  185|     87|}
  ------------------
  |  Branch (9862:3): [True: 0, False: 11]
  |  Branch (9862:3): [Folded, False: 11]
  |  Branch (9862:3): [True: 76, False: 11]
  ------------------
 9863|     87|		if (chk == NULL) {
  ------------------
  |  Branch (9863:7): [True: 0, False: 87]
  ------------------
 9864|       |			/* no memory */
 9865|      0|			sctp_m_freem(m_shutdown);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9866|      0|			return;
 9867|      0|		}
 9868|     87|		chk->copy_by_ref = 0;
 9869|     87|		chk->rec.chunk_id.id = SCTP_SHUTDOWN;
  ------------------
  |  |  461|     87|#define SCTP_SHUTDOWN		0x07
  ------------------
 9870|     87|		chk->rec.chunk_id.can_take_data = 1;
 9871|     87|		chk->flags = 0;
 9872|     87|		chk->send_size = sizeof(struct sctp_shutdown_chunk);
 9873|     87|		chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|     87|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9874|     87|		chk->snd_count = 0;
 9875|     87|		chk->asoc = &stcb->asoc;
 9876|     87|		chk->data = m_shutdown;
 9877|     87|		chk->whoTo = net;
 9878|     87|		if (chk->whoTo) {
  ------------------
  |  Branch (9878:7): [True: 87, False: 0]
  ------------------
 9879|     87|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|     87|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9880|     87|		}
 9881|     87|		shutdown_cp = mtod(m_shutdown, struct sctp_shutdown_chunk *);
  ------------------
  |  |   96|     87|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     87|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9882|     87|		shutdown_cp->ch.chunk_type = SCTP_SHUTDOWN;
  ------------------
  |  |  461|     87|#define SCTP_SHUTDOWN		0x07
  ------------------
 9883|     87|		shutdown_cp->ch.chunk_flags = 0;
 9884|     87|		shutdown_cp->ch.chunk_length = htons(chk->send_size);
 9885|     87|		shutdown_cp->cumulative_tsn_ack = htonl(stcb->asoc.cumulative_tsn);
 9886|     87|		SCTP_BUF_LEN(m_shutdown) = chk->send_size;
  ------------------
  |  |  801|     87|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     87|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9887|     87|		TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9887:3): [Folded, False: 87]
  ------------------
 9888|     87|		chk->asoc->ctrl_queue_cnt++;
 9889|  3.30k|	} else {
 9890|  3.30k|		TAILQ_REMOVE(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9890:3): [True: 2.08k, False: 1.21k]
  |  Branch (9890:3): [Folded, False: 3.30k]
  ------------------
 9891|  3.30k|		chk->whoTo = net;
 9892|  3.30k|		if (chk->whoTo) {
  ------------------
  |  Branch (9892:7): [True: 3.30k, False: 0]
  ------------------
 9893|  3.30k|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  3.30k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9894|  3.30k|		}
 9895|  3.30k|		shutdown_cp = mtod(chk->data, struct sctp_shutdown_chunk *);
  ------------------
  |  |   96|  3.30k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  3.30k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9896|  3.30k|		shutdown_cp->cumulative_tsn_ack = htonl(stcb->asoc.cumulative_tsn);
 9897|  3.30k|		TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9897:3): [Folded, False: 3.30k]
  ------------------
 9898|  3.30k|	}
 9899|  3.39k|	return;
 9900|  3.39k|}
sctp_send_asconf_ack:
 9954|  1.75k|{
 9955|       |	/*
 9956|       |	 * formulate and queue a asconf-ack back to sender.
 9957|       |	 * the asconf-ack must be stored in the tcb.
 9958|       |	 */
 9959|  1.75k|	struct sctp_tmit_chunk *chk;
 9960|  1.75k|	struct sctp_asconf_ack *ack, *latest_ack;
 9961|  1.75k|	struct mbuf *m_ack;
 9962|  1.75k|	struct sctp_nets *net = NULL;
 9963|       |
 9964|  1.75k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.75k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.75k|	do {                         \
  |  |  |  |  113|  1.75k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.75k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.75k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.75k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9965|       |	/* Get the latest ASCONF-ACK */
 9966|  1.75k|	latest_ack = TAILQ_LAST(&stcb->asoc.asconf_ack_sent, sctp_asconf_ackhead);
 9967|  1.75k|	if (latest_ack == NULL) {
  ------------------
  |  Branch (9967:6): [True: 977, False: 776]
  ------------------
 9968|    977|		return;
 9969|    977|	}
 9970|    776|	if (latest_ack->last_sent_to != NULL &&
  ------------------
  |  Branch (9970:6): [True: 0, False: 776]
  ------------------
 9971|      0|	    latest_ack->last_sent_to == stcb->asoc.last_control_chunk_from) {
  ------------------
  |  Branch (9971:6): [True: 0, False: 0]
  ------------------
 9972|       |		/* we're doing a retransmission */
 9973|      0|		net = sctp_find_alternate_net(stcb, stcb->asoc.last_control_chunk_from, 0);
 9974|      0|		if (net == NULL) {
  ------------------
  |  Branch (9974:7): [True: 0, False: 0]
  ------------------
 9975|       |			/* no alternate */
 9976|      0|			if (stcb->asoc.last_control_chunk_from == NULL) {
  ------------------
  |  Branch (9976:8): [True: 0, False: 0]
  ------------------
 9977|      0|				if (stcb->asoc.alternate) {
  ------------------
  |  Branch (9977:9): [True: 0, False: 0]
  ------------------
 9978|      0|					net = stcb->asoc.alternate;
 9979|      0|				} else {
 9980|      0|					net = stcb->asoc.primary_destination;
 9981|      0|				}
 9982|      0|			} else {
 9983|      0|				net = stcb->asoc.last_control_chunk_from;
 9984|      0|			}
 9985|      0|		}
 9986|    776|	} else {
 9987|       |		/* normal case */
 9988|    776|		if (stcb->asoc.last_control_chunk_from == NULL) {
  ------------------
  |  Branch (9988:7): [True: 0, False: 776]
  ------------------
 9989|      0|			if (stcb->asoc.alternate) {
  ------------------
  |  Branch (9989:8): [True: 0, False: 0]
  ------------------
 9990|      0|				net = stcb->asoc.alternate;
 9991|      0|			} else {
 9992|      0|				net = stcb->asoc.primary_destination;
 9993|      0|			}
 9994|    776|		} else {
 9995|    776|			net = stcb->asoc.last_control_chunk_from;
 9996|    776|		}
 9997|    776|	}
 9998|    776|	latest_ack->last_sent_to = net;
 9999|       |
10000|    801|	TAILQ_FOREACH(ack, &stcb->asoc.asconf_ack_sent, next) {
  ------------------
  |  Branch (10000:2): [True: 801, False: 776]
  ------------------
10001|    801|		if (ack->data == NULL) {
  ------------------
  |  Branch (10001:7): [True: 0, False: 801]
  ------------------
10002|      0|			continue;
10003|      0|		}
10004|       |
10005|       |		/* copy the asconf_ack */
10006|    801|		m_ack = SCTP_M_COPYM(ack->data, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |  770|    801|#define SCTP_M_COPYM	m_copym
  ------------------
              		m_ack = SCTP_M_COPYM(ack->data, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   75|    801|#define	M_COPYALL	1000000000
  ------------------
              		m_ack = SCTP_M_COPYM(ack->data, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   60|    801|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
10007|    801|		if (m_ack == NULL) {
  ------------------
  |  Branch (10007:7): [True: 0, False: 801]
  ------------------
10008|       |			/* couldn't copy it */
10009|      0|			return;
10010|      0|		}
10011|       |#ifdef SCTP_MBUF_LOGGING
10012|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
10013|       |			sctp_log_mbc(m_ack, SCTP_MBUF_ICOPY);
10014|       |		}
10015|       |#endif
10016|       |
10017|    801|		sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    801|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    801|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    720|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    720|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    720|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 720, False: 0]
  |  |  ------------------
  |  |  173|    720|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    720|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    720|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    720|			(_chk)->whoTo = NULL; \
  |  |  175|    720|			(_chk)->holds_key_ref = 0; \
  |  |  176|    720|		} \
  |  |  177|    720|	} else { \
  |  |  178|     81|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|     81|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|     81|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|     81|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|     81|		(_chk)->holds_key_ref = 0; \
  |  |  182|     81|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|     81|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     81|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     81|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|     81|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|     81|	} \
  |  |  185|    801|}
  ------------------
  |  Branch (10017:3): [True: 16, False: 65]
  |  Branch (10017:3): [Folded, False: 81]
  |  Branch (10017:3): [True: 720, False: 81]
  ------------------
10018|    801|		if (chk == NULL) {
  ------------------
  |  Branch (10018:7): [True: 0, False: 801]
  ------------------
10019|       |			/* no memory */
10020|      0|			if (m_ack)
  ------------------
  |  Branch (10020:8): [True: 0, False: 0]
  ------------------
10021|      0|				sctp_m_freem(m_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
10022|      0|			return;
10023|      0|		}
10024|    801|		chk->copy_by_ref = 0;
10025|    801|		chk->rec.chunk_id.id = SCTP_ASCONF_ACK;
  ------------------
  |  |  477|    801|#define	SCTP_ASCONF_ACK		0x80
  ------------------
10026|    801|		chk->rec.chunk_id.can_take_data = 1;
10027|    801|		chk->flags = CHUNK_FLAGS_FRAGMENT_OK;
  ------------------
  |  |  481|    801|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
10028|    801|		chk->whoTo = net;
10029|    801|		if (chk->whoTo) {
  ------------------
  |  Branch (10029:7): [True: 801, False: 0]
  ------------------
10030|    801|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    801|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
10031|    801|		}
10032|    801|		chk->data = m_ack;
10033|    801|		chk->send_size = ack->len;
10034|    801|		chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    801|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
10035|    801|		chk->snd_count = 0;
10036|    801|		chk->asoc = &stcb->asoc;
10037|       |
10038|    801|		TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (10038:3): [Folded, False: 801]
  ------------------
10039|    801|		chk->asoc->ctrl_queue_cnt++;
10040|    801|	}
10041|    776|	return;
10042|    776|}
sctp_chunk_output:
10628|  30.6k|{
10629|       |	/*-
10630|       |	 * Ok this is the generic chunk service queue. we must do the
10631|       |	 * following:
10632|       |	 * - See if there are retransmits pending, if so we must
10633|       |	 *   do these first.
10634|       |	 * - Service the stream queue that is next, moving any
10635|       |	 *   message (note I must get a complete message i.e.
10636|       |	 *   FIRST/MIDDLE and LAST to the out queue in one pass) and assigning
10637|       |	 *   TSN's
10638|       |	 * - Check to see if the cwnd/rwnd allows any output, if so we
10639|       |	 *   go ahead and formulate and send the low level chunks. Making sure
10640|       |	 *   to combine any control in the control chunk queue also.
10641|       |	 */
10642|  30.6k|	struct sctp_association *asoc;
10643|  30.6k|	struct sctp_nets *net;
10644|  30.6k|	int error = 0, num_out, tot_out = 0, ret = 0, reason_code;
10645|  30.6k|	unsigned int burst_cnt = 0;
10646|  30.6k|	struct timeval now;
10647|  30.6k|	int now_filled = 0;
10648|  30.6k|	int nagle_on;
10649|  30.6k|	uint32_t frag_point = sctp_get_frag_point(stcb);
10650|  30.6k|	int un_sent = 0;
10651|  30.6k|	int fr_done;
10652|  30.6k|	unsigned int tot_frs = 0;
10653|       |
10654|       |#if defined(__APPLE__) && !defined(__Userspace__)
10655|       |	if (so_locked) {
10656|       |		sctp_lock_assert(SCTP_INP_SO(inp));
10657|       |	} else {
10658|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
10659|       |	}
10660|       |#endif
10661|  30.6k|	asoc = &stcb->asoc;
10662|  30.6k|do_it_again:
10663|       |	/* The Nagle algorithm is only applied when handling a send call. */
10664|  30.6k|	if (from_where == SCTP_OUTPUT_FROM_USR_SEND) {
  ------------------
  |  |  361|  30.6k|#define SCTP_OUTPUT_FROM_USR_SEND       0
  ------------------
  |  Branch (10664:6): [True: 2.49k, False: 28.1k]
  ------------------
10665|  2.49k|		if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_NODELAY)) {
  ------------------
  |  |   52|  2.49k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 2.49k, False: 0]
  |  |  ------------------
  ------------------
10666|  2.49k|			nagle_on = 0;
10667|  2.49k|		} else {
10668|      0|			nagle_on = 1;
10669|      0|		}
10670|  28.1k|	} else {
10671|  28.1k|		nagle_on = 0;
10672|  28.1k|	}
10673|  30.6k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  30.6k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  30.6k|	do {                         \
  |  |  |  |  113|  30.6k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 30.6k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  30.6k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 30.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
10674|       |
10675|  30.6k|	un_sent = (stcb->asoc.total_output_queue_size - stcb->asoc.total_flight);
10676|       |
10677|  30.6k|	if ((un_sent <= 0) &&
  ------------------
  |  Branch (10677:6): [True: 25.4k, False: 5.23k]
  ------------------
10678|  25.4k|	    (TAILQ_EMPTY(&asoc->control_send_queue)) &&
  ------------------
  |  Branch (10678:6): [True: 145, False: 25.2k]
  ------------------
10679|    145|	    (TAILQ_EMPTY(&asoc->asconf_send_queue)) &&
  ------------------
  |  Branch (10679:6): [True: 145, False: 0]
  ------------------
10680|    145|	    (asoc->sent_queue_retran_cnt == 0) &&
  ------------------
  |  Branch (10680:6): [True: 145, False: 0]
  ------------------
10681|    145|	    (asoc->trigger_reset == 0)) {
  ------------------
  |  Branch (10681:6): [True: 145, False: 0]
  ------------------
10682|       |		/* Nothing to do unless there is something to be sent left */
10683|    145|		return;
10684|    145|	}
10685|       |	/* Do we have something to send, data or control AND
10686|       |	 * a sack timer running, if so piggy-back the sack.
10687|       |	 */
10688|  30.5k|	if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|  30.5k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  30.5k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 84, False: 30.4k]
  |  |  ------------------
  ------------------
10689|     84|		sctp_send_sack(stcb, so_locked);
10690|     84|		sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|     84|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
10691|     84|		                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_3);
  ------------------
  |  |  763|     84|#define SCTP_FROM_SCTP_OUTPUT       0x90000000
  ------------------
              		                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_3);
  ------------------
  |  |  771|     84|#define SCTP_LOC_3  0x00000003
  ------------------
10692|     84|	}
10693|  30.5k|	while (asoc->sent_queue_retran_cnt) {
  ------------------
  |  Branch (10693:9): [True: 0, False: 30.5k]
  ------------------
10694|       |		/*-
10695|       |		 * Ok, it is retransmission time only, we send out only ONE
10696|       |		 * packet with a single call off to the retran code.
10697|       |		 */
10698|      0|		if (from_where == SCTP_OUTPUT_FROM_COOKIE_ACK) {
  ------------------
  |  |  375|      0|#define SCTP_OUTPUT_FROM_COOKIE_ACK     14
  ------------------
  |  Branch (10698:7): [True: 0, False: 0]
  ------------------
10699|       |			/*-
10700|       |			 * Special hook for handling cookies discarded
10701|       |			 * by peer that carried data. Send cookie-ack only
10702|       |			 * and then the next call with get the retran's.
10703|       |			 */
10704|      0|			(void)sctp_med_chunk_output(inp, stcb, asoc, &num_out, &reason_code, 1,
10705|      0|			                            from_where,
10706|      0|			                            &now, &now_filled, frag_point, so_locked);
10707|      0|			return;
10708|      0|		} else if (from_where != SCTP_OUTPUT_FROM_HB_TMR) {
  ------------------
  |  |  367|      0|#define SCTP_OUTPUT_FROM_HB_TMR         6
  ------------------
  |  Branch (10708:14): [True: 0, False: 0]
  ------------------
10709|       |			/* if its not from a HB then do it */
10710|      0|			fr_done = 0;
10711|      0|			ret = sctp_chunk_retransmission(inp, stcb, asoc, &num_out, &now, &now_filled, &fr_done, so_locked);
10712|      0|			if (fr_done) {
  ------------------
  |  Branch (10712:8): [True: 0, False: 0]
  ------------------
10713|      0|				tot_frs++;
10714|      0|			}
10715|      0|		} else {
10716|       |			/*
10717|       |			 * its from any other place, we don't allow retran
10718|       |			 * output (only control)
10719|       |			 */
10720|      0|			ret = 1;
10721|      0|		}
10722|      0|		if (ret > 0) {
  ------------------
  |  Branch (10722:7): [True: 0, False: 0]
  ------------------
10723|       |			/* Can't send anymore */
10724|       |			/*-
10725|       |			 * now lets push out control by calling med-level
10726|       |			 * output once. this assures that we WILL send HB's
10727|       |			 * if queued too.
10728|       |			 */
10729|      0|			(void)sctp_med_chunk_output(inp, stcb, asoc, &num_out, &reason_code, 1,
10730|      0|			                            from_where,
10731|      0|			                            &now, &now_filled, frag_point, so_locked);
10732|       |#ifdef SCTP_AUDITING_ENABLED
10733|       |			sctp_auditing(8, inp, stcb, NULL);
10734|       |#endif
10735|      0|			sctp_timer_validation(inp, stcb, asoc);
10736|      0|			return;
10737|      0|		}
10738|      0|		if (ret < 0) {
  ------------------
  |  Branch (10738:7): [True: 0, False: 0]
  ------------------
10739|       |			/*-
10740|       |			 * The count was off.. retran is not happening so do
10741|       |			 * the normal retransmission.
10742|       |			 */
10743|       |#ifdef SCTP_AUDITING_ENABLED
10744|       |			sctp_auditing(9, inp, stcb, NULL);
10745|       |#endif
10746|      0|			if (ret == SCTP_RETRAN_EXIT) {
  ------------------
  |  |  908|      0|#define SCTP_RETRAN_EXIT -2
  ------------------
  |  Branch (10746:8): [True: 0, False: 0]
  ------------------
10747|      0|				return;
10748|      0|			}
10749|      0|			break;
10750|      0|		}
10751|      0|		if (from_where == SCTP_OUTPUT_FROM_T3) {
  ------------------
  |  |  362|      0|#define SCTP_OUTPUT_FROM_T3       	1
  ------------------
  |  Branch (10751:7): [True: 0, False: 0]
  ------------------
10752|       |			/* Only one transmission allowed out of a timeout */
10753|       |#ifdef SCTP_AUDITING_ENABLED
10754|       |			sctp_auditing(10, inp, stcb, NULL);
10755|       |#endif
10756|       |			/* Push out any control */
10757|      0|			(void)sctp_med_chunk_output(inp, stcb, asoc, &num_out, &reason_code, 1, from_where,
10758|      0|			                            &now, &now_filled, frag_point, so_locked);
10759|      0|			return;
10760|      0|		}
10761|      0|		if ((asoc->fr_max_burst > 0) && (tot_frs >= asoc->fr_max_burst)) {
  ------------------
  |  Branch (10761:7): [True: 0, False: 0]
  |  Branch (10761:35): [True: 0, False: 0]
  ------------------
10762|       |			/* Hit FR burst limit */
10763|      0|			return;
10764|      0|		}
10765|      0|		if ((num_out == 0) && (ret == 0)) {
  ------------------
  |  Branch (10765:7): [True: 0, False: 0]
  |  Branch (10765:25): [True: 0, False: 0]
  ------------------
10766|       |			/* No more retrans to send */
10767|      0|			break;
10768|      0|		}
10769|      0|	}
10770|       |#ifdef SCTP_AUDITING_ENABLED
10771|       |	sctp_auditing(12, inp, stcb, NULL);
10772|       |#endif
10773|       |	/* Check for bad destinations, if they exist move chunks around. */
10774|  40.1k|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (10774:2): [True: 40.1k, False: 30.5k]
  ------------------
10775|  40.1k|		if ((net->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|  40.1k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (10775:7): [True: 0, False: 40.1k]
  ------------------
10776|       |			/*-
10777|       |			 * if possible move things off of this address we
10778|       |			 * still may send below due to the dormant state but
10779|       |			 * we try to find an alternate address to send to
10780|       |			 * and if we have one we move all queued data on the
10781|       |			 * out wheel to this alternate address.
10782|       |			 */
10783|      0|			if (net->ref_count > 1)
  ------------------
  |  Branch (10783:8): [True: 0, False: 0]
  ------------------
10784|      0|				sctp_move_chunks_from_net(stcb, net);
10785|  40.1k|		} else {
10786|       |			/*-
10787|       |			 * if ((asoc->sat_network) || (net->addr_is_local))
10788|       |			 * { burst_limit = asoc->max_burst *
10789|       |			 * SCTP_SAT_NETWORK_BURST_INCR; }
10790|       |			 */
10791|  40.1k|			if (asoc->max_burst > 0) {
  ------------------
  |  Branch (10791:8): [True: 40.1k, False: 0]
  ------------------
10792|  40.1k|				if (SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst)) {
  ------------------
  |  |  590|  40.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 40.1k, False: 0]
  |  |  ------------------
  ------------------
10793|  40.1k|					if ((net->flight_size + (asoc->max_burst * net->mtu)) < net->cwnd) {
  ------------------
  |  Branch (10793:10): [True: 0, False: 40.1k]
  ------------------
10794|       |						/* JRS - Use the congestion control given in the congestion control module */
10795|      0|						asoc->cc_functions.sctp_cwnd_update_after_output(stcb, net, asoc->max_burst);
10796|      0|						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              						if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
  ------------------
  |  |  660|      0|#define SCTP_LOG_MAXBURST_ENABLE			0x00080000
  ------------------
  |  Branch (10796:11): [True: 0, False: 0]
  ------------------
10797|      0|							sctp_log_maxburst(stcb, net, 0, asoc->max_burst, SCTP_MAX_BURST_APPLIED);
  ------------------
  |  |  137|      0|#define SCTP_MAX_BURST_APPLIED      33
  ------------------
10798|      0|						}
10799|      0|						SCTP_STAT_INCR(sctps_maxburstqueued);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
10800|      0|					}
10801|  40.1k|					net->fast_retran_ip = 0;
10802|  40.1k|				} else {
10803|      0|					if (net->flight_size == 0) {
  ------------------
  |  Branch (10803:10): [True: 0, False: 0]
  ------------------
10804|       |						/* Should be decaying the cwnd here */
10805|      0|						;
10806|      0|					}
10807|      0|				}
10808|  40.1k|			}
10809|  40.1k|		}
10810|  40.1k|	}
10811|  30.5k|	burst_cnt = 0;
10812|  31.3k|	do {
10813|  31.3k|		error = sctp_med_chunk_output(inp, stcb, asoc, &num_out,
10814|  31.3k|		                              &reason_code, 0, from_where,
10815|  31.3k|		                              &now, &now_filled, frag_point, so_locked);
10816|  31.3k|		if (error) {
  ------------------
  |  Branch (10816:7): [True: 0, False: 31.3k]
  ------------------
10817|      0|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Error %d was returned from med-c-op\n", error);
10818|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
  ------------------
  |  |  660|      0|#define SCTP_LOG_MAXBURST_ENABLE			0x00080000
  ------------------
  |  Branch (10818:8): [True: 0, False: 0]
  ------------------
10819|      0|				sctp_log_maxburst(stcb, asoc->primary_destination, error, burst_cnt, SCTP_MAX_BURST_ERROR_STOP);
  ------------------
  |  |  139|      0|#define SCTP_MAX_BURST_ERROR_STOP   35
  ------------------
10820|      0|			}
10821|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|      0|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (10821:8): [True: 0, False: 0]
  ------------------
10822|      0|				sctp_log_cwnd(stcb, NULL, error, SCTP_SEND_NOW_COMPLETES);
  ------------------
  |  |  172|      0|#define SCTP_SEND_NOW_COMPLETES     68
  ------------------
10823|      0|				sctp_log_cwnd(stcb, NULL, 0xdeadbeef, SCTP_SEND_NOW_COMPLETES);
  ------------------
  |  |  172|      0|#define SCTP_SEND_NOW_COMPLETES     68
  ------------------
10824|      0|			}
10825|      0|			break;
10826|      0|		}
10827|  31.3k|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "m-c-o put out %d\n", num_out);
10828|       |
10829|  31.3k|		tot_out += num_out;
10830|  31.3k|		burst_cnt++;
10831|  31.3k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  31.3k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  31.3k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (10831:7): [True: 0, False: 31.3k]
  ------------------
10832|      0|			sctp_log_cwnd(stcb, NULL, num_out, SCTP_SEND_NOW_COMPLETES);
  ------------------
  |  |  172|      0|#define SCTP_SEND_NOW_COMPLETES     68
  ------------------
10833|      0|			if (num_out == 0) {
  ------------------
  |  Branch (10833:8): [True: 0, False: 0]
  ------------------
10834|      0|				sctp_log_cwnd(stcb, NULL, reason_code, SCTP_SEND_NOW_COMPLETES);
  ------------------
  |  |  172|      0|#define SCTP_SEND_NOW_COMPLETES     68
  ------------------
10835|      0|			}
10836|      0|		}
10837|  31.3k|		if (nagle_on) {
  ------------------
  |  Branch (10837:7): [True: 0, False: 31.3k]
  ------------------
10838|       |			/*
10839|       |			 * When the Nagle algorithm is used, look at how much
10840|       |			 * is unsent, then if its smaller than an MTU and we
10841|       |			 * have data in flight we stop, except if we are
10842|       |			 * handling a fragmented user message.
10843|       |			 */
10844|      0|			un_sent = stcb->asoc.total_output_queue_size - stcb->asoc.total_flight;
10845|      0|			if ((un_sent < (int)(stcb->asoc.smallest_mtu - SCTP_MIN_OVERHEAD)) &&
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (10845:8): [True: 0, False: 0]
  ------------------
10846|      0|			    (stcb->asoc.total_flight > 0)) {
  ------------------
  |  Branch (10846:8): [True: 0, False: 0]
  ------------------
10847|       |/*	&&		     sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR))) {*/
10848|      0|				break;
10849|      0|			}
10850|      0|		}
10851|  31.3k|		if (TAILQ_EMPTY(&asoc->control_send_queue) &&
  ------------------
  |  Branch (10851:7): [True: 7.56k, False: 23.8k]
  ------------------
10852|  31.3k|		    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (10852:7): [True: 6.20k, False: 1.36k]
  ------------------
10853|  6.20k|		    sctp_is_there_unsent_data(stcb, so_locked) == 0) {
  ------------------
  |  Branch (10853:7): [True: 6.20k, False: 0]
  ------------------
10854|       |			/* Nothing left to send */
10855|  6.20k|			break;
10856|  6.20k|		}
10857|  25.1k|		if ((stcb->asoc.total_output_queue_size - stcb->asoc.total_flight) <= 0) {
  ------------------
  |  Branch (10857:7): [True: 22.4k, False: 2.73k]
  ------------------
10858|       |			/* Nothing left to send */
10859|  22.4k|			break;
10860|  22.4k|		}
10861|  25.1k|	} while (num_out &&
  ------------------
  |  Branch (10861:11): [True: 848, False: 1.89k]
  ------------------
10862|    848|	         ((asoc->max_burst == 0) ||
  ------------------
  |  Branch (10862:12): [True: 0, False: 848]
  ------------------
10863|    848|		  SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst) ||
  ------------------
  |  |  590|  1.69k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 848, False: 0]
  |  |  ------------------
  ------------------
10864|      0|		  (burst_cnt < asoc->max_burst)));
  ------------------
  |  Branch (10864:5): [True: 0, False: 0]
  ------------------
10865|       |
10866|  30.5k|	if (SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst) == 0) {
  ------------------
  |  |  590|  30.5k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (10866:6): [True: 0, False: 30.5k]
  ------------------
10867|      0|		if ((asoc->max_burst > 0) && (burst_cnt >= asoc->max_burst)) {
  ------------------
  |  Branch (10867:7): [True: 0, False: 0]
  |  Branch (10867:32): [True: 0, False: 0]
  ------------------
10868|      0|			SCTP_STAT_INCR(sctps_maxburstqueued);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
10869|      0|			asoc->burst_limit_applied = 1;
10870|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
  ------------------
  |  |  660|      0|#define SCTP_LOG_MAXBURST_ENABLE			0x00080000
  ------------------
  |  Branch (10870:8): [True: 0, False: 0]
  ------------------
10871|      0|				sctp_log_maxburst(stcb, asoc->primary_destination, 0, burst_cnt, SCTP_MAX_BURST_APPLIED);
  ------------------
  |  |  137|      0|#define SCTP_MAX_BURST_APPLIED      33
  ------------------
10872|      0|			}
10873|      0|		} else {
10874|      0|			asoc->burst_limit_applied = 0;
10875|      0|		}
10876|      0|	}
10877|  30.5k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  30.5k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  30.5k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (10877:6): [True: 0, False: 30.5k]
  ------------------
10878|      0|		sctp_log_cwnd(stcb, NULL, tot_out, SCTP_SEND_NOW_COMPLETES);
  ------------------
  |  |  172|      0|#define SCTP_SEND_NOW_COMPLETES     68
  ------------------
10879|      0|	}
10880|  30.5k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "Ok, we have put out %d chunks\n",
10881|  30.5k|		tot_out);
10882|       |
10883|       |	/*-
10884|       |	 * Now we need to clean up the control chunk chain if a ECNE is on
10885|       |	 * it. It must be marked as UNSENT again so next call will continue
10886|       |	 * to send it until such time that we get a CWR, to remove it.
10887|       |	 */
10888|  30.5k|	if (stcb->asoc.ecn_echo_cnt_onq)
  ------------------
  |  Branch (10888:6): [True: 0, False: 30.5k]
  ------------------
10889|      0|		sctp_fix_ecn_echo(asoc);
10890|       |
10891|  30.5k|	if (stcb->asoc.trigger_reset) {
  ------------------
  |  Branch (10891:6): [True: 32, False: 30.4k]
  ------------------
10892|     32|		if (sctp_send_stream_reset_out_if_possible(stcb, so_locked) == 0) {
  ------------------
  |  Branch (10892:7): [True: 0, False: 32]
  ------------------
10893|      0|			goto do_it_again;
10894|      0|		}
10895|     32|	}
10896|  30.5k|	return;
10897|  30.5k|}
send_forward_tsn:
10943|    802|{
10944|    802|	struct sctp_tmit_chunk *chk, *at, *tp1, *last;
10945|    802|	struct sctp_forward_tsn_chunk *fwdtsn;
10946|    802|	struct sctp_strseq *strseq;
10947|    802|	struct sctp_strseq_mid *strseq_m;
10948|    802|	uint32_t advance_peer_ack_point;
10949|    802|	unsigned int cnt_of_space, i, ovh;
10950|    802|	unsigned int space_needed;
10951|    802|	unsigned int cnt_of_skipped = 0;
10952|       |
10953|    802|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    802|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    802|	do {                         \
  |  |  |  |  113|    802|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 802]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    802|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 802]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
10954|  65.5k|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (10954:2): [True: 65.5k, False: 76]
  ------------------
10955|  65.5k|		if (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) {
  ------------------
  |  |  487|  65.5k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (10955:7): [True: 726, False: 64.8k]
  ------------------
10956|       |			/* mark it to unsent */
10957|    726|			chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    726|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
10958|    726|			chk->snd_count = 0;
10959|       |			/* Do we correct its output location? */
10960|    726|			if (chk->whoTo) {
  ------------------
  |  Branch (10960:8): [True: 0, False: 726]
  ------------------
10961|      0|				sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
10962|      0|				chk->whoTo = NULL;
10963|      0|			}
10964|    726|			goto sctp_fill_in_rest;
10965|    726|		}
10966|  65.5k|	}
10967|       |	/* Ok if we reach here we must build one */
10968|     76|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|     76|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|     76|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|     74|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|     74|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|     74|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 74, False: 0]
  |  |  ------------------
  |  |  173|     74|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|     74|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     74|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|     74|			(_chk)->whoTo = NULL; \
  |  |  175|     74|			(_chk)->holds_key_ref = 0; \
  |  |  176|     74|		} \
  |  |  177|     74|	} else { \
  |  |  178|      2|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|      2|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|      2|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|      2|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|      2|		(_chk)->holds_key_ref = 0; \
  |  |  182|      2|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|      2|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      2|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      2|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|      2|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|      2|	} \
  |  |  185|     76|}
  ------------------
  |  Branch (10968:2): [True: 0, False: 2]
  |  Branch (10968:2): [Folded, False: 2]
  |  Branch (10968:2): [True: 74, False: 2]
  ------------------
10969|     76|	if (chk == NULL) {
  ------------------
  |  Branch (10969:6): [True: 0, False: 76]
  ------------------
10970|      0|		return;
10971|      0|	}
10972|     76|	asoc->fwd_tsn_cnt++;
10973|     76|	chk->copy_by_ref = 0;
10974|       |	/*
10975|       |	 * We don't do the old thing here since
10976|       |	 * this is used not for on-wire but to
10977|       |	 * tell if we are sending a fwd-tsn by
10978|       |	 * the stack during output. And if its
10979|       |	 * a IFORWARD or a FORWARD it is a fwd-tsn.
10980|       |	 */
10981|     76|	chk->rec.chunk_id.id = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|     76|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
10982|     76|	chk->rec.chunk_id.can_take_data = 0;
10983|     76|	chk->flags = 0;
10984|     76|	chk->asoc = asoc;
10985|     76|	chk->whoTo = NULL;
10986|     76|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|     76|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     76|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     76|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
10987|     76|	if (chk->data == NULL) {
  ------------------
  |  Branch (10987:6): [True: 0, False: 76]
  ------------------
10988|      0|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (10988:3): [Folded, False: 0]
  ------------------
10989|      0|		return;
10990|      0|	}
10991|     76|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|     76|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     76|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
10992|     76|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|     76|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
10993|     76|	chk->snd_count = 0;
10994|     76|	TAILQ_INSERT_TAIL(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (10994:2): [Folded, False: 76]
  ------------------
10995|     76|	asoc->ctrl_queue_cnt++;
10996|    802|sctp_fill_in_rest:
10997|       |	/*-
10998|       |	 * Here we go through and fill out the part that deals with
10999|       |	 * stream/seq of the ones we skip.
11000|       |	 */
11001|    802|	SCTP_BUF_LEN(chk->data) = 0;
  ------------------
  |  |  801|    802|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    802|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11002|    802|	TAILQ_FOREACH(at, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (11002:2): [True: 0, False: 802]
  ------------------
11003|      0|		if ((at->sent != SCTP_FORWARD_TSN_SKIP) &&
  ------------------
  |  |  357|      0|#define SCTP_FORWARD_TSN_SKIP		30010
  ------------------
  |  Branch (11003:7): [True: 0, False: 0]
  ------------------
11004|      0|		    (at->sent != SCTP_DATAGRAM_NR_ACKED)) {
  ------------------
  |  |  358|      0|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (11004:7): [True: 0, False: 0]
  ------------------
11005|       |			/* no more to look at */
11006|      0|			break;
11007|      0|		}
11008|      0|		if (!asoc->idata_supported && (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED)) {
  ------------------
  |  |  515|      0|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (11008:7): [True: 0, False: 0]
  |  Branch (11008:33): [True: 0, False: 0]
  ------------------
11009|       |			/* We don't report these */
11010|      0|			continue;
11011|      0|		}
11012|      0|		cnt_of_skipped++;
11013|      0|	}
11014|    802|	if (asoc->idata_supported) {
  ------------------
  |  Branch (11014:6): [True: 404, False: 398]
  ------------------
11015|    404|		space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
11016|    404|		                (cnt_of_skipped * sizeof(struct sctp_strseq_mid)));
11017|    404|	} else {
11018|    398|		space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
11019|    398|		                (cnt_of_skipped * sizeof(struct sctp_strseq)));
11020|    398|	}
11021|    802|	cnt_of_space = (unsigned int)M_TRAILINGSPACE(chk->data);
  ------------------
  |  |  355|    802|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|    802|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|    802|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 802, False: 0]
  |  |  ------------------
  |  |  356|    802|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|    802|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    802|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|    802|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 802, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|    802|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    802|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|    802|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 802]
  |  |  |  |  ------------------
  |  |  |  |  328|    802|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|    802|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 802, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    802|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    802|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|    802|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|    802|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|    802|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|    802|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|      0|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11022|       |
11023|    802|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|    802|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (11023:6): [True: 0, False: 802]
  ------------------
11024|      0|		ovh = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
11025|    802|	} else {
11026|    802|		ovh = SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|    802|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|    802|                              sizeof(struct sctphdr))
  ------------------
11027|    802|	}
11028|    802|	if (cnt_of_space > (asoc->smallest_mtu - ovh)) {
  ------------------
  |  Branch (11028:6): [True: 802, False: 0]
  ------------------
11029|       |		/* trim to a mtu size */
11030|    802|		cnt_of_space = asoc->smallest_mtu - ovh;
11031|    802|	}
11032|    802|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  590|    802|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  669|    802|#define SCTP_LOG_TRY_ADVANCE				0x10000000
  ------------------
  |  Branch (11032:6): [True: 0, False: 802]
  ------------------
11033|      0|		sctp_misc_ints(SCTP_FWD_TSN_CHECK,
  ------------------
  |  |  227|      0|#define SCTP_FWD_TSN_CHECK         123
  ------------------
11034|      0|			       0xff, 0, cnt_of_skipped,
11035|      0|			       asoc->advanced_peer_ack_point);
11036|      0|	}
11037|    802|	advance_peer_ack_point = asoc->advanced_peer_ack_point;
11038|    802|	if (cnt_of_space < space_needed) {
  ------------------
  |  Branch (11038:6): [True: 0, False: 802]
  ------------------
11039|       |		/*-
11040|       |		 * ok we must trim down the chunk by lowering the
11041|       |		 * advance peer ack point.
11042|       |		 */
11043|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  669|      0|#define SCTP_LOG_TRY_ADVANCE				0x10000000
  ------------------
  |  Branch (11043:7): [True: 0, False: 0]
  ------------------
11044|      0|			sctp_misc_ints(SCTP_FWD_TSN_CHECK,
  ------------------
  |  |  227|      0|#define SCTP_FWD_TSN_CHECK         123
  ------------------
11045|      0|				       0xff, 0xff, cnt_of_space,
11046|      0|				       space_needed);
11047|      0|		}
11048|      0|		cnt_of_skipped = cnt_of_space - sizeof(struct sctp_forward_tsn_chunk);
11049|      0|		if (asoc->idata_supported) {
  ------------------
  |  Branch (11049:7): [True: 0, False: 0]
  ------------------
11050|      0|			cnt_of_skipped /= sizeof(struct sctp_strseq_mid);
11051|      0|		} else {
11052|      0|			cnt_of_skipped /= sizeof(struct sctp_strseq);
11053|      0|		}
11054|       |		/*-
11055|       |		 * Go through and find the TSN that will be the one
11056|       |		 * we report.
11057|       |		 */
11058|      0|		at = TAILQ_FIRST(&asoc->sent_queue);
11059|      0|		if (at != NULL) {
  ------------------
  |  Branch (11059:7): [True: 0, False: 0]
  ------------------
11060|      0|			for (i = 0; i < cnt_of_skipped; i++) {
  ------------------
  |  Branch (11060:16): [True: 0, False: 0]
  ------------------
11061|      0|				tp1 = TAILQ_NEXT(at, sctp_next);
11062|      0|				if (tp1 == NULL) {
  ------------------
  |  Branch (11062:9): [True: 0, False: 0]
  ------------------
11063|      0|					break;
11064|      0|				}
11065|      0|				at = tp1;
11066|      0|			}
11067|      0|		}
11068|      0|		if (at && SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (at && SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  669|      0|#define SCTP_LOG_TRY_ADVANCE				0x10000000
  ------------------
  |  Branch (11068:7): [True: 0, False: 0]
  |  Branch (11068:13): [True: 0, False: 0]
  ------------------
11069|      0|			sctp_misc_ints(SCTP_FWD_TSN_CHECK,
  ------------------
  |  |  227|      0|#define SCTP_FWD_TSN_CHECK         123
  ------------------
11070|      0|				       0xff, cnt_of_skipped, at->rec.data.tsn,
11071|      0|				       asoc->advanced_peer_ack_point);
11072|      0|		}
11073|      0|		last = at;
11074|       |		/*-
11075|       |		 * last now points to last one I can report, update
11076|       |		 * peer ack point
11077|       |		 */
11078|      0|		if (last) {
  ------------------
  |  Branch (11078:7): [True: 0, False: 0]
  ------------------
11079|      0|			advance_peer_ack_point = last->rec.data.tsn;
11080|      0|		}
11081|      0|		if (asoc->idata_supported) {
  ------------------
  |  Branch (11081:7): [True: 0, False: 0]
  ------------------
11082|      0|			space_needed = sizeof(struct sctp_forward_tsn_chunk) +
11083|      0|			               cnt_of_skipped * sizeof(struct sctp_strseq_mid);
11084|      0|		} else {
11085|      0|			space_needed = sizeof(struct sctp_forward_tsn_chunk) +
11086|      0|			               cnt_of_skipped * sizeof(struct sctp_strseq);
11087|      0|		}
11088|      0|	}
11089|    802|	chk->send_size = space_needed;
11090|       |	/* Setup the chunk */
11091|    802|	fwdtsn = mtod(chk->data, struct sctp_forward_tsn_chunk *);
  ------------------
  |  |   96|    802|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    802|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11092|    802|	fwdtsn->ch.chunk_length = htons(chk->send_size);
11093|    802|	fwdtsn->ch.chunk_flags = 0;
11094|    802|	if (asoc->idata_supported) {
  ------------------
  |  Branch (11094:6): [True: 404, False: 398]
  ------------------
11095|    404|		fwdtsn->ch.chunk_type = SCTP_IFORWARD_CUM_TSN;
  ------------------
  |  |  490|    404|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
11096|    404|	} else {
11097|    398|		fwdtsn->ch.chunk_type = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|    398|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
11098|    398|	}
11099|    802|	fwdtsn->new_cumulative_tsn = htonl(advance_peer_ack_point);
11100|    802|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    802|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    802|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11101|    802|	fwdtsn++;
11102|       |	/*-
11103|       |	 * Move pointer to after the fwdtsn and transfer to the
11104|       |	 * strseq pointer.
11105|       |	 */
11106|    802|	if (asoc->idata_supported) {
  ------------------
  |  Branch (11106:6): [True: 404, False: 398]
  ------------------
11107|    404|		strseq_m = (struct sctp_strseq_mid *)fwdtsn;
11108|    404|		strseq = NULL;
11109|    404|	} else {
11110|    398|		strseq = (struct sctp_strseq *)fwdtsn;
11111|    398|		strseq_m = NULL;
11112|    398|	}
11113|       |	/*-
11114|       |	 * Now populate the strseq list. This is done blindly
11115|       |	 * without pulling out duplicate stream info. This is
11116|       |	 * inefficient but won't harm the process since the peer will
11117|       |	 * look at these in sequence and will thus release anything.
11118|       |	 * It could mean we exceed the PMTU and chop off some that
11119|       |	 * we could have included.. but this is unlikely (aka 1432/4
11120|       |	 * would mean 300+ stream seq's would have to be reported in
11121|       |	 * one FWD-TSN. With a bit of work we can later FIX this to
11122|       |	 * optimize and pull out duplicates.. but it does add more
11123|       |	 * overhead. So for now... not!
11124|       |	 */
11125|    802|	i = 0;
11126|    802|	TAILQ_FOREACH(at, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (11126:2): [True: 0, False: 802]
  ------------------
11127|      0|		if (i >= cnt_of_skipped) {
  ------------------
  |  Branch (11127:7): [True: 0, False: 0]
  ------------------
11128|      0|			break;
11129|      0|		}
11130|      0|		if (!asoc->idata_supported && (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED)) {
  ------------------
  |  |  515|      0|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (11130:7): [True: 0, False: 0]
  |  Branch (11130:33): [True: 0, False: 0]
  ------------------
11131|       |			/* We don't report these */
11132|      0|			continue;
11133|      0|		}
11134|      0|		if (at->rec.data.tsn == advance_peer_ack_point) {
  ------------------
  |  Branch (11134:7): [True: 0, False: 0]
  ------------------
11135|      0|			at->rec.data.fwd_tsn_cnt = 0;
11136|      0|		}
11137|      0|		if (asoc->idata_supported) {
  ------------------
  |  Branch (11137:7): [True: 0, False: 0]
  ------------------
11138|      0|			strseq_m->sid = htons(at->rec.data.sid);
11139|      0|			if (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|      0|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (11139:8): [True: 0, False: 0]
  ------------------
11140|      0|				strseq_m->flags = htons(PR_SCTP_UNORDERED_FLAG);
11141|      0|			} else {
11142|      0|				strseq_m->flags = 0;
11143|      0|			}
11144|      0|			strseq_m->mid = htonl(at->rec.data.mid);
11145|      0|			strseq_m++;
11146|      0|		} else {
11147|      0|			strseq->sid = htons(at->rec.data.sid);
11148|       |			strseq->ssn = htons((uint16_t)at->rec.data.mid);
11149|      0|			strseq++;
11150|      0|		}
11151|      0|		i++;
11152|      0|	}
11153|    802|	return;
11154|     76|}
sctp_send_sack:
11158|  16.1k|{
11159|       |	/*-
11160|       |	 * Queue up a SACK or NR-SACK in the control queue.
11161|       |	 * We must first check to see if a SACK or NR-SACK is
11162|       |	 * somehow on the control queue.
11163|       |	 * If so, we will take and and remove the old one.
11164|       |	 */
11165|  16.1k|	struct sctp_association *asoc;
11166|  16.1k|	struct sctp_tmit_chunk *chk, *a_chk;
11167|  16.1k|	struct sctp_sack_chunk *sack;
11168|  16.1k|	struct sctp_nr_sack_chunk *nr_sack;
11169|  16.1k|	struct sctp_gap_ack_block *gap_descriptor;
11170|  16.1k|	const struct sack_track *selector;
11171|  16.1k|	int mergeable = 0;
11172|  16.1k|	int offset;
11173|  16.1k|	caddr_t limit;
11174|  16.1k|	uint32_t *dup;
11175|  16.1k|	int limit_reached = 0;
11176|  16.1k|	unsigned int i, siz, j;
11177|  16.1k|	unsigned int num_gap_blocks = 0, num_nr_gap_blocks = 0, space;
11178|  16.1k|	int num_dups = 0;
11179|  16.1k|	int space_req;
11180|  16.1k|	uint32_t highest_tsn;
11181|  16.1k|	uint8_t flags;
11182|  16.1k|	uint8_t type;
11183|  16.1k|	uint8_t tsn_map;
11184|       |
11185|  16.1k|	if (stcb->asoc.nrsack_supported == 1) {
  ------------------
  |  Branch (11185:6): [True: 8.23k, False: 7.92k]
  ------------------
11186|  8.23k|		type = SCTP_NR_SELECTIVE_ACK;
  ------------------
  |  |  472|  8.23k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
11187|  8.23k|	} else {
11188|  7.92k|		type = SCTP_SELECTIVE_ACK;
  ------------------
  |  |  457|  7.92k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
11189|  7.92k|	}
11190|  16.1k|	a_chk = NULL;
11191|  16.1k|	asoc = &stcb->asoc;
11192|  16.1k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  16.1k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  16.1k|	do {                         \
  |  |  |  |  113|  16.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 16.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  16.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 16.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11193|  16.1k|	if (asoc->last_data_chunk_from == NULL) {
  ------------------
  |  Branch (11193:6): [True: 3.81k, False: 12.3k]
  ------------------
11194|       |		/* Hmm we never received anything */
11195|  3.81k|		return;
11196|  3.81k|	}
11197|  12.3k|	sctp_slide_mapping_arrays(stcb);
11198|  12.3k|	sctp_set_rwnd(stcb, asoc);
11199|  5.87M|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (11199:2): [True: 5.87M, False: 5.59k]
  ------------------
11200|  5.87M|		if (chk->rec.chunk_id.id == type) {
  ------------------
  |  Branch (11200:7): [True: 6.75k, False: 5.86M]
  ------------------
11201|       |			/* Hmm, found a sack already on queue, remove it */
11202|  6.75k|			TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (11202:4): [True: 4.34k, False: 2.41k]
  |  Branch (11202:4): [Folded, False: 6.75k]
  ------------------
11203|  6.75k|			asoc->ctrl_queue_cnt--;
11204|  6.75k|			a_chk = chk;
11205|  6.75k|			if (a_chk->data) {
  ------------------
  |  Branch (11205:8): [True: 6.75k, False: 0]
  ------------------
11206|  6.75k|				sctp_m_freem(a_chk->data);
  ------------------
  |  |   52|  6.75k|#define sctp_m_freem m_freem
  ------------------
11207|  6.75k|				a_chk->data = NULL;
11208|  6.75k|			}
11209|  6.75k|			if (a_chk->whoTo) {
  ------------------
  |  Branch (11209:8): [True: 6.75k, False: 0]
  ------------------
11210|  6.75k|				sctp_free_remote_addr(a_chk->whoTo);
  ------------------
  |  |  228|  6.75k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  6.75k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 6.75k, False: 0]
  |  |  ------------------
  |  |  230|  6.75k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  6.75k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  6.75k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 6.75k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|  6.75k|	} \
  |  |  245|  6.75k|}
  ------------------
11211|  6.75k|				a_chk->whoTo = NULL;
11212|  6.75k|			}
11213|  6.75k|			break;
11214|  6.75k|		}
11215|  5.87M|	}
11216|  12.3k|	if (a_chk == NULL) {
  ------------------
  |  Branch (11216:6): [True: 5.59k, False: 6.75k]
  ------------------
11217|  5.59k|		sctp_alloc_a_chunk(stcb, a_chk);
  ------------------
  |  |  169|  5.59k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  5.59k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  3.47k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  3.47k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  3.47k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 3.47k, False: 0]
  |  |  ------------------
  |  |  173|  3.47k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  3.47k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  3.47k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  3.47k|			(_chk)->whoTo = NULL; \
  |  |  175|  3.47k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  3.47k|		} \
  |  |  177|  3.47k|	} else { \
  |  |  178|  2.12k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.12k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.12k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.12k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.12k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.12k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.12k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.12k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.12k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.12k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.12k|	} \
  |  |  185|  5.59k|}
  ------------------
  |  Branch (11217:3): [True: 793, False: 1.32k]
  |  Branch (11217:3): [Folded, False: 2.12k]
  |  Branch (11217:3): [True: 3.47k, False: 2.12k]
  ------------------
11218|  5.59k|		if (a_chk == NULL) {
  ------------------
  |  Branch (11218:7): [True: 0, False: 5.59k]
  ------------------
11219|       |			/* No memory so we drop the idea, and set a timer */
11220|      0|			if (stcb->asoc.delayed_ack) {
  ------------------
  |  Branch (11220:8): [True: 0, False: 0]
  ------------------
11221|      0|				sctp_timer_stop(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
11222|      0|				                stcb->sctp_ep, stcb, NULL,
11223|      0|				                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_4);
  ------------------
  |  |  763|      0|#define SCTP_FROM_SCTP_OUTPUT       0x90000000
  ------------------
              				                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_4);
  ------------------
  |  |  772|      0|#define SCTP_LOC_4  0x00000004
  ------------------
11224|      0|				sctp_timer_start(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
11225|      0|				    stcb->sctp_ep, stcb, NULL);
11226|      0|			} else {
11227|      0|				stcb->asoc.send_sack = 1;
11228|      0|			}
11229|      0|			return;
11230|      0|		}
11231|  5.59k|		a_chk->copy_by_ref = 0;
11232|  5.59k|		a_chk->rec.chunk_id.id = type;
11233|  5.59k|		a_chk->rec.chunk_id.can_take_data = 1;
11234|  5.59k|	}
11235|       |	/* Clear our pkt counts */
11236|  12.3k|	asoc->data_pkts_seen = 0;
11237|       |
11238|  12.3k|	a_chk->flags = 0;
11239|  12.3k|	a_chk->asoc = asoc;
11240|  12.3k|	a_chk->snd_count = 0;
11241|  12.3k|	a_chk->send_size = 0;	/* fill in later */
11242|  12.3k|	a_chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  12.3k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
11243|  12.3k|	a_chk->whoTo = NULL;
11244|       |
11245|  12.3k|	if ((asoc->last_data_chunk_from->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|  12.3k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (11245:6): [True: 0, False: 12.3k]
  ------------------
11246|       |		/*-
11247|       |		 * Ok, the destination for the SACK is unreachable, lets see if
11248|       |		 * we can select an alternate to asoc->last_data_chunk_from
11249|       |		 */
11250|      0|		a_chk->whoTo = sctp_find_alternate_net(stcb, asoc->last_data_chunk_from, 0);
11251|      0|		if (a_chk->whoTo == NULL) {
  ------------------
  |  Branch (11251:7): [True: 0, False: 0]
  ------------------
11252|       |			/* Nope, no alternate */
11253|      0|			a_chk->whoTo = asoc->last_data_chunk_from;
11254|      0|		}
11255|  12.3k|	} else {
11256|  12.3k|		a_chk->whoTo = asoc->last_data_chunk_from;
11257|  12.3k|	}
11258|  12.3k|	if (a_chk->whoTo) {
  ------------------
  |  Branch (11258:6): [True: 12.3k, False: 0]
  ------------------
11259|  12.3k|		atomic_add_int(&a_chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  12.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
11260|  12.3k|	}
11261|  12.3k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_map, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  12.3k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  12.3k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 4.47k, False: 7.86k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 4.47k]
  |  |  |  |  ------------------
  |  |  |  |  884|  12.3k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.00k, False: 11.3k]
  |  |  |  |  |  Branch (884:43): [True: 1.00k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11262|  1.00k|		highest_tsn = asoc->highest_tsn_inside_map;
11263|  11.3k|	} else {
11264|  11.3k|		highest_tsn = asoc->highest_tsn_inside_nr_map;
11265|  11.3k|	}
11266|  12.3k|	if (highest_tsn == asoc->cumulative_tsn) {
  ------------------
  |  Branch (11266:6): [True: 8.98k, False: 3.35k]
  ------------------
11267|       |		/* no gaps */
11268|  8.98k|		if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  8.98k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11268:7): [True: 3.25k, False: 5.73k]
  ------------------
11269|  3.25k|			space_req = sizeof(struct sctp_sack_chunk);
11270|  5.73k|		} else {
11271|  5.73k|			space_req = sizeof(struct sctp_nr_sack_chunk);
11272|  5.73k|		}
11273|  8.98k|	} else {
11274|       |		/* gaps get a cluster */
11275|  3.35k|		space_req = MCLBYTES;
  ------------------
  |  |   51|  3.35k|#define MCLBYTES 2048
  ------------------
11276|  3.35k|	}
11277|       |	/* Ok now lets formulate a MBUF with our sack */
11278|  12.3k|	a_chk->data = sctp_get_mbuf_for_msg(space_req, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  12.3k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	a_chk->data = sctp_get_mbuf_for_msg(space_req, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  12.3k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
11279|  12.3k|	if ((a_chk->data == NULL) ||
  ------------------
  |  Branch (11279:6): [True: 0, False: 12.3k]
  ------------------
11280|  12.3k|	    (a_chk->whoTo == NULL)) {
  ------------------
  |  Branch (11280:6): [True: 0, False: 12.3k]
  ------------------
11281|       |		/* rats, no mbuf memory */
11282|      0|		if (a_chk->data) {
  ------------------
  |  Branch (11282:7): [True: 0, False: 0]
  ------------------
11283|       |			/* was a problem with the destination */
11284|      0|			sctp_m_freem(a_chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11285|      0|			a_chk->data = NULL;
11286|      0|		}
11287|      0|		sctp_free_a_chunk(stcb, a_chk, so_locked);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (11287:3): [Folded, False: 0]
  ------------------
11288|       |		/* sa_ignore NO_NULL_CHK */
11289|      0|		if (stcb->asoc.delayed_ack) {
  ------------------
  |  Branch (11289:7): [True: 0, False: 0]
  ------------------
11290|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
11291|      0|			                stcb->sctp_ep, stcb, NULL,
11292|      0|			                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_5);
  ------------------
  |  |  763|      0|#define SCTP_FROM_SCTP_OUTPUT       0x90000000
  ------------------
              			                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_5);
  ------------------
  |  |  773|      0|#define SCTP_LOC_5  0x00000005
  ------------------
11293|      0|			sctp_timer_start(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
11294|      0|			    stcb->sctp_ep, stcb, NULL);
11295|      0|		} else {
11296|      0|			stcb->asoc.send_sack = 1;
11297|      0|		}
11298|      0|		return;
11299|      0|	}
11300|       |	/* ok, lets go through and fill it in */
11301|  12.3k|	SCTP_BUF_RESV_UF(a_chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  12.3k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  12.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11302|  12.3k|	space = (unsigned int)M_TRAILINGSPACE(a_chk->data);
  ------------------
  |  |  355|  12.3k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  12.3k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  12.3k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 3.35k, False: 8.98k]
  |  |  ------------------
  |  |  356|  12.3k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  3.35k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  3.35k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  3.35k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 3.35k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  3.35k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  3.35k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  3.35k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 3.35k]
  |  |  |  |  ------------------
  |  |  |  |  328|  3.35k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  3.35k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 3.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  3.35k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  3.35k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  3.35k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  3.35k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  3.35k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  12.3k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  8.98k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  8.98k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  8.98k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  8.98k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  8.98k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11303|  12.3k|	if (space > (a_chk->whoTo->mtu - SCTP_MIN_OVERHEAD)) {
  ------------------
  |  |  564|  12.3k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  12.3k|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (11303:6): [True: 3.35k, False: 8.98k]
  ------------------
11304|  3.35k|		space = (a_chk->whoTo->mtu - SCTP_MIN_OVERHEAD);
  ------------------
  |  |  564|  3.35k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  3.35k|                           sizeof(struct sctphdr))
  ------------------
11305|  3.35k|	}
11306|  12.3k|	limit = mtod(a_chk->data, caddr_t);
  ------------------
  |  |   96|  12.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  12.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11307|  12.3k|	limit += space;
11308|       |
11309|  12.3k|	flags = 0;
11310|       |
11311|  12.3k|	if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (11311:6): [True: 0, False: 12.3k]
  ------------------
11312|      0|	    SCTP_BASE_SYSCTL(sctp_cmt_use_dac)) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
11313|       |		/*-
11314|       |		 * CMT DAC algorithm: If 2 (i.e., 0x10) packets have been
11315|       |		 * received, then set high bit to 1, else 0. Reset
11316|       |		 * pkts_rcvd.
11317|       |		 */
11318|      0|		flags |= (asoc->cmt_dac_pkts_rcvd << 6);
11319|      0|		asoc->cmt_dac_pkts_rcvd = 0;
11320|      0|	}
11321|       |#ifdef SCTP_ASOCLOG_OF_TSNS
11322|       |	stcb->asoc.cumack_logsnt[stcb->asoc.cumack_log_atsnt] = asoc->cumulative_tsn;
11323|       |	stcb->asoc.cumack_log_atsnt++;
11324|       |	if (stcb->asoc.cumack_log_atsnt >= SCTP_TSN_LOG_SIZE) {
11325|       |		stcb->asoc.cumack_log_atsnt = 0;
11326|       |	}
11327|       |#endif
11328|       |	/* reset the readers interpretation */
11329|  12.3k|	stcb->freed_by_sorcv_sincelast = 0;
11330|       |
11331|  12.3k|	if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  12.3k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11331:6): [True: 5.18k, False: 7.15k]
  ------------------
11332|  5.18k|		sack = mtod(a_chk->data, struct sctp_sack_chunk *);
  ------------------
  |  |   96|  5.18k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.18k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11333|  5.18k|		nr_sack = NULL;
11334|  5.18k|		gap_descriptor = (struct sctp_gap_ack_block *)((caddr_t)sack + sizeof(struct sctp_sack_chunk));
11335|  5.18k|		if (highest_tsn > asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (11335:7): [True: 2.03k, False: 3.15k]
  ------------------
11336|  2.03k|			siz = (((highest_tsn - asoc->mapping_array_base_tsn) + 1) + 7) / 8;
11337|  3.15k|		} else {
11338|  3.15k|			siz = (((MAX_TSN - asoc->mapping_array_base_tsn) + 1) + highest_tsn + 7) / 8;
  ------------------
  |  |  310|  3.15k|#define MAX_TSN	0xffffffff
  ------------------
11339|  3.15k|		}
11340|  7.15k|	} else {
11341|  7.15k|		sack = NULL;
11342|  7.15k|		nr_sack = mtod(a_chk->data, struct sctp_nr_sack_chunk *);
  ------------------
  |  |   96|  7.15k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  7.15k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11343|  7.15k|		gap_descriptor = (struct sctp_gap_ack_block *)((caddr_t)nr_sack + sizeof(struct sctp_nr_sack_chunk));
11344|  7.15k|		if (asoc->highest_tsn_inside_map > asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (11344:7): [True: 0, False: 7.15k]
  ------------------
11345|      0|			siz = (((asoc->highest_tsn_inside_map - asoc->mapping_array_base_tsn) + 1) + 7) / 8;
11346|  7.15k|		} else {
11347|  7.15k|			siz = (((MAX_TSN - asoc->mapping_array_base_tsn) + 1) + asoc->highest_tsn_inside_map + 7) / 8;
  ------------------
  |  |  310|  7.15k|#define MAX_TSN	0xffffffff
  ------------------
11348|  7.15k|		}
11349|  7.15k|	}
11350|       |
11351|  12.3k|	if (SCTP_TSN_GT(asoc->mapping_array_base_tsn, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|  12.3k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  12.3k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 4.00k, False: 8.33k]
  |  |  |  |  |  Branch (883:43): [True: 1.42k, False: 2.57k]
  |  |  |  |  ------------------
  |  |  |  |  884|  12.3k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 7.31k, False: 3.60k]
  |  |  |  |  |  Branch (884:43): [True: 7.31k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11352|  8.73k|		offset = 1;
11353|  8.73k|	} else {
11354|  3.60k|		offset = asoc->mapping_array_base_tsn - asoc->cumulative_tsn;
11355|  3.60k|	}
11356|  12.3k|	if (((type == SCTP_SELECTIVE_ACK) &&
  ------------------
  |  |  457|  12.3k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11356:7): [True: 5.18k, False: 7.15k]
  ------------------
11357|  12.3k|	     SCTP_TSN_GT(highest_tsn, asoc->cumulative_tsn)) ||
  ------------------
  |  |  889|  5.18k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.18k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 5.18k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.18k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.92k, False: 3.25k]
  |  |  |  |  |  Branch (884:43): [True: 1.92k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11358|  10.4k|	    ((type == SCTP_NR_SELECTIVE_ACK) &&
  ------------------
  |  |  472|  10.4k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (11358:7): [True: 7.15k, False: 3.25k]
  ------------------
11359|  10.4k|	     SCTP_TSN_GT(asoc->highest_tsn_inside_map, asoc->cumulative_tsn))) {
  ------------------
  |  |  889|  7.15k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  7.15k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 4.79k, False: 2.36k]
  |  |  |  |  |  Branch (883:43): [True: 1.42k, False: 3.37k]
  |  |  |  |  ------------------
  |  |  |  |  884|  7.15k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 5.73k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11360|       |		/* we have a gap .. maybe */
11361|   444k|		for (i = 0; i < siz; i++) {
  ------------------
  |  Branch (11361:15): [True: 441k, False: 3.35k]
  ------------------
11362|   441k|			tsn_map = asoc->mapping_array[i];
11363|   441k|			if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|   441k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11363:8): [True: 441k, False: 0]
  ------------------
11364|   441k|				tsn_map |= asoc->nr_mapping_array[i];
11365|   441k|			}
11366|   441k|			if (i == 0) {
  ------------------
  |  Branch (11366:8): [True: 1.92k, False: 439k]
  ------------------
11367|       |				/*
11368|       |				 * Clear all bits corresponding to TSNs
11369|       |				 * smaller or equal to the cumulative TSN.
11370|       |				 */
11371|  1.92k|				tsn_map &= (~0U << (1 - offset));
11372|  1.92k|			}
11373|   441k|			selector = &sack_array[tsn_map];
11374|   441k|			if (mergeable && selector->right_edge) {
  ------------------
  |  Branch (11374:8): [True: 786, False: 440k]
  |  Branch (11374:21): [True: 198, False: 588]
  ------------------
11375|       |				/*
11376|       |				 * Backup, left and right edges were ok to
11377|       |				 * merge.
11378|       |				 */
11379|    198|				num_gap_blocks--;
11380|    198|				gap_descriptor--;
11381|    198|			}
11382|   441k|			if (selector->num_entries == 0)
  ------------------
  |  Branch (11382:8): [True: 435k, False: 5.51k]
  ------------------
11383|   435k|				mergeable = 0;
11384|  5.51k|			else {
11385|  11.4k|				for (j = 0; j < selector->num_entries; j++) {
  ------------------
  |  Branch (11385:17): [True: 5.95k, False: 5.51k]
  ------------------
11386|  5.95k|					if (mergeable && selector->right_edge) {
  ------------------
  |  Branch (11386:10): [True: 314, False: 5.63k]
  |  Branch (11386:23): [True: 198, False: 116]
  ------------------
11387|       |						/*
11388|       |						 * do a merge by NOT setting
11389|       |						 * the left side
11390|       |						 */
11391|    198|						mergeable = 0;
11392|  5.75k|					} else {
11393|       |						/*
11394|       |						 * no merge, set the left
11395|       |						 * side
11396|       |						 */
11397|  5.75k|						mergeable = 0;
11398|  5.75k|						gap_descriptor->start = htons((selector->gaps[j].start + offset));
11399|  5.75k|					}
11400|  5.95k|					gap_descriptor->end = htons((selector->gaps[j].end + offset));
11401|  5.95k|					num_gap_blocks++;
11402|  5.95k|					gap_descriptor++;
11403|  5.95k|					if (((caddr_t)gap_descriptor + sizeof(struct sctp_gap_ack_block)) > limit) {
  ------------------
  |  Branch (11403:10): [True: 0, False: 5.95k]
  ------------------
11404|       |						/* no more room */
11405|      0|						limit_reached = 1;
11406|      0|						break;
11407|      0|					}
11408|  5.95k|				}
11409|  5.51k|				if (selector->left_edge) {
  ------------------
  |  Branch (11409:9): [True: 1.13k, False: 4.37k]
  ------------------
11410|  1.13k|					mergeable = 1;
11411|  1.13k|				}
11412|  5.51k|			}
11413|   441k|			if (limit_reached) {
  ------------------
  |  Branch (11413:8): [True: 0, False: 441k]
  ------------------
11414|       |				/* Reached the limit stop */
11415|      0|				break;
11416|      0|			}
11417|   441k|			offset += 8;
11418|   441k|		}
11419|  3.35k|	}
11420|  12.3k|	if ((type == SCTP_NR_SELECTIVE_ACK) &&
  ------------------
  |  |  472|  12.3k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (11420:6): [True: 7.15k, False: 5.18k]
  ------------------
11421|  7.15k|	    (limit_reached == 0)) {
  ------------------
  |  Branch (11421:6): [True: 7.15k, False: 0]
  ------------------
11422|  7.15k|		mergeable = 0;
11423|       |
11424|  7.15k|		if (asoc->highest_tsn_inside_nr_map > asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (11424:7): [True: 2.45k, False: 4.70k]
  ------------------
11425|  2.45k|			siz = (((asoc->highest_tsn_inside_nr_map - asoc->mapping_array_base_tsn) + 1) + 7) / 8;
11426|  4.70k|		} else {
11427|  4.70k|			siz = (((MAX_TSN - asoc->mapping_array_base_tsn) + 1) + asoc->highest_tsn_inside_nr_map + 7) / 8;
  ------------------
  |  |  310|  4.70k|#define MAX_TSN	0xffffffff
  ------------------
11428|  4.70k|		}
11429|       |
11430|  7.15k|		if (SCTP_TSN_GT(asoc->mapping_array_base_tsn, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|  7.15k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  7.15k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.88k, False: 3.27k]
  |  |  |  |  |  Branch (883:43): [True: 1.42k, False: 2.45k]
  |  |  |  |  ------------------
  |  |  |  |  884|  7.15k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 2.36k, False: 3.37k]
  |  |  |  |  |  Branch (884:43): [True: 2.36k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11431|  3.78k|			offset = 1;
11432|  3.78k|		} else {
11433|  3.37k|			offset = asoc->mapping_array_base_tsn - asoc->cumulative_tsn;
11434|  3.37k|		}
11435|  7.15k|		if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|  7.15k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  7.15k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.42k, False: 5.73k]
  |  |  |  |  |  Branch (883:43): [True: 1.42k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  7.15k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 5.73k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11436|       |			/* we have a gap .. maybe */
11437|  1.42k|			for (i = 0; i < siz; i++) {
  ------------------
  |  Branch (11437:16): [True: 0, False: 1.42k]
  ------------------
11438|      0|				tsn_map = asoc->nr_mapping_array[i];
11439|      0|				if (i == 0) {
  ------------------
  |  Branch (11439:9): [True: 0, False: 0]
  ------------------
11440|       |					/*
11441|       |					 * Clear all bits corresponding to TSNs
11442|       |					 * smaller or equal to the cumulative TSN.
11443|       |					 */
11444|      0|					tsn_map &= (~0U << (1 - offset));
11445|      0|				}
11446|      0|				selector = &sack_array[tsn_map];
11447|      0|				if (mergeable && selector->right_edge) {
  ------------------
  |  Branch (11447:9): [True: 0, False: 0]
  |  Branch (11447:22): [True: 0, False: 0]
  ------------------
11448|       |					/*
11449|       |					* Backup, left and right edges were ok to
11450|       |					* merge.
11451|       |					*/
11452|      0|					num_nr_gap_blocks--;
11453|      0|					gap_descriptor--;
11454|      0|				}
11455|      0|				if (selector->num_entries == 0)
  ------------------
  |  Branch (11455:9): [True: 0, False: 0]
  ------------------
11456|      0|					mergeable = 0;
11457|      0|				else {
11458|      0|					for (j = 0; j < selector->num_entries; j++) {
  ------------------
  |  Branch (11458:18): [True: 0, False: 0]
  ------------------
11459|      0|						if (mergeable && selector->right_edge) {
  ------------------
  |  Branch (11459:11): [True: 0, False: 0]
  |  Branch (11459:24): [True: 0, False: 0]
  ------------------
11460|       |							/*
11461|       |							* do a merge by NOT setting
11462|       |							* the left side
11463|       |							*/
11464|      0|							mergeable = 0;
11465|      0|						} else {
11466|       |							/*
11467|       |							* no merge, set the left
11468|       |							* side
11469|       |							*/
11470|      0|							mergeable = 0;
11471|      0|							gap_descriptor->start = htons((selector->gaps[j].start + offset));
11472|      0|						}
11473|      0|						gap_descriptor->end = htons((selector->gaps[j].end + offset));
11474|      0|						num_nr_gap_blocks++;
11475|      0|						gap_descriptor++;
11476|      0|						if (((caddr_t)gap_descriptor + sizeof(struct sctp_gap_ack_block)) > limit) {
  ------------------
  |  Branch (11476:11): [True: 0, False: 0]
  ------------------
11477|       |							/* no more room */
11478|      0|							limit_reached = 1;
11479|      0|							break;
11480|      0|						}
11481|      0|					}
11482|      0|					if (selector->left_edge) {
  ------------------
  |  Branch (11482:10): [True: 0, False: 0]
  ------------------
11483|      0|						mergeable = 1;
11484|      0|					}
11485|      0|				}
11486|      0|				if (limit_reached) {
  ------------------
  |  Branch (11486:9): [True: 0, False: 0]
  ------------------
11487|       |					/* Reached the limit stop */
11488|      0|					break;
11489|      0|				}
11490|      0|				offset += 8;
11491|      0|			}
11492|  1.42k|		}
11493|  7.15k|	}
11494|       |	/* now we must add any dups we are going to report. */
11495|  12.3k|	if ((limit_reached == 0) && (asoc->numduptsns)) {
  ------------------
  |  Branch (11495:6): [True: 12.3k, False: 0]
  |  Branch (11495:30): [True: 1.24k, False: 11.1k]
  ------------------
11496|  1.24k|		dup = (uint32_t *) gap_descriptor;
11497|  3.48k|		for (i = 0; i < asoc->numduptsns; i++) {
  ------------------
  |  Branch (11497:15): [True: 2.24k, False: 1.24k]
  ------------------
11498|  2.24k|			*dup = htonl(asoc->dup_tsns[i]);
11499|  2.24k|			dup++;
11500|  2.24k|			num_dups++;
11501|  2.24k|			if (((caddr_t)dup + sizeof(uint32_t)) > limit) {
  ------------------
  |  Branch (11501:8): [True: 0, False: 2.24k]
  ------------------
11502|       |				/* no more room */
11503|      0|				break;
11504|      0|			}
11505|  2.24k|		}
11506|  1.24k|		asoc->numduptsns = 0;
11507|  1.24k|	}
11508|       |	/*
11509|       |	 * now that the chunk is prepared queue it to the control chunk
11510|       |	 * queue.
11511|       |	 */
11512|  12.3k|	if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  12.3k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11512:6): [True: 5.18k, False: 7.15k]
  ------------------
11513|  5.18k|		a_chk->send_size = (uint16_t)(sizeof(struct sctp_sack_chunk) +
11514|  5.18k|		                              (num_gap_blocks + num_nr_gap_blocks) * sizeof(struct sctp_gap_ack_block) +
11515|  5.18k|		                              num_dups * sizeof(int32_t));
11516|  5.18k|		SCTP_BUF_LEN(a_chk->data) = a_chk->send_size;
  ------------------
  |  |  801|  5.18k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.18k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11517|  5.18k|		sack->sack.cum_tsn_ack = htonl(asoc->cumulative_tsn);
11518|  5.18k|		sack->sack.a_rwnd = htonl(asoc->my_rwnd);
11519|  5.18k|		sack->sack.num_gap_ack_blks = htons(num_gap_blocks);
11520|  5.18k|		sack->sack.num_dup_tsns = htons(num_dups);
11521|  5.18k|		sack->ch.chunk_type = type;
11522|  5.18k|		sack->ch.chunk_flags = flags;
11523|  5.18k|		sack->ch.chunk_length = htons(a_chk->send_size);
11524|  7.15k|	} else {
11525|  7.15k|		a_chk->send_size = (uint16_t)(sizeof(struct sctp_nr_sack_chunk) +
11526|  7.15k|		                              (num_gap_blocks + num_nr_gap_blocks) * sizeof(struct sctp_gap_ack_block) +
11527|  7.15k|		                              num_dups * sizeof(int32_t));
11528|  7.15k|		SCTP_BUF_LEN(a_chk->data) = a_chk->send_size;
  ------------------
  |  |  801|  7.15k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.15k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11529|  7.15k|		nr_sack->nr_sack.cum_tsn_ack = htonl(asoc->cumulative_tsn);
11530|  7.15k|		nr_sack->nr_sack.a_rwnd = htonl(asoc->my_rwnd);
11531|  7.15k|		nr_sack->nr_sack.num_gap_ack_blks = htons(num_gap_blocks);
11532|  7.15k|		nr_sack->nr_sack.num_nr_gap_ack_blks = htons(num_nr_gap_blocks);
11533|  7.15k|		nr_sack->nr_sack.num_dup_tsns = htons(num_dups);
11534|  7.15k|		nr_sack->nr_sack.reserved = 0;
11535|  7.15k|		nr_sack->ch.chunk_type = type;
11536|  7.15k|		nr_sack->ch.chunk_flags = flags;
11537|  7.15k|		nr_sack->ch.chunk_length = htons(a_chk->send_size);
11538|  7.15k|	}
11539|  12.3k|	TAILQ_INSERT_TAIL(&asoc->control_send_queue, a_chk, sctp_next);
  ------------------
  |  Branch (11539:2): [Folded, False: 12.3k]
  ------------------
11540|  12.3k|	asoc->my_last_reported_rwnd = asoc->my_rwnd;
11541|  12.3k|	asoc->ctrl_queue_cnt++;
11542|  12.3k|	asoc->send_sack = 0;
11543|  12.3k|	SCTP_STAT_INCR(sctps_sendsacks);
  ------------------
  |  | 1112|  12.3k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  12.3k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  12.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11544|  12.3k|	return;
11545|  12.3k|}
sctp_send_abort_tcb:
11549|  7.69k|{
11550|  7.69k|	struct mbuf *m_abort, *m, *m_last;
11551|  7.69k|	struct mbuf *m_out, *m_end = NULL;
11552|  7.69k|	struct sctp_abort_chunk *abort;
11553|  7.69k|	struct sctp_auth_chunk *auth = NULL;
11554|  7.69k|	struct sctp_nets *net;
11555|  7.69k|	uint32_t vtag;
11556|  7.69k|	uint32_t auth_offset = 0;
11557|  7.69k|	int error;
11558|  7.69k|	uint16_t cause_len, chunk_len, padding_len;
11559|  7.69k|	bool use_zero_crc;
11560|       |
11561|       |#if defined(__APPLE__) && !defined(__Userspace__)
11562|       |	if (so_locked) {
11563|       |		sctp_lock_assert(SCTP_INP_SO(stcb->sctp_ep));
11564|       |	} else {
11565|       |		sctp_unlock_assert(SCTP_INP_SO(stcb->sctp_ep));
11566|       |	}
11567|       |#endif
11568|  7.69k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  7.69k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  7.69k|	do {                         \
  |  |  |  |  113|  7.69k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.69k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  7.69k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 7.69k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11569|       |	/*-
11570|       |	 * Add an AUTH chunk, if chunk requires it and save the offset into
11571|       |	 * the chain for AUTH
11572|       |	 */
11573|  7.69k|	if (sctp_auth_is_required_chunk(SCTP_ABORT_ASSOCIATION,
  ------------------
  |  |  100|  7.69k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 26, False: 7.67k]
  |  |  |  Branch (100:51): [True: 568, False: 7.12k]
  |  |  ------------------
  ------------------
11574|  7.69k|	                                stcb->asoc.peer_auth_chunks)) {
11575|     26|		m_out = sctp_add_auth_chunk(NULL, &m_end, &auth, &auth_offset,
11576|     26|					    stcb, SCTP_ABORT_ASSOCIATION);
  ------------------
  |  |  460|     26|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
11577|     26|		SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|     26|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     26|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     26|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     26|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11578|  7.67k|	} else {
11579|  7.67k|		m_out = NULL;
11580|  7.67k|	}
11581|  7.69k|	switch (stcb->asoc.snd_edmid) {
11582|      0|	case SCTP_EDMID_LOWER_LAYER_DTLS:
  ------------------
  |  |  810|      0|#define SCTP_EDMID_LOWER_LAYER_DTLS 1
  ------------------
  |  Branch (11582:2): [True: 0, False: 7.69k]
  ------------------
11583|      0|		use_zero_crc = true;
11584|      0|		break;
11585|  7.69k|	default:
  ------------------
  |  Branch (11585:2): [True: 7.69k, False: 0]
  ------------------
11586|  7.69k|		use_zero_crc = false;
11587|  7.69k|		break;
11588|  7.69k|	}
11589|  7.69k|	m_abort = sctp_get_mbuf_for_msg(sizeof(struct sctp_abort_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  7.69k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_abort = sctp_get_mbuf_for_msg(sizeof(struct sctp_abort_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  7.69k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  7.69k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
11590|  7.69k|	if (m_abort == NULL) {
  ------------------
  |  Branch (11590:6): [True: 0, False: 7.69k]
  ------------------
11591|      0|		if (m_out) {
  ------------------
  |  Branch (11591:7): [True: 0, False: 0]
  ------------------
11592|      0|			sctp_m_freem(m_out);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11593|      0|		}
11594|      0|		if (operr) {
  ------------------
  |  Branch (11594:7): [True: 0, False: 0]
  ------------------
11595|      0|			sctp_m_freem(operr);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11596|      0|		}
11597|      0|		return;
11598|      0|	}
11599|       |	/* link in any error */
11600|  7.69k|	SCTP_BUF_NEXT(m_abort) = operr;
  ------------------
  |  |  802|  7.69k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  7.69k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
11601|  7.69k|	cause_len = 0;
11602|  7.69k|	m_last = NULL;
11603|  15.3k|	for (m = operr; m; m = SCTP_BUF_NEXT(m)) {
  ------------------
  |  |  802|  7.69k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  7.69k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11603:18): [True: 7.69k, False: 7.69k]
  ------------------
11604|  7.69k|		cause_len += (uint16_t)SCTP_BUF_LEN(m);
  ------------------
  |  |  801|  7.69k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.69k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11605|  7.69k|		if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  7.69k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  7.69k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11605:7): [True: 7.69k, False: 0]
  ------------------
11606|  7.69k|			m_last = m;
11607|  7.69k|		}
11608|  7.69k|	}
11609|  7.69k|	SCTP_BUF_LEN(m_abort) = sizeof(struct sctp_abort_chunk);
  ------------------
  |  |  801|  7.69k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.69k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11610|  7.69k|	chunk_len = (uint16_t)sizeof(struct sctp_abort_chunk) + cause_len;
11611|  7.69k|	padding_len = SCTP_SIZE32(chunk_len) - chunk_len;
  ------------------
  |  |  383|  7.69k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
11612|  7.69k|	if (m_out == NULL) {
  ------------------
  |  Branch (11612:6): [True: 7.68k, False: 9]
  ------------------
11613|       |		/* NO Auth chunk prepended, so reserve space in front */
11614|  7.68k|		SCTP_BUF_RESV_UF(m_abort, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  7.68k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  7.68k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11615|  7.68k|		m_out = m_abort;
11616|  7.68k|	} else {
11617|       |		/* Put AUTH chunk at the front of the chain */
11618|      9|		SCTP_BUF_NEXT(m_end) = m_abort;
  ------------------
  |  |  802|      9|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      9|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
11619|      9|	}
11620|  7.69k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (11620:6): [True: 36, False: 7.66k]
  ------------------
11621|     36|		net = stcb->asoc.alternate;
11622|  7.66k|	} else {
11623|  7.66k|		net = stcb->asoc.primary_destination;
11624|  7.66k|	}
11625|       |	/* Fill in the ABORT chunk header. */
11626|  7.69k|	abort = mtod(m_abort, struct sctp_abort_chunk *);
  ------------------
  |  |   96|  7.69k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  7.69k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11627|  7.69k|	abort->ch.chunk_type = SCTP_ABORT_ASSOCIATION;
  ------------------
  |  |  460|  7.69k|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
11628|  7.69k|	if (stcb->asoc.peer_vtag == 0) {
  ------------------
  |  Branch (11628:6): [True: 94, False: 7.60k]
  ------------------
11629|       |		/* This happens iff the assoc is in COOKIE-WAIT state. */
11630|     94|		vtag = stcb->asoc.my_vtag;
11631|     94|		abort->ch.chunk_flags = SCTP_HAD_NO_TCB;
  ------------------
  |  |  493|     94|#define SCTP_HAD_NO_TCB		0x01
  ------------------
11632|  7.60k|	} else {
11633|  7.60k|		vtag = stcb->asoc.peer_vtag;
11634|  7.60k|		abort->ch.chunk_flags = 0;
11635|  7.60k|	}
11636|  7.69k|	abort->ch.chunk_length = htons(chunk_len);
11637|       |	/* Add padding, if necessary. */
11638|  7.69k|	if (padding_len > 0) {
  ------------------
  |  Branch (11638:6): [True: 913, False: 6.78k]
  ------------------
11639|    913|		if ((m_last == NULL) ||
  ------------------
  |  Branch (11639:7): [True: 0, False: 913]
  ------------------
11640|    913|		    (sctp_add_pad_tombuf(m_last, padding_len) == NULL)) {
  ------------------
  |  Branch (11640:7): [True: 0, False: 913]
  ------------------
11641|      0|			sctp_m_freem(m_out);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11642|      0|			return;
11643|      0|		}
11644|    913|	}
11645|  7.69k|	if ((error = sctp_lowlevel_chunk_output(stcb->sctp_ep, stcb, net,
  ------------------
  |  Branch (11645:6): [True: 152, False: 7.54k]
  ------------------
11646|  7.69k|	                                        (struct sockaddr *)&net->ro._l_addr,
11647|  7.69k|	                                        m_out, auth_offset, auth, stcb->asoc.authinfo.active_keyid, 1, 0, 0,
11648|  7.69k|	                                        stcb->sctp_ep->sctp_lport, stcb->rport, htonl(vtag),
  ------------------
  |  |  426|  7.69k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  7.69k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  7.69k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11649|  7.69k|	                                        stcb->asoc.primary_destination->port, NULL,
11650|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11651|       |	                                        0, 0,
11652|       |#endif
11653|  7.69k|	                                        use_zero_crc,
11654|  7.69k|	                                        so_locked))) {
11655|    152|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
11656|    152|		if (error == ENOBUFS) {
  ------------------
  |  Branch (11656:7): [True: 0, False: 152]
  ------------------
11657|      0|			stcb->asoc.ifp_had_enobuf = 1;
11658|      0|			SCTP_STAT_INCR(sctps_lowlevelerr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11659|      0|		}
11660|  7.54k|	} else {
11661|  7.54k|		stcb->asoc.ifp_had_enobuf = 0;
11662|  7.54k|	}
11663|  7.69k|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|  7.69k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  7.69k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  7.69k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  7.69k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11664|  7.69k|}
sctp_send_shutdown_complete:
11670|      8|{
11671|       |	/* formulate and SEND a SHUTDOWN-COMPLETE */
11672|      8|	struct mbuf *m_shutdown_comp;
11673|      8|	struct sctp_shutdown_complete_chunk *shutdown_complete;
11674|      8|	uint32_t vtag;
11675|      8|	int error;
11676|      8|	uint8_t flags;
11677|      8|	bool use_zero_crc;
11678|       |
11679|      8|	m_shutdown_comp = sctp_get_mbuf_for_msg(sizeof(struct sctp_chunkhdr), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|      8|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_shutdown_comp = sctp_get_mbuf_for_msg(sizeof(struct sctp_chunkhdr), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|      8|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|      8|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
11680|      8|	if (m_shutdown_comp == NULL) {
  ------------------
  |  Branch (11680:6): [True: 0, False: 8]
  ------------------
11681|       |		/* no mbuf's */
11682|      0|		return;
11683|      0|	}
11684|      8|	if (reflect_vtag) {
  ------------------
  |  Branch (11684:6): [True: 6, False: 2]
  ------------------
11685|      6|		flags = SCTP_HAD_NO_TCB;
  ------------------
  |  |  493|      6|#define SCTP_HAD_NO_TCB		0x01
  ------------------
11686|      6|		vtag = stcb->asoc.my_vtag;
11687|      6|	} else {
11688|      2|		flags = 0;
11689|      2|		vtag = stcb->asoc.peer_vtag;
11690|      2|	}
11691|      8|	switch (stcb->asoc.snd_edmid) {
11692|      0|	case SCTP_EDMID_LOWER_LAYER_DTLS:
  ------------------
  |  |  810|      0|#define SCTP_EDMID_LOWER_LAYER_DTLS 1
  ------------------
  |  Branch (11692:2): [True: 0, False: 8]
  ------------------
11693|      0|		use_zero_crc = true;
11694|      0|		break;
11695|      8|	default:
  ------------------
  |  Branch (11695:2): [True: 8, False: 0]
  ------------------
11696|      8|		use_zero_crc = false;
11697|      8|		break;
11698|      8|	}
11699|      8|	shutdown_complete = mtod(m_shutdown_comp, struct sctp_shutdown_complete_chunk *);
  ------------------
  |  |   96|      8|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      8|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11700|      8|	shutdown_complete->ch.chunk_type = SCTP_SHUTDOWN_COMPLETE;
  ------------------
  |  |  468|      8|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
11701|      8|	shutdown_complete->ch.chunk_flags = flags;
11702|      8|	shutdown_complete->ch.chunk_length = htons(sizeof(struct sctp_shutdown_complete_chunk));
11703|      8|	SCTP_BUF_LEN(m_shutdown_comp) = sizeof(struct sctp_shutdown_complete_chunk);
  ------------------
  |  |  801|      8|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      8|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11704|      8|	if ((error = sctp_lowlevel_chunk_output(stcb->sctp_ep, stcb, net,
  ------------------
  |  Branch (11704:6): [True: 0, False: 8]
  ------------------
11705|      8|	                                        (struct sockaddr *)&net->ro._l_addr,
11706|      8|	                                        m_shutdown_comp, 0, NULL, 0, 1, 0, 0,
11707|      8|	                                        stcb->sctp_ep->sctp_lport, stcb->rport,
  ------------------
  |  |  426|      8|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      8|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      8|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11708|      8|	                                        htonl(vtag),
11709|      8|	                                        net->port, NULL,
11710|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11711|       |	                                        0, 0,
11712|       |#endif
11713|      8|	                                        use_zero_crc,
11714|      8|	                                        SCTP_SO_NOT_LOCKED))) {
  ------------------
  |  |  960|      8|#define SCTP_SO_NOT_LOCKED	0
  ------------------
11715|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
11716|      0|		if (error == ENOBUFS) {
  ------------------
  |  Branch (11716:7): [True: 0, False: 0]
  ------------------
11717|      0|			stcb->asoc.ifp_had_enobuf = 1;
11718|      0|			SCTP_STAT_INCR(sctps_lowlevelerr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11719|      0|		}
11720|      8|	} else {
11721|      8|		stcb->asoc.ifp_had_enobuf = 0;
11722|      8|	}
11723|      8|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|      8|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      8|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      8|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      8|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11724|      8|	return;
11725|      8|}
sctp_send_shutdown_complete2:
12128|      3|{
12129|      3|	sctp_send_resp_msg(src, dst, sh, 0, SCTP_SHUTDOWN_COMPLETE, NULL,
  ------------------
  |  |  468|      3|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
12130|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12131|       |	                   mflowtype, mflowid, fibnum,
12132|       |#endif
12133|      3|	                   vrf_id, port);
12134|      3|}
sctp_send_hb:
12138|  42.8k|{
12139|  42.8k|	struct sctp_tmit_chunk *chk;
12140|  42.8k|	struct sctp_heartbeat_chunk *hb;
12141|  42.8k|	struct timeval now;
12142|       |
12143|  42.8k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  42.8k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  42.8k|	do {                         \
  |  |  |  |  113|  42.8k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 42.8k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  42.8k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 42.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12144|  42.8k|	if (net == NULL) {
  ------------------
  |  Branch (12144:6): [True: 0, False: 42.8k]
  ------------------
12145|      0|		return;
12146|      0|	}
12147|  42.8k|	(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  42.8k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
12148|  42.8k|	switch (net->ro._l_addr.sa.sa_family) {
12149|      0|#ifdef INET
12150|  1.50k|	case AF_INET:
  ------------------
  |  Branch (12150:2): [True: 1.50k, False: 41.3k]
  ------------------
12151|  1.50k|		break;
12152|      0|#endif
12153|      0|#ifdef INET6
12154|  2.11k|	case AF_INET6:
  ------------------
  |  Branch (12154:2): [True: 2.11k, False: 40.7k]
  ------------------
12155|  2.11k|		break;
12156|      0|#endif
12157|      0|#if defined(__Userspace__)
12158|  39.1k|	case AF_CONN:
  ------------------
  |  | 1014|  39.1k|#define AF_CONN 123
  ------------------
  |  Branch (12158:2): [True: 39.1k, False: 3.61k]
  ------------------
12159|  39.1k|		break;
12160|      0|#endif
12161|      0|	default:
  ------------------
  |  Branch (12161:2): [True: 0, False: 42.8k]
  ------------------
12162|      0|		return;
12163|  42.8k|	}
12164|  42.8k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  42.8k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  42.8k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  42.1k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  42.1k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  42.1k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 42.1k, False: 0]
  |  |  ------------------
  |  |  173|  42.1k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  42.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  42.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  42.1k|			(_chk)->whoTo = NULL; \
  |  |  175|  42.1k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  42.1k|		} \
  |  |  177|  42.1k|	} else { \
  |  |  178|    621|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    621|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    621|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    621|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    621|		(_chk)->holds_key_ref = 0; \
  |  |  182|    621|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    621|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    621|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    621|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    621|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    621|	} \
  |  |  185|  42.8k|}
  ------------------
  |  Branch (12164:2): [True: 57, False: 564]
  |  Branch (12164:2): [Folded, False: 621]
  |  Branch (12164:2): [True: 42.1k, False: 621]
  ------------------
12165|  42.8k|	if (chk == NULL) {
  ------------------
  |  Branch (12165:6): [True: 0, False: 42.8k]
  ------------------
12166|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Gak, can't get a chunk for hb\n");
12167|      0|		return;
12168|      0|	}
12169|       |
12170|  42.8k|	chk->copy_by_ref = 0;
12171|  42.8k|	chk->rec.chunk_id.id = SCTP_HEARTBEAT_REQUEST;
  ------------------
  |  |  458|  42.8k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
12172|  42.8k|	chk->rec.chunk_id.can_take_data = 1;
12173|  42.8k|	chk->flags = 0;
12174|  42.8k|	chk->asoc = &stcb->asoc;
12175|  42.8k|	chk->send_size = sizeof(struct sctp_heartbeat_chunk);
12176|       |
12177|  42.8k|	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  42.8k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  42.8k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  42.8k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
12178|  42.8k|	if (chk->data == NULL) {
  ------------------
  |  Branch (12178:6): [True: 0, False: 42.8k]
  ------------------
12179|      0|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12179:3): [Folded, False: 0]
  ------------------
12180|      0|		return;
12181|      0|	}
12182|  42.8k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  42.8k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  42.8k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12183|  42.8k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  42.8k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  42.8k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12184|  42.8k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  42.8k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12185|  42.8k|	chk->snd_count = 0;
12186|  42.8k|	chk->whoTo = net;
12187|  42.8k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  42.8k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12188|       |	/* Now we have a mbuf that we can fill in with the details */
12189|  42.8k|	hb = mtod(chk->data, struct sctp_heartbeat_chunk *);
  ------------------
  |  |   96|  42.8k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  42.8k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12190|  42.8k|	memset(hb, 0, sizeof(struct sctp_heartbeat_chunk));
12191|       |	/* fill out chunk header */
12192|  42.8k|	hb->ch.chunk_type = SCTP_HEARTBEAT_REQUEST;
  ------------------
  |  |  458|  42.8k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
12193|  42.8k|	hb->ch.chunk_flags = 0;
12194|  42.8k|	hb->ch.chunk_length = htons(chk->send_size);
12195|       |	/* Fill out hb parameter */
12196|  42.8k|	hb->heartbeat.hb_info.ph.param_type = htons(SCTP_HEARTBEAT_INFO);
12197|  42.8k|	hb->heartbeat.hb_info.ph.param_length = htons(sizeof(struct sctp_heartbeat_info_param));
12198|  42.8k|	hb->heartbeat.hb_info.time_value_1 = now.tv_sec;
12199|  42.8k|	hb->heartbeat.hb_info.time_value_2 = now.tv_usec;
12200|       |	/* Did our user request this one, put it in */
12201|  42.8k|	hb->heartbeat.hb_info.addr_family = (uint8_t)net->ro._l_addr.sa.sa_family;
12202|       |#ifdef HAVE_SA_LEN
12203|       |	hb->heartbeat.hb_info.addr_len = net->ro._l_addr.sa.sa_len;
12204|       |#else
12205|  42.8k|	switch (net->ro._l_addr.sa.sa_family) {
12206|      0|#ifdef INET
12207|  1.50k|	case AF_INET:
  ------------------
  |  Branch (12207:2): [True: 1.50k, False: 41.3k]
  ------------------
12208|  1.50k|		hb->heartbeat.hb_info.addr_len = sizeof(struct sockaddr_in);
12209|  1.50k|		break;
12210|      0|#endif
12211|      0|#ifdef INET6
12212|  2.11k|	case AF_INET6:
  ------------------
  |  Branch (12212:2): [True: 2.11k, False: 40.7k]
  ------------------
12213|  2.11k|		hb->heartbeat.hb_info.addr_len = sizeof(struct sockaddr_in6);
12214|  2.11k|		break;
12215|      0|#endif
12216|      0|#if defined(__Userspace__)
12217|  39.1k|	case AF_CONN:
  ------------------
  |  | 1014|  39.1k|#define AF_CONN 123
  ------------------
  |  Branch (12217:2): [True: 39.1k, False: 3.61k]
  ------------------
12218|  39.1k|		hb->heartbeat.hb_info.addr_len = sizeof(struct sockaddr_conn);
12219|  39.1k|		break;
12220|      0|#endif
12221|      0|	default:
  ------------------
  |  Branch (12221:2): [True: 0, False: 42.8k]
  ------------------
12222|      0|		hb->heartbeat.hb_info.addr_len = 0;
12223|      0|		break;
12224|  42.8k|	}
12225|  42.8k|#endif
12226|  42.8k|	if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  42.8k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (12226:6): [True: 2.88k, False: 39.9k]
  ------------------
12227|       |		/*
12228|       |		 * we only take from the entropy pool if the address is not
12229|       |		 * confirmed.
12230|       |		 */
12231|  2.88k|		net->heartbeat_random1 = hb->heartbeat.hb_info.random_value1 = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep);
12232|  2.88k|		net->heartbeat_random2 = hb->heartbeat.hb_info.random_value2 = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep);
12233|  39.9k|	} else {
12234|  39.9k|		net->heartbeat_random1 = hb->heartbeat.hb_info.random_value1 = 0;
12235|  39.9k|		net->heartbeat_random2 = hb->heartbeat.hb_info.random_value2 = 0;
12236|  39.9k|	}
12237|  42.8k|	switch (net->ro._l_addr.sa.sa_family) {
12238|      0|#ifdef INET
12239|  1.50k|	case AF_INET:
  ------------------
  |  Branch (12239:2): [True: 1.50k, False: 41.3k]
  ------------------
12240|  1.50k|		memcpy(hb->heartbeat.hb_info.address,
12241|  1.50k|		       &net->ro._l_addr.sin.sin_addr,
12242|  1.50k|		       sizeof(net->ro._l_addr.sin.sin_addr));
12243|  1.50k|		break;
12244|      0|#endif
12245|      0|#ifdef INET6
12246|  2.11k|	case AF_INET6:
  ------------------
  |  Branch (12246:2): [True: 2.11k, False: 40.7k]
  ------------------
12247|  2.11k|		memcpy(hb->heartbeat.hb_info.address,
12248|  2.11k|		       &net->ro._l_addr.sin6.sin6_addr,
12249|  2.11k|		       sizeof(net->ro._l_addr.sin6.sin6_addr));
12250|  2.11k|		break;
12251|      0|#endif
12252|      0|#if defined(__Userspace__)
12253|  39.1k|	case AF_CONN:
  ------------------
  |  | 1014|  39.1k|#define AF_CONN 123
  ------------------
  |  Branch (12253:2): [True: 39.1k, False: 3.61k]
  ------------------
12254|  39.1k|		memcpy(hb->heartbeat.hb_info.address,
12255|  39.1k|		       &net->ro._l_addr.sconn.sconn_addr,
12256|  39.1k|		       sizeof(net->ro._l_addr.sconn.sconn_addr));
12257|  39.1k|		break;
12258|      0|#endif
12259|      0|	default:
  ------------------
  |  Branch (12259:2): [True: 0, False: 42.8k]
  ------------------
12260|      0|		if (chk->data) {
  ------------------
  |  Branch (12260:7): [True: 0, False: 0]
  ------------------
12261|      0|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
12262|      0|			chk->data = NULL;
12263|      0|		}
12264|      0|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12264:3): [Folded, False: 0]
  ------------------
12265|      0|		return;
12266|      0|		break;
12267|  42.8k|	}
12268|  42.8k|	net->hb_responded = 0;
12269|  42.8k|	TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (12269:2): [Folded, False: 42.8k]
  ------------------
12270|  42.8k|	stcb->asoc.ctrl_queue_cnt++;
12271|  42.8k|	SCTP_STAT_INCR(sctps_sendheartbeat);
  ------------------
  |  | 1112|  42.8k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  42.8k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  42.8k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12272|  42.8k|	return;
12273|  42.8k|}
sctp_send_packet_dropped:
12342|     14|{
12343|     14|	struct sctp_association *asoc;
12344|     14|	struct sctp_pktdrop_chunk *drp;
12345|     14|	struct sctp_tmit_chunk *chk;
12346|     14|	uint8_t *datap;
12347|     14|	int was_trunc = 0;
12348|     14|	int fullsz = 0;
12349|     14|	long spc;
12350|     14|	int offset;
12351|     14|	struct sctp_chunkhdr *ch, chunk_buf;
12352|     14|	unsigned int chk_length;
12353|       |
12354|     14|        if (!stcb) {
  ------------------
  |  Branch (12354:13): [True: 0, False: 14]
  ------------------
12355|      0|            return;
12356|      0|        }
12357|     14|	asoc = &stcb->asoc;
12358|     14|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     14|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     14|	do {                         \
  |  |  |  |  113|     14|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 14]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     14|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 14]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12359|     14|	if (asoc->pktdrop_supported == 0) {
  ------------------
  |  Branch (12359:6): [True: 14, False: 0]
  ------------------
12360|       |		/*-
12361|       |		 * peer must declare support before I send one.
12362|       |		 */
12363|     14|		return;
12364|     14|	}
12365|      0|	if (stcb->sctp_socket == NULL) {
  ------------------
  |  Branch (12365:6): [True: 0, False: 0]
  ------------------
12366|      0|		return;
12367|      0|	}
12368|      0|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|      0|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|      0|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|      0|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|      0|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|      0|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  173|      0|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|      0|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|      0|			(_chk)->whoTo = NULL; \
  |  |  175|      0|			(_chk)->holds_key_ref = 0; \
  |  |  176|      0|		} \
  |  |  177|      0|	} else { \
  |  |  178|      0|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|      0|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|      0|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|      0|		(_chk)->holds_key_ref = 0; \
  |  |  182|      0|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|      0|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|      0|	} \
  |  |  185|      0|}
  ------------------
  |  Branch (12368:2): [True: 0, False: 0]
  |  Branch (12368:2): [Folded, False: 0]
  |  Branch (12368:2): [True: 0, False: 0]
  ------------------
12369|      0|	if (chk == NULL) {
  ------------------
  |  Branch (12369:6): [True: 0, False: 0]
  ------------------
12370|      0|		return;
12371|      0|	}
12372|      0|	chk->copy_by_ref = 0;
12373|      0|	chk->rec.chunk_id.id = SCTP_PACKET_DROPPED;
  ------------------
  |  |  479|      0|#define SCTP_PACKET_DROPPED	0x81
  ------------------
12374|      0|	chk->rec.chunk_id.can_take_data = 1;
12375|      0|	chk->flags = 0;
12376|      0|	len -= iphlen;
12377|      0|	chk->send_size = len;
12378|       |	/* Validate that we do not have an ABORT in here. */
12379|      0|	offset = iphlen + sizeof(struct sctphdr);
12380|      0|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
12381|      0|						   sizeof(*ch), (uint8_t *) & chunk_buf);
12382|      0|	while (ch != NULL) {
  ------------------
  |  Branch (12382:9): [True: 0, False: 0]
  ------------------
12383|      0|		chk_length = ntohs(ch->chunk_length);
12384|      0|		if (chk_length < sizeof(*ch)) {
  ------------------
  |  Branch (12384:7): [True: 0, False: 0]
  ------------------
12385|       |			/* break to abort land */
12386|      0|			break;
12387|      0|		}
12388|      0|		switch (ch->chunk_type) {
12389|      0|		case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|      0|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (12389:3): [True: 0, False: 0]
  ------------------
12390|      0|		case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|      0|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (12390:3): [True: 0, False: 0]
  ------------------
12391|      0|		case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|      0|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (12391:3): [True: 0, False: 0]
  ------------------
12392|       |			/**
12393|       |			 * We don't respond with an PKT-DROP to an ABORT
12394|       |			 * or PKT-DROP. We also do not respond to an
12395|       |			 * INIT-ACK, because we can't know if the initiation
12396|       |			 * tag is correct or not.
12397|       |			 */
12398|      0|			sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12398:4): [Folded, False: 0]
  ------------------
12399|      0|			return;
12400|      0|		default:
  ------------------
  |  Branch (12400:3): [True: 0, False: 0]
  ------------------
12401|      0|			break;
12402|      0|		}
12403|      0|		offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12404|      0|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
12405|      0|		    sizeof(*ch), (uint8_t *) & chunk_buf);
12406|      0|	}
12407|       |
12408|      0|	if ((len + SCTP_MAX_OVERHEAD + sizeof(struct sctp_pktdrop_chunk)) >
  ------------------
  |  |  554|      0|#define SCTP_MAX_OVERHEAD (sizeof(struct sctp_data_chunk) + \
  |  |  555|      0|                           sizeof(struct sctphdr) + \
  |  |  556|      0|                           sizeof(struct sctp_ecne_chunk) + \
  |  |  557|      0|                           sizeof(struct sctp_sack_chunk) + \
  |  |  558|      0|                           sizeof(struct ip6_hdr))
  ------------------
  |  Branch (12408:6): [True: 0, False: 0]
  ------------------
12409|      0|	    min(stcb->asoc.smallest_mtu, MCLBYTES)) {
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
12410|       |		/* only send 1 mtu worth, trim off the
12411|       |		 * excess on the end.
12412|       |		 */
12413|      0|		fullsz = len;
12414|      0|		len = min(stcb->asoc.smallest_mtu, MCLBYTES) - SCTP_MAX_OVERHEAD;
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
              		len = min(stcb->asoc.smallest_mtu, MCLBYTES) - SCTP_MAX_OVERHEAD;
  ------------------
  |  |  554|      0|#define SCTP_MAX_OVERHEAD (sizeof(struct sctp_data_chunk) + \
  |  |  555|      0|                           sizeof(struct sctphdr) + \
  |  |  556|      0|                           sizeof(struct sctp_ecne_chunk) + \
  |  |  557|      0|                           sizeof(struct sctp_sack_chunk) + \
  |  |  558|      0|                           sizeof(struct ip6_hdr))
  ------------------
12415|      0|		was_trunc = 1;
12416|      0|	}
12417|      0|	chk->asoc = &stcb->asoc;
12418|      0|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|      0|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
12419|      0|	if (chk->data == NULL) {
  ------------------
  |  Branch (12419:6): [True: 0, False: 0]
  ------------------
12420|      0|jump_out:
12421|      0|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12421:3): [Folded, False: 0]
  ------------------
12422|      0|		return;
12423|      0|	}
12424|      0|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|      0|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12425|      0|	drp = mtod(chk->data, struct sctp_pktdrop_chunk *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12426|      0|	if (drp == NULL) {
  ------------------
  |  Branch (12426:6): [True: 0, False: 0]
  ------------------
12427|      0|		sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
12428|      0|		chk->data = NULL;
12429|      0|		goto jump_out;
12430|      0|	}
12431|      0|	chk->book_size = SCTP_SIZE32((chk->send_size + sizeof(struct sctp_pktdrop_chunk) +
  ------------------
  |  |  383|      0|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12432|      0|	    sizeof(struct sctphdr) + SCTP_MED_OVERHEAD));
12433|      0|	chk->book_size_scale = 0;
12434|      0|	if (was_trunc) {
  ------------------
  |  Branch (12434:6): [True: 0, False: 0]
  ------------------
12435|      0|		drp->ch.chunk_flags = SCTP_PACKET_TRUNCATED;
  ------------------
  |  |  498|      0|#define SCTP_PACKET_TRUNCATED	0x04
  ------------------
12436|      0|		drp->trunc_len = htons(fullsz);
12437|       |		/* Len is already adjusted to size minus overhead above
12438|       |		 * take out the pkt_drop chunk itself from it.
12439|       |		 */
12440|      0|		chk->send_size = (uint16_t)(len - sizeof(struct sctp_pktdrop_chunk));
12441|      0|		len = chk->send_size;
12442|      0|	} else {
12443|       |		/* no truncation needed */
12444|      0|		drp->ch.chunk_flags = 0;
12445|      0|		drp->trunc_len = htons(0);
12446|      0|	}
12447|      0|	if (bad_crc) {
  ------------------
  |  Branch (12447:6): [True: 0, False: 0]
  ------------------
12448|      0|		drp->ch.chunk_flags |= SCTP_BADCRC;
  ------------------
  |  |  497|      0|#define SCTP_BADCRC		0x02
  ------------------
12449|      0|	}
12450|      0|	chk->send_size += sizeof(struct sctp_pktdrop_chunk);
12451|      0|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12452|      0|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|      0|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12453|      0|	chk->snd_count = 0;
12454|      0|	if (net) {
  ------------------
  |  Branch (12454:6): [True: 0, False: 0]
  ------------------
12455|       |		/* we should hit here */
12456|      0|		chk->whoTo = net;
12457|      0|		atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12458|      0|	} else {
12459|      0|		chk->whoTo = NULL;
12460|      0|	}
12461|      0|	drp->ch.chunk_type = SCTP_PACKET_DROPPED;
  ------------------
  |  |  479|      0|#define SCTP_PACKET_DROPPED	0x81
  ------------------
12462|      0|	drp->ch.chunk_length = htons(chk->send_size);
12463|      0|	spc = SCTP_SB_LIMIT_RCV(stcb->sctp_socket);
  ------------------
  |  |  983|      0|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
12464|      0|	if (spc < 0) {
  ------------------
  |  Branch (12464:6): [True: 0, False: 0]
  ------------------
12465|      0|		spc = 0;
12466|      0|	}
12467|      0|	drp->bottle_bw = htonl(spc);
12468|      0|	if (asoc->my_rwnd) {
  ------------------
  |  Branch (12468:6): [True: 0, False: 0]
  ------------------
12469|      0|		drp->current_onq = htonl(asoc->size_on_reasm_queue +
12470|      0|		    asoc->size_on_all_streams +
12471|      0|		    asoc->my_rwnd_control_len +
12472|      0|		    SCTP_SBAVAIL(&stcb->sctp_socket->so_rcv));
12473|      0|	} else {
12474|       |		/*-
12475|       |		 * If my rwnd is 0, possibly from mbuf depletion as well as
12476|       |		 * space used, tell the peer there is NO space aka onq == bw
12477|       |		 */
12478|      0|		drp->current_onq = htonl(spc);
12479|      0|	}
12480|      0|	drp->reserved = 0;
12481|      0|	datap = drp->data;
12482|      0|	m_copydata(m, iphlen, len, (caddr_t)datap);
12483|       |	TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (12483:2): [Folded, False: 0]
  ------------------
12484|      0|	asoc->ctrl_queue_cnt++;
12485|      0|}
sctp_send_cwr:
12489|  6.40k|{
12490|  6.40k|	struct sctp_association *asoc;
12491|  6.40k|	struct sctp_cwr_chunk *cwr;
12492|  6.40k|	struct sctp_tmit_chunk *chk;
12493|       |
12494|  6.40k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.40k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.40k|	do {                         \
  |  |  |  |  113|  6.40k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.40k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.40k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12495|  6.40k|	if (net == NULL) {
  ------------------
  |  Branch (12495:6): [True: 0, False: 6.40k]
  ------------------
12496|      0|		return;
12497|      0|	}
12498|  6.40k|	asoc = &stcb->asoc;
12499|  16.6k|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (12499:2): [True: 16.6k, False: 439]
  ------------------
12500|  16.6k|		if ((chk->rec.chunk_id.id == SCTP_ECN_CWR) && (net == chk->whoTo)) {
  ------------------
  |  |  467|  16.6k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (12500:7): [True: 6.24k, False: 10.4k]
  |  Branch (12500:49): [True: 5.96k, False: 272]
  ------------------
12501|       |			/* found a previous CWR queued to same destination update it if needed */
12502|  5.96k|			uint32_t ctsn;
12503|  5.96k|			cwr = mtod(chk->data, struct sctp_cwr_chunk *);
  ------------------
  |  |   96|  5.96k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.96k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12504|  5.96k|			ctsn = ntohl(cwr->tsn);
12505|  5.96k|			if (SCTP_TSN_GT(high_tsn, ctsn)) {
  ------------------
  |  |  889|  5.96k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.96k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 5.96k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.96k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 5.96k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12506|      0|				cwr->tsn = htonl(high_tsn);
12507|      0|			}
12508|  5.96k|			if (override & SCTP_CWR_REDUCE_OVERRIDE) {
  ------------------
  |  |  501|  5.96k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
  |  Branch (12508:8): [True: 5.96k, False: 0]
  ------------------
12509|       |				/* Make sure override is carried */
12510|  5.96k|				cwr->ch.chunk_flags |= SCTP_CWR_REDUCE_OVERRIDE;
  ------------------
  |  |  501|  5.96k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
12511|  5.96k|			}
12512|  5.96k|			return;
12513|  5.96k|		}
12514|  16.6k|	}
12515|    439|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    439|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    439|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    298|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    298|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    298|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 298, False: 0]
  |  |  ------------------
  |  |  173|    298|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    298|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    298|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    298|			(_chk)->whoTo = NULL; \
  |  |  175|    298|			(_chk)->holds_key_ref = 0; \
  |  |  176|    298|		} \
  |  |  177|    298|	} else { \
  |  |  178|    141|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    141|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    141|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    141|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    141|		(_chk)->holds_key_ref = 0; \
  |  |  182|    141|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    141|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    141|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    141|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    141|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    141|	} \
  |  |  185|    439|}
  ------------------
  |  Branch (12515:2): [True: 47, False: 94]
  |  Branch (12515:2): [Folded, False: 141]
  |  Branch (12515:2): [True: 298, False: 141]
  ------------------
12516|    439|	if (chk == NULL) {
  ------------------
  |  Branch (12516:6): [True: 0, False: 439]
  ------------------
12517|      0|		return;
12518|      0|	}
12519|    439|	chk->copy_by_ref = 0;
12520|    439|	chk->rec.chunk_id.id = SCTP_ECN_CWR;
  ------------------
  |  |  467|    439|#define SCTP_ECN_CWR		0x0d
  ------------------
12521|    439|	chk->rec.chunk_id.can_take_data = 1;
12522|    439|	chk->flags = 0;
12523|    439|	chk->asoc = asoc;
12524|    439|	chk->send_size = sizeof(struct sctp_cwr_chunk);
12525|    439|	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    439|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|    439|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    439|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
12526|    439|	if (chk->data == NULL) {
  ------------------
  |  Branch (12526:6): [True: 0, False: 439]
  ------------------
12527|      0|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12527:3): [Folded, False: 0]
  ------------------
12528|      0|		return;
12529|      0|	}
12530|    439|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    439|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    439|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12531|    439|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    439|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    439|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12532|    439|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    439|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12533|    439|	chk->snd_count = 0;
12534|    439|	chk->whoTo = net;
12535|    439|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    439|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12536|    439|	cwr = mtod(chk->data, struct sctp_cwr_chunk *);
  ------------------
  |  |   96|    439|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    439|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12537|    439|	cwr->ch.chunk_type = SCTP_ECN_CWR;
  ------------------
  |  |  467|    439|#define SCTP_ECN_CWR		0x0d
  ------------------
12538|    439|	cwr->ch.chunk_flags = override;
12539|    439|	cwr->ch.chunk_length = htons(sizeof(struct sctp_cwr_chunk));
12540|    439|	cwr->tsn = htonl(high_tsn);
12541|       |	TAILQ_INSERT_TAIL(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (12541:2): [Folded, False: 439]
  ------------------
12542|    439|	asoc->ctrl_queue_cnt++;
12543|    439|}
sctp_add_stream_reset_result:
12690|  13.9k|{
12691|  13.9k|	uint16_t len, old_len;
12692|  13.9k|	struct sctp_stream_reset_response *resp;
12693|  13.9k|	struct sctp_chunkhdr *ch;
12694|       |
12695|  13.9k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  13.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  13.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12696|  13.9k|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|  13.9k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12697|       |
12698|       |	/* get to new offset for the param. */
12699|  13.9k|	resp = (struct sctp_stream_reset_response *)((caddr_t)ch + len);
12700|       |	/* now how long will this param be? */
12701|  13.9k|	len = sizeof(struct sctp_stream_reset_response);
12702|  13.9k|	resp->ph.param_type = htons(SCTP_STR_RESET_RESPONSE);
12703|  13.9k|	resp->ph.param_length = htons(len);
12704|  13.9k|	resp->response_seq = htonl(resp_seq);
12705|  13.9k|	resp->result = ntohl(result);
12706|       |
12707|       |	/* now fix the chunk length */
12708|  13.9k|	ch->chunk_length = htons(len + old_len);
12709|  13.9k|	chk->book_size = len + old_len;
12710|  13.9k|	chk->book_size_scale = 0;
12711|  13.9k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  13.9k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12712|  13.9k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  13.9k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  13.9k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12713|  13.9k|	return;
12714|  13.9k|}
sctp_send_deferred_reset_response:
12720|    178|{
12721|    178|	struct sctp_association *asoc;
12722|    178|	struct sctp_tmit_chunk *chk;
12723|    178|	struct sctp_chunkhdr *ch;
12724|       |
12725|    178|	asoc = &stcb->asoc;
12726|       |
12727|       |	/*
12728|       |	 * Reset our last reset action to the new one IP -> response
12729|       |	 * (PERFORMED probably). This assures that if we fail to send, a
12730|       |	 * retran from the peer will get the new response.
12731|       |	 */
12732|    178|	asoc->last_reset_action[0] = response;
12733|    178|	if (asoc->stream_reset_outstanding) {
  ------------------
  |  Branch (12733:6): [True: 43, False: 135]
  ------------------
12734|     43|		return;
12735|     43|	}
12736|    135|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    135|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    135|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|     72|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|     72|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|     72|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 72, False: 0]
  |  |  ------------------
  |  |  173|     72|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|     72|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     72|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|     72|			(_chk)->whoTo = NULL; \
  |  |  175|     72|			(_chk)->holds_key_ref = 0; \
  |  |  176|     72|		} \
  |  |  177|     72|	} else { \
  |  |  178|     63|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|     63|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|     63|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|     63|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|     63|		(_chk)->holds_key_ref = 0; \
  |  |  182|     63|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|     63|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     63|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     63|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|     63|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|     63|	} \
  |  |  185|    135|}
  ------------------
  |  Branch (12736:2): [True: 20, False: 43]
  |  Branch (12736:2): [Folded, False: 63]
  |  Branch (12736:2): [True: 72, False: 63]
  ------------------
12737|    135|	if (chk == NULL) {
  ------------------
  |  Branch (12737:6): [True: 0, False: 135]
  ------------------
12738|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12739|      0|		return;
12740|      0|	}
12741|    135|	chk->copy_by_ref = 0;
12742|    135|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|    135|#define SCTP_STREAM_RESET       0x82
  ------------------
12743|    135|	chk->rec.chunk_id.can_take_data = 0;
12744|    135|	chk->flags = 0;
12745|    135|	chk->asoc = &stcb->asoc;
12746|    135|	chk->book_size = sizeof(struct sctp_chunkhdr);
12747|    135|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|    135|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12748|    135|	chk->book_size_scale = 0;
12749|    135|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|    135|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    135|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    135|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
12750|    135|	if (chk->data == NULL) {
  ------------------
  |  Branch (12750:6): [True: 0, False: 135]
  ------------------
12751|      0|		sctp_free_a_chunk(stcb, chk, SCTP_SO_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12751:3): [Folded, False: 0]
  ------------------
12752|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12753|      0|		return;
12754|      0|	}
12755|    135|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    135|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    135|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12756|       |	/* setup chunk parameters */
12757|    135|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    135|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12758|    135|	chk->snd_count = 0;
12759|    135|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (12759:6): [True: 6, False: 129]
  ------------------
12760|      6|		chk->whoTo = stcb->asoc.alternate;
12761|    129|	} else {
12762|    129|		chk->whoTo = stcb->asoc.primary_destination;
12763|    129|	}
12764|    135|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    135|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    135|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12765|    135|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|    135|#define SCTP_STREAM_RESET       0x82
  ------------------
12766|    135|	ch->chunk_flags = 0;
12767|    135|	ch->chunk_length = htons(chk->book_size);
12768|    135|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    135|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12769|    135|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    135|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    135|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12770|    135|	sctp_add_stream_reset_result(chk, ent->seq, response);
12771|       |	/* insert the chunk for sending */
12772|       |	TAILQ_INSERT_TAIL(&asoc->control_send_queue,
  ------------------
  |  Branch (12772:2): [Folded, False: 135]
  ------------------
12773|    135|			  chk,
12774|    135|			  sctp_next);
12775|    135|	asoc->ctrl_queue_cnt++;
12776|    135|}
sctp_add_stream_reset_result_tsn:
12782|    351|{
12783|    351|	uint16_t len, old_len;
12784|    351|	struct sctp_stream_reset_response_tsn *resp;
12785|    351|	struct sctp_chunkhdr *ch;
12786|       |
12787|    351|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    351|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    351|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12788|    351|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|    351|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12789|       |
12790|       |	/* get to new offset for the param. */
12791|    351|	resp = (struct sctp_stream_reset_response_tsn *)((caddr_t)ch + len);
12792|       |	/* now how long will this param be? */
12793|    351|	len = sizeof(struct sctp_stream_reset_response_tsn);
12794|    351|	resp->ph.param_type = htons(SCTP_STR_RESET_RESPONSE);
12795|    351|	resp->ph.param_length = htons(len);
12796|    351|	resp->response_seq = htonl(resp_seq);
12797|    351|	resp->result = htonl(result);
12798|    351|	resp->senders_next_tsn = htonl(send_una);
12799|    351|	resp->receivers_next_tsn = htonl(recv_next);
12800|       |
12801|       |	/* now fix the chunk length */
12802|    351|	ch->chunk_length = htons(len + old_len);
12803|    351|	chk->book_size = len + old_len;
12804|    351|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|    351|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12805|    351|	chk->book_size_scale = 0;
12806|    351|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    351|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    351|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12807|    351|	return;
12808|    351|}
sctp_send_stream_reset_out_if_possible:
12877|  8.68k|{
12878|  8.68k|	struct sctp_association *asoc;
12879|  8.68k|	struct sctp_tmit_chunk *chk;
12880|  8.68k|	struct sctp_chunkhdr *ch;
12881|  8.68k|	uint32_t seq;
12882|       |
12883|  8.68k|	asoc = &stcb->asoc;
12884|  8.68k|	asoc->trigger_reset = 0;
12885|  8.68k|	if (asoc->stream_reset_outstanding) {
  ------------------
  |  Branch (12885:6): [True: 991, False: 7.69k]
  ------------------
12886|    991|		return (EALREADY);
12887|    991|	}
12888|  7.69k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  7.69k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  7.69k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  5.09k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  5.09k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  5.09k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 5.09k, False: 0]
  |  |  ------------------
  |  |  173|  5.09k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  5.09k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.09k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  5.09k|			(_chk)->whoTo = NULL; \
  |  |  175|  5.09k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  5.09k|		} \
  |  |  177|  5.09k|	} else { \
  |  |  178|  2.60k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.60k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.60k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.60k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.60k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.60k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.60k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.60k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.60k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.60k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.60k|	} \
  |  |  185|  7.69k|}
  ------------------
  |  Branch (12888:2): [True: 100, False: 2.50k]
  |  Branch (12888:2): [Folded, False: 2.60k]
  |  Branch (12888:2): [True: 5.09k, False: 2.60k]
  ------------------
12889|  7.69k|	if (chk == NULL) {
  ------------------
  |  Branch (12889:6): [True: 0, False: 7.69k]
  ------------------
12890|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12891|      0|		return (ENOMEM);
12892|      0|	}
12893|  7.69k|	chk->copy_by_ref = 0;
12894|  7.69k|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  7.69k|#define SCTP_STREAM_RESET       0x82
  ------------------
12895|  7.69k|	chk->rec.chunk_id.can_take_data = 0;
12896|  7.69k|	chk->flags = 0;
12897|  7.69k|	chk->asoc = &stcb->asoc;
12898|  7.69k|	chk->book_size = sizeof(struct sctp_chunkhdr);
12899|  7.69k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  7.69k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12900|  7.69k|	chk->book_size_scale = 0;
12901|  7.69k|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  7.69k|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  7.69k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  7.69k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
12902|  7.69k|	if (chk->data == NULL) {
  ------------------
  |  Branch (12902:6): [True: 0, False: 7.69k]
  ------------------
12903|      0|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (12903:3): [Folded, False: 0]
  ------------------
12904|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12905|      0|		return (ENOMEM);
12906|      0|	}
12907|  7.69k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  7.69k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  7.69k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12908|       |
12909|       |	/* setup chunk parameters */
12910|  7.69k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  7.69k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12911|  7.69k|	chk->snd_count = 0;
12912|  7.69k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (12912:6): [True: 350, False: 7.34k]
  ------------------
12913|    350|		chk->whoTo = stcb->asoc.alternate;
12914|  7.34k|	} else {
12915|  7.34k|		chk->whoTo = stcb->asoc.primary_destination;
12916|  7.34k|	}
12917|  7.69k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  7.69k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  7.69k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12918|  7.69k|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  7.69k|#define SCTP_STREAM_RESET       0x82
  ------------------
12919|  7.69k|	ch->chunk_flags = 0;
12920|  7.69k|	ch->chunk_length = htons(chk->book_size);
12921|  7.69k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  7.69k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12922|  7.69k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  7.69k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.69k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12923|  7.69k|	seq = stcb->asoc.str_reset_seq_out;
12924|  7.69k|	if (sctp_add_stream_reset_out(stcb, chk, seq, (stcb->asoc.str_reset_seq_in - 1), (stcb->asoc.sending_seq - 1))) {
  ------------------
  |  Branch (12924:6): [True: 122, False: 7.57k]
  ------------------
12925|    122|		seq++;
12926|    122|		asoc->stream_reset_outstanding++;
12927|  7.57k|	} else {
12928|  7.57k|		m_freem(chk->data);
12929|  7.57k|		chk->data = NULL;
12930|  7.57k|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|  7.57k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  7.57k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 7.57k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  7.57k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 7.57k, False: 0]
  |  |  ------------------
  |  |  149|  7.57k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  7.57k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  7.57k|	do {                         \
  |  |  |  |  |  |  113|  7.57k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.57k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  7.57k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.57k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  7.57k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 7.57k, False: 0]
  |  |  ------------------
  |  |  151|  7.57k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|  7.57k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|  7.57k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 7.57k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|  7.57k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|  7.57k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|  7.57k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 7.57k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|  7.57k|	} \
  |  |  |  |  245|  7.57k|}
  |  |  ------------------
  |  |  152|  7.57k|			(_chk)->whoTo = NULL; \
  |  |  153|  7.57k|		} \
  |  |  154|  7.57k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  7.57k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 7.57k]
  |  |  ------------------
  |  |  155|  7.57k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  7.57k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|  7.57k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 7.57k]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|  7.57k|		} else { \
  |  |  159|  7.57k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  7.57k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  7.57k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  7.57k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  7.57k|		} \
  |  |  163|  7.57k|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|  7.57k|}
  ------------------
  |  Branch (12930:3): [Folded, False: 7.57k]
  ------------------
12931|  7.57k|		return (ENOENT);
12932|  7.57k|	}
12933|    122|	asoc->str_reset = chk;
12934|       |	/* insert the chunk for sending */
12935|    122|	TAILQ_INSERT_TAIL(&asoc->control_send_queue,
  ------------------
  |  Branch (12935:2): [Folded, False: 122]
  ------------------
12936|    122|			  chk,
12937|    122|			  sctp_next);
12938|    122|	asoc->ctrl_queue_cnt++;
12939|       |
12940|    122|	if (stcb->asoc.send_sack) {
  ------------------
  |  Branch (12940:6): [True: 98, False: 24]
  ------------------
12941|     98|		sctp_send_sack(stcb, so_locked);
12942|     98|	}
12943|    122|	sctp_timer_start(SCTP_TIMER_TYPE_STRRESET, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  544|    122|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
12944|    122|	return (0);
12945|  7.69k|}
sctp_send_str_reset_req:
12955|  2.30k|{
12956|  2.30k|	struct sctp_association *asoc;
12957|  2.30k|	struct sctp_tmit_chunk *chk;
12958|  2.30k|	struct sctp_chunkhdr *ch;
12959|  2.30k|	int can_send_out_req=0;
12960|  2.30k|	uint32_t seq;
12961|       |
12962|  2.30k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  2.30k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.30k|	do {                         \
  |  |  |  |  113|  2.30k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.30k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.30k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.30k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12963|       |
12964|  2.30k|	asoc = &stcb->asoc;
12965|  2.30k|	if (asoc->stream_reset_outstanding) {
  ------------------
  |  Branch (12965:6): [True: 0, False: 2.30k]
  ------------------
12966|       |		/*-
12967|       |		 * Already one pending, must get ACK back to clear the flag.
12968|       |		 */
12969|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EBUSY);
12970|      0|		return (EBUSY);
12971|      0|	}
12972|  2.30k|	if ((send_in_req == 0) && (send_tsn_req == 0) &&
  ------------------
  |  Branch (12972:6): [True: 110, False: 2.19k]
  |  Branch (12972:28): [True: 110, False: 0]
  ------------------
12973|    110|	    (add_stream == 0)) {
  ------------------
  |  Branch (12973:6): [True: 0, False: 110]
  ------------------
12974|       |		/* nothing to do */
12975|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EINVAL);
12976|      0|		return (EINVAL);
12977|      0|	}
12978|  2.30k|	if (send_tsn_req && send_in_req) {
  ------------------
  |  Branch (12978:6): [True: 0, False: 2.30k]
  |  Branch (12978:22): [True: 0, False: 0]
  ------------------
12979|       |		/* error, can't do that */
12980|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EINVAL);
12981|      0|		return (EINVAL);
12982|  2.30k|	} else if (send_in_req) {
  ------------------
  |  Branch (12982:13): [True: 2.19k, False: 110]
  ------------------
12983|  2.19k|		can_send_out_req = 1;
12984|  2.19k|	}
12985|  2.30k|	if (number_entries > (MCLBYTES -
  ------------------
  |  |   51|  2.30k|#define MCLBYTES 2048
  ------------------
  |  Branch (12985:6): [True: 0, False: 2.30k]
  ------------------
12986|  2.30k|	                      SCTP_MIN_OVERHEAD -
  ------------------
  |  |  564|  2.30k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  2.30k|                           sizeof(struct sctphdr))
  ------------------
12987|  2.30k|	                      sizeof(struct sctp_chunkhdr) -
12988|  2.30k|	                      sizeof(struct sctp_stream_reset_out_request)) /
12989|  2.30k|	                     sizeof(uint16_t)) {
12990|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12991|      0|		return (ENOMEM);
12992|      0|	}
12993|  2.30k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  2.30k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  2.30k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  1.43k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  1.43k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  1.43k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 1.43k, False: 0]
  |  |  ------------------
  |  |  173|  1.43k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  1.43k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.43k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  1.43k|			(_chk)->whoTo = NULL; \
  |  |  175|  1.43k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  1.43k|		} \
  |  |  177|  1.43k|	} else { \
  |  |  178|    876|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    876|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    876|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    876|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    876|		(_chk)->holds_key_ref = 0; \
  |  |  182|    876|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    876|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    876|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    876|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    876|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    876|	} \
  |  |  185|  2.30k|}
  ------------------
  |  Branch (12993:2): [True: 14, False: 862]
  |  Branch (12993:2): [Folded, False: 876]
  |  Branch (12993:2): [True: 1.43k, False: 876]
  ------------------
12994|  2.30k|	if (chk == NULL) {
  ------------------
  |  Branch (12994:6): [True: 0, False: 2.30k]
  ------------------
12995|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12996|      0|		return (ENOMEM);
12997|      0|	}
12998|  2.30k|	chk->copy_by_ref = 0;
12999|  2.30k|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  2.30k|#define SCTP_STREAM_RESET       0x82
  ------------------
13000|  2.30k|	chk->rec.chunk_id.can_take_data = 0;
13001|  2.30k|	chk->flags = 0;
13002|  2.30k|	chk->asoc = &stcb->asoc;
13003|  2.30k|	chk->book_size = sizeof(struct sctp_chunkhdr);
13004|  2.30k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  2.30k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
13005|  2.30k|	chk->book_size_scale = 0;
13006|  2.30k|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  2.30k|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.30k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.30k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
13007|  2.30k|	if (chk->data == NULL) {
  ------------------
  |  Branch (13007:6): [True: 0, False: 2.30k]
  ------------------
13008|      0|		sctp_free_a_chunk(stcb, chk, SCTP_SO_LOCKED);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (13008:3): [Folded, False: 0]
  ------------------
13009|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
13010|      0|		return (ENOMEM);
13011|      0|	}
13012|  2.30k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  2.30k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  2.30k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
13013|       |
13014|       |	/* setup chunk parameters */
13015|  2.30k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  2.30k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
13016|  2.30k|	chk->snd_count = 0;
13017|  2.30k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (13017:6): [True: 14, False: 2.29k]
  ------------------
13018|     14|		chk->whoTo = stcb->asoc.alternate;
13019|  2.29k|	} else {
13020|  2.29k|		chk->whoTo = stcb->asoc.primary_destination;
13021|  2.29k|	}
13022|  2.30k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  2.30k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13023|  2.30k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  2.30k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.30k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
13024|  2.30k|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  2.30k|#define SCTP_STREAM_RESET       0x82
  ------------------
13025|  2.30k|	ch->chunk_flags = 0;
13026|  2.30k|	ch->chunk_length = htons(chk->book_size);
13027|  2.30k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  2.30k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.30k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
13028|       |
13029|  2.30k|	seq = stcb->asoc.str_reset_seq_out;
13030|  2.30k|	if (can_send_out_req) {
  ------------------
  |  Branch (13030:6): [True: 2.19k, False: 110]
  ------------------
13031|  2.19k|		int ret;
13032|       |
13033|  2.19k|		ret = sctp_add_stream_reset_out(stcb, chk, seq, (stcb->asoc.str_reset_seq_in - 1), (stcb->asoc.sending_seq - 1));
13034|  2.19k|		if (ret) {
  ------------------
  |  Branch (13034:7): [True: 2.19k, False: 0]
  ------------------
13035|  2.19k|			seq++;
13036|  2.19k|			asoc->stream_reset_outstanding++;
13037|  2.19k|		}
13038|  2.19k|	}
13039|  2.30k|	if ((add_stream & 1) &&
  ------------------
  |  Branch (13039:6): [True: 110, False: 2.19k]
  ------------------
13040|    110|	    ((stcb->asoc.strm_realoutsize - stcb->asoc.streamoutcnt) < adding_o)) {
  ------------------
  |  Branch (13040:6): [True: 44, False: 66]
  ------------------
13041|       |		/* Need to allocate more */
13042|     44|		struct sctp_stream_out *oldstream;
13043|     44|		struct sctp_stream_queue_pending *sp, *nsp;
13044|     44|		int i;
13045|       |#if defined(SCTP_DETAILED_STR_STATS)
13046|       |		int j;
13047|       |#endif
13048|       |
13049|     44|		oldstream = stcb->asoc.strmout;
13050|       |		/* get some more */
13051|     44|		SCTP_MALLOC(stcb->asoc.strmout, struct sctp_stream_out *,
  ------------------
  |  |  675|     44|	do {								\
  |  |  676|     44|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|     44|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|     44|    do {								\
  |  |  |  |  198|     44|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     88|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 44]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|     44|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 44]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|     44|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 44]
  |  |  ------------------
  ------------------
13052|     44|			    (stcb->asoc.streamoutcnt + adding_o) * sizeof(struct sctp_stream_out),
13053|     44|			    SCTP_M_STRMO);
13054|     44|		if (stcb->asoc.strmout == NULL) {
  ------------------
  |  Branch (13054:7): [True: 0, False: 44]
  ------------------
13055|      0|			uint8_t x;
13056|      0|			stcb->asoc.strmout = oldstream;
13057|       |			/* Turn off the bit */
13058|      0|			x = add_stream & 0xfe;
13059|      0|			add_stream = x;
13060|      0|			goto skip_stuff;
13061|      0|		}
13062|       |		/* Ok now we proceed with copying the old out stuff and
13063|       |		 * initializing the new stuff.
13064|       |		 */
13065|     44|		stcb->asoc.ss_functions.sctp_ss_clear(stcb, &stcb->asoc, false);
13066|  11.3k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (13066:15): [True: 11.3k, False: 44]
  ------------------
13067|  11.3k|			TAILQ_INIT(&stcb->asoc.strmout[i].outqueue);
  ------------------
  |  Branch (13067:4): [Folded, False: 11.3k]
  ------------------
13068|       |			/* FIX ME FIX ME */
13069|       |			/* This should be a SS_COPY operation FIX ME STREAM SCHEDULER EXPERT */
13070|  11.3k|			stcb->asoc.ss_functions.sctp_ss_init_stream(stcb, &stcb->asoc.strmout[i], &oldstream[i]);
13071|  11.3k|			stcb->asoc.strmout[i].chunks_on_queues = oldstream[i].chunks_on_queues;
13072|       |#if defined(SCTP_DETAILED_STR_STATS)
13073|       |			for (j = 0; j < SCTP_PR_SCTP_MAX + 1; j++) {
13074|       |				stcb->asoc.strmout[i].abandoned_sent[j] = oldstream[i].abandoned_sent[j];
13075|       |				stcb->asoc.strmout[i].abandoned_unsent[j] = oldstream[i].abandoned_unsent[j];
13076|       |			}
13077|       |#else
13078|  11.3k|			stcb->asoc.strmout[i].abandoned_sent[0] = oldstream[i].abandoned_sent[0];
13079|  11.3k|			stcb->asoc.strmout[i].abandoned_unsent[0] = oldstream[i].abandoned_unsent[0];
13080|  11.3k|#endif
13081|  11.3k|			stcb->asoc.strmout[i].next_mid_ordered = oldstream[i].next_mid_ordered;
13082|  11.3k|			stcb->asoc.strmout[i].next_mid_unordered = oldstream[i].next_mid_unordered;
13083|  11.3k|			stcb->asoc.strmout[i].last_msg_incomplete = oldstream[i].last_msg_incomplete;
13084|  11.3k|			stcb->asoc.strmout[i].sid = i;
13085|  11.3k|			stcb->asoc.strmout[i].state = oldstream[i].state;
13086|       |			/* now anything on those queues? */
13087|  11.3k|			TAILQ_FOREACH_SAFE(sp, &oldstream[i].outqueue, next, nsp) {
  ------------------
  |  | 1129|  11.3k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.3k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 8, False: 11.3k]
  |  |  |  Branch (1130:24): [True: 8, False: 0]
  |  |  ------------------
  |  | 1131|  11.3k|              (var) = (tvar))
  ------------------
13088|      8|				TAILQ_REMOVE(&oldstream[i].outqueue, sp, next);
  ------------------
  |  Branch (13088:5): [True: 0, False: 8]
  |  Branch (13088:5): [Folded, False: 8]
  ------------------
13089|      8|				TAILQ_INSERT_TAIL(&stcb->asoc.strmout[i].outqueue, sp, next);
  ------------------
  |  Branch (13089:5): [Folded, False: 8]
  ------------------
13090|      8|			}
13091|  11.3k|		}
13092|       |		/* now the new streams */
13093|     44|		stcb->asoc.ss_functions.sctp_ss_init(stcb, &stcb->asoc);
13094|  1.68M|		for (i = stcb->asoc.streamoutcnt; i < (stcb->asoc.streamoutcnt + adding_o); i++) {
  ------------------
  |  Branch (13094:37): [True: 1.68M, False: 44]
  ------------------
13095|  1.68M|			TAILQ_INIT(&stcb->asoc.strmout[i].outqueue);
  ------------------
  |  Branch (13095:4): [Folded, False: 1.68M]
  ------------------
13096|  1.68M|			stcb->asoc.strmout[i].chunks_on_queues = 0;
13097|       |#if defined(SCTP_DETAILED_STR_STATS)
13098|       |			for (j = 0; j < SCTP_PR_SCTP_MAX + 1; j++) {
13099|       |				stcb->asoc.strmout[i].abandoned_sent[j] = 0;
13100|       |				stcb->asoc.strmout[i].abandoned_unsent[j] = 0;
13101|       |			}
13102|       |#else
13103|  1.68M|			stcb->asoc.strmout[i].abandoned_sent[0] = 0;
13104|  1.68M|			stcb->asoc.strmout[i].abandoned_unsent[0] = 0;
13105|  1.68M|#endif
13106|  1.68M|			stcb->asoc.strmout[i].next_mid_ordered = 0;
13107|  1.68M|			stcb->asoc.strmout[i].next_mid_unordered = 0;
13108|  1.68M|			stcb->asoc.strmout[i].sid = i;
13109|  1.68M|			stcb->asoc.strmout[i].last_msg_incomplete = 0;
13110|  1.68M|			stcb->asoc.ss_functions.sctp_ss_init_stream(stcb, &stcb->asoc.strmout[i], NULL);
13111|  1.68M|			stcb->asoc.strmout[i].state = SCTP_STREAM_CLOSED;
  ------------------
  |  |  668|  1.68M|#define SCTP_STREAM_CLOSED           0x00
  ------------------
13112|  1.68M|		}
13113|     44|		stcb->asoc.strm_realoutsize = stcb->asoc.streamoutcnt + adding_o;
13114|     44|		SCTP_FREE(oldstream, SCTP_M_STRMO);
  ------------------
  |  |  679|     44|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|     44|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
13115|     44|	}
13116|  2.30k|skip_stuff:
13117|  2.30k|	if ((add_stream & 1) && (adding_o > 0)) {
  ------------------
  |  Branch (13117:6): [True: 110, False: 2.19k]
  |  Branch (13117:26): [True: 44, False: 66]
  ------------------
13118|     44|		asoc->strm_pending_add_size = adding_o;
13119|     44|		asoc->peer_req_out = peer_asked;
13120|     44|		sctp_add_an_out_stream(chk, seq, adding_o);
13121|     44|		seq++;
13122|     44|		asoc->stream_reset_outstanding++;
13123|     44|	}
13124|  2.30k|	if ((add_stream & 2) && (adding_i > 0)) {
  ------------------
  |  Branch (13124:6): [True: 0, False: 2.30k]
  |  Branch (13124:26): [True: 0, False: 0]
  ------------------
13125|      0|		sctp_add_an_in_stream(chk, seq, adding_i);
13126|      0|		seq++;
13127|      0|		asoc->stream_reset_outstanding++;
13128|      0|	}
13129|  2.30k|	if (send_in_req) {
  ------------------
  |  Branch (13129:6): [True: 2.19k, False: 110]
  ------------------
13130|  2.19k|		sctp_add_stream_reset_in(chk, number_entries, list, seq);
13131|  2.19k|		seq++;
13132|  2.19k|		asoc->stream_reset_outstanding++;
13133|  2.19k|	}
13134|  2.30k|	if (send_tsn_req) {
  ------------------
  |  Branch (13134:6): [True: 0, False: 2.30k]
  ------------------
13135|      0|		sctp_add_stream_reset_tsn(chk, seq);
13136|      0|		asoc->stream_reset_outstanding++;
13137|      0|	}
13138|  2.30k|	asoc->str_reset = chk;
13139|       |	/* insert the chunk for sending */
13140|  2.30k|	TAILQ_INSERT_TAIL(&asoc->control_send_queue,
  ------------------
  |  Branch (13140:2): [Folded, False: 2.30k]
  ------------------
13141|  2.30k|			  chk,
13142|  2.30k|			  sctp_next);
13143|  2.30k|	asoc->ctrl_queue_cnt++;
13144|  2.30k|	if (stcb->asoc.send_sack) {
  ------------------
  |  Branch (13144:6): [True: 2.28k, False: 24]
  ------------------
13145|  2.28k|		sctp_send_sack(stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  2.28k|#define SCTP_SO_LOCKED		1
  ------------------
13146|  2.28k|	}
13147|  2.30k|	sctp_timer_start(SCTP_TIMER_TYPE_STRRESET, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  544|  2.30k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
13148|  2.30k|	return (0);
13149|  2.30k|}
sctp_send_abort:
13158|    798|{
13159|       |	/* Don't respond to an ABORT with an ABORT. */
13160|    798|	if (sctp_is_there_an_abort_here(m, iphlen, &vtag)) {
  ------------------
  |  Branch (13160:6): [True: 0, False: 798]
  ------------------
13161|      0|		if (cause)
  ------------------
  |  Branch (13161:7): [True: 0, False: 0]
  ------------------
13162|      0|			sctp_m_freem(cause);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
13163|      0|		return;
13164|      0|	}
13165|    798|	sctp_send_resp_msg(src, dst, sh, vtag, SCTP_ABORT_ASSOCIATION, cause,
  ------------------
  |  |  460|    798|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
13166|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13167|       |	                   mflowtype, mflowid, fibnum,
13168|       |#endif
13169|    798|	                   vrf_id, port);
13170|    798|	return;
13171|    798|}
sctp_lower_sosend:
13554|  6.17k|{
13555|  6.17k|	struct sctp_nonpad_sndrcvinfo sndrcvninfo_buf;
13556|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13557|       |	struct epoch_tracker et;
13558|       |#endif
13559|  6.17k|	struct timeval now;
13560|  6.17k|	struct sctp_block_entry be;
13561|  6.17k|	struct sctp_inpcb *inp;
13562|  6.17k|	struct sctp_tcb *stcb = NULL;
13563|  6.17k|	struct sctp_nets *net;
13564|  6.17k|	struct sctp_association *asoc;
13565|  6.17k|	struct sctp_inpcb *t_inp;
13566|  6.17k|	struct sctp_nonpad_sndrcvinfo *sndrcvninfo;
13567|  6.17k|	ssize_t sndlen = 0, max_len, local_add_more;
13568|  6.17k|	ssize_t local_soresv = 0;
13569|  6.17k|	sctp_assoc_t sinfo_assoc_id;
13570|  6.17k|	int user_marks_eor;
13571|  6.17k|	int nagle_applies = 0;
13572|  6.17k|	int error;
13573|  6.17k|	int queue_only = 0, queue_only_for_init = 0;
13574|  6.17k|	int un_sent;
13575|  6.17k|	int now_filled = 0;
13576|  6.17k|	unsigned int inqueue_bytes = 0;
13577|  6.17k|	uint16_t port;
13578|  6.17k|	uint16_t sinfo_flags;
13579|  6.17k|	uint16_t sinfo_stream;
13580|  6.17k|	bool create_lock_applied = false;
13581|  6.17k|	bool free_cnt_applied = false;
13582|  6.17k|	bool some_on_control;
13583|  6.17k|	bool got_all_of_the_send = false;
13584|  6.17k|	bool non_blocking = false;
13585|       |
13586|  6.17k|	error = 0;
13587|  6.17k|	net = NULL;
13588|  6.17k|	stcb = NULL;
13589|       |
13590|       |#if defined(__APPLE__) && !defined(__Userspace__)
13591|       |	sctp_lock_assert(so);
13592|       |#endif
13593|  6.17k|	if ((uio == NULL) && (top == NULL)) {
  ------------------
  |  Branch (13593:6): [True: 0, False: 6.17k]
  |  Branch (13593:23): [True: 0, False: 0]
  ------------------
13594|      0|		error = EINVAL;
13595|      0|		goto out_unlocked;
13596|      0|	}
13597|  6.17k|	if (addr != NULL) {
  ------------------
  |  Branch (13597:6): [True: 0, False: 6.17k]
  ------------------
13598|      0|		union sctp_sockstore *raddr = (union sctp_sockstore *)addr;
13599|       |
13600|      0|		switch (raddr->sa.sa_family) {
13601|      0|#ifdef INET
13602|      0|		case AF_INET:
  ------------------
  |  Branch (13602:3): [True: 0, False: 0]
  ------------------
13603|       |#ifdef HAVE_SIN_LEN
13604|       |			if (raddr->sin.sin_len != sizeof(struct sockaddr_in)) {
13605|       |				error = EINVAL;
13606|       |				goto out_unlocked;
13607|       |			}
13608|       |#endif
13609|      0|			port = raddr->sin.sin_port;
13610|      0|			break;
13611|      0|#endif
13612|      0|#ifdef INET6
13613|      0|		case AF_INET6:
  ------------------
  |  Branch (13613:3): [True: 0, False: 0]
  ------------------
13614|       |#ifdef HAVE_SIN6_LEN
13615|       |			if (raddr->sin6.sin6_len != sizeof(struct sockaddr_in6)) {
13616|       |				error = EINVAL;
13617|       |				goto out_unlocked;
13618|       |			}
13619|       |#endif
13620|      0|			port = raddr->sin6.sin6_port;
13621|      0|			break;
13622|      0|#endif
13623|      0|#if defined(__Userspace__)
13624|      0|		case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (13624:3): [True: 0, False: 0]
  ------------------
13625|       |#ifdef HAVE_SCONN_LEN
13626|       |			if (raddr->sconn.sconn_len != sizeof(struct sockaddr_conn)) {
13627|       |				error = EINVAL;
13628|       |				goto out_unlocked;
13629|       |			}
13630|       |#endif
13631|      0|			port = raddr->sconn.sconn_port;
13632|      0|			break;
13633|      0|#endif
13634|      0|		default:
  ------------------
  |  Branch (13634:3): [True: 0, False: 0]
  ------------------
13635|      0|			error = EAFNOSUPPORT;
13636|      0|			goto out_unlocked;
13637|      0|		}
13638|  6.17k|	} else {
13639|  6.17k|		port = 0;
13640|  6.17k|	}
13641|  6.17k|	if (uio != NULL) {
  ------------------
  |  Branch (13641:6): [True: 6.17k, False: 0]
  ------------------
13642|       |#if defined(__APPLE__) && !defined(__Userspace__)
13643|       |#if defined(APPLE_LEOPARD)
13644|       |		if (uio->uio_resid < 0) {
13645|       |#else
13646|       |		if (uio_resid(uio) < 0) {
13647|       |#endif
13648|       |#else
13649|  6.17k|		if (uio->uio_resid < 0) {
  ------------------
  |  Branch (13649:7): [True: 0, False: 6.17k]
  ------------------
13650|      0|#endif
13651|      0|			error = EINVAL;
13652|      0|			goto out_unlocked;
13653|      0|		}
13654|       |#if defined(__APPLE__) && !defined(__Userspace__)
13655|       |#if defined(APPLE_LEOPARD)
13656|       |		sndlen = uio->uio_resid;
13657|       |#else
13658|       |		sndlen = uio_resid(uio);
13659|       |#endif
13660|       |#else
13661|  6.17k|		sndlen = uio->uio_resid;
13662|  6.17k|#endif
13663|  6.17k|	} else {
13664|      0|		sndlen = SCTP_HEADER_LEN(top);
  ------------------
  |  |  921|      0|#define SCTP_HEADER_LEN(m) ((m)->m_pkthdr.len)
  |  |  ------------------
  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  ------------------
13665|      0|	}
13666|  6.17k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "Send called addr:%p send length %zd\n",
13667|  6.17k|	        (void *)addr, sndlen);
13668|       |
13669|  6.17k|	t_inp = inp = (struct sctp_inpcb *)so->so_pcb;
13670|  6.17k|	if (inp == NULL) {
  ------------------
  |  Branch (13670:6): [True: 0, False: 6.17k]
  ------------------
13671|      0|		error = EINVAL;
13672|      0|		goto out_unlocked;
13673|      0|	}
13674|  6.17k|	user_marks_eor = sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR);
  ------------------
  |  |   52|  6.17k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
13675|  6.17k|	if ((uio == NULL) && (user_marks_eor != 0)) {
  ------------------
  |  Branch (13675:6): [True: 0, False: 6.17k]
  |  Branch (13675:23): [True: 0, False: 0]
  ------------------
13676|       |		/*-
13677|       |		 * We do not support eeor mode for
13678|       |		 * sending with mbuf chains (like sendfile).
13679|       |		 */
13680|      0|		error = EINVAL;
13681|      0|		goto out_unlocked;
13682|      0|	}
13683|  6.17k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  6.17k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (13683:6): [True: 6.17k, False: 0]
  ------------------
13684|  6.17k|	    SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|  6.17k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|  6.17k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  |  |  |  Branch (1152:32): [True: 0, False: 6.17k]
  |  |  ------------------
  ------------------
13685|       |		/* The listener can NOT send. */
13686|      0|		error = EINVAL;
13687|      0|		goto out_unlocked;
13688|      0|	}
13689|  6.17k|	atomic_add_int(&inp->total_sends, 1);
  ------------------
  |  |   94|  6.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13690|       |
13691|  6.17k|	if (srcv != NULL) {
  ------------------
  |  Branch (13691:6): [True: 0, False: 6.17k]
  ------------------
13692|      0|		sndrcvninfo = (struct sctp_nonpad_sndrcvinfo *)srcv;
13693|      0|		sinfo_assoc_id = sndrcvninfo->sinfo_assoc_id;
13694|      0|		sinfo_flags = sndrcvninfo->sinfo_flags;
13695|      0|		if (INVALID_SINFO_FLAG(sinfo_flags) ||
  ------------------
  |  |  265|      0|#define INVALID_SINFO_FLAG(x) (((x) & 0xfffffff0 \
  |  |  ------------------
  |  |  |  Branch (265:31): [True: 0, False: 0]
  |  |  ------------------
  |  |  266|      0|                                    & ~(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED |\
  |  |  ------------------
  |  |  |  |  257|      0|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  |  |  ------------------
  |  |                                                   & ~(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED |\
  |  |  ------------------
  |  |  |  |  258|      0|#define SCTP_ABORT            0x0200 /* Send an ABORT to peer */
  |  |  ------------------
  |  |                                                   & ~(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED |\
  |  |  ------------------
  |  |  |  |  259|      0|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  |  |  ------------------
  |  |  267|      0|				        SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR |\
  |  |  ------------------
  |  |  |  |  260|      0|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  |  |  ------------------
  |  |               				        SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR |\
  |  |  ------------------
  |  |  |  |  261|      0|#define SCTP_SENDALL          0x1000 /* Send this on all associations */
  |  |  ------------------
  |  |               				        SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR |\
  |  |  ------------------
  |  |  |  |  262|      0|#define SCTP_EOR              0x2000 /* end of message signal */
  |  |  ------------------
  |  |  268|      0|					SCTP_SACK_IMMEDIATELY)) != 0)
  |  |  ------------------
  |  |  |  |  263|      0|#define SCTP_SACK_IMMEDIATELY 0x4000 /* Set I-Bit */
  |  |  ------------------
  ------------------
13696|      0|		    PR_SCTP_INVALID_POLICY(sinfo_flags)) {
  ------------------
  |  |  286|      0|#define PR_SCTP_INVALID_POLICY(x) (PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX)
  |  |  ------------------
  |  |  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_INVALID_POLICY(x) (PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX)
  |  |  ------------------
  |  |  |  |  277|      0|#define SCTP_PR_SCTP_MAX  SCTP_PR_SCTP_RTX
  |  |  |  |  ------------------
  |  |  |  |  |  |  276|      0|#define SCTP_PR_SCTP_RTX  0x0003 /* Number of retransmissions based PR-SCTP */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (286:35): [True: 0, False: 0]
  |  |  ------------------
  ------------------
13697|      0|			error = EINVAL;
13698|      0|			goto out_unlocked;
13699|      0|		}
13700|      0|		if (sinfo_flags != 0) {
  ------------------
  |  Branch (13700:7): [True: 0, False: 0]
  ------------------
13701|      0|			SCTP_STAT_INCR(sctps_sends_with_flags);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13702|      0|		}
13703|  6.17k|	} else {
13704|  6.17k|		sndrcvninfo = NULL;
13705|  6.17k|		sinfo_flags = inp->def_send.sinfo_flags;
13706|  6.17k|		sinfo_assoc_id = inp->def_send.sinfo_assoc_id;
13707|  6.17k|	}
13708|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13709|       |	if (flags & MSG_EOR) {
13710|       |		sinfo_flags |= SCTP_EOR;
13711|       |	}
13712|       |	if (flags & MSG_EOF) {
13713|       |		sinfo_flags |= SCTP_EOF;
13714|       |	}
13715|       |#endif
13716|  6.17k|	if ((sinfo_flags & SCTP_ADDR_OVER) && (addr == NULL)) {
  ------------------
  |  |  260|  6.17k|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  ------------------
  |  Branch (13716:6): [True: 0, False: 6.17k]
  |  Branch (13716:40): [True: 0, False: 0]
  ------------------
13717|      0|		error = EINVAL;
13718|      0|		goto out_unlocked;
13719|      0|	}
13720|  6.17k|	SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|  6.17k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13721|  6.17k|	if ((sinfo_flags & SCTP_SENDALL) &&
  ------------------
  |  |  261|  6.17k|#define SCTP_SENDALL          0x1000 /* Send this on all associations */
  ------------------
  |  Branch (13721:6): [True: 0, False: 6.17k]
  ------------------
13722|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE)) {
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (13722:6): [True: 0, False: 0]
  ------------------
13723|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13724|      0|		error = sctp_sendall(inp, uio, top, sndrcvninfo);
13725|      0|		top = NULL;
13726|      0|		goto out_unlocked;
13727|      0|	}
13728|       |	/* Now we must find the association. */
13729|  6.17k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) ||
  ------------------
  |  |  539|  6.17k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (13729:6): [True: 6.17k, False: 0]
  ------------------
13730|  6.17k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (13730:6): [True: 0, False: 0]
  ------------------
13731|  6.17k|		stcb = LIST_FIRST(&inp->sctp_asoc_list);
13732|  6.17k|		if (stcb != NULL) {
  ------------------
  |  Branch (13732:7): [True: 6.17k, False: 0]
  ------------------
13733|  6.17k|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  6.17k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13734|  6.17k|		}
13735|  6.17k|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|  6.17k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13736|  6.17k|	} else if (sinfo_assoc_id > SCTP_ALL_ASSOC) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (13736:13): [True: 0, False: 0]
  ------------------
13737|      0|		stcb = sctp_findasoc_ep_asocid_locked(inp, sinfo_assoc_id, 1);
13738|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13739|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (13739:7): [True: 0, False: 0]
  ------------------
13740|      0|			SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13741|      0|		}
13742|      0|	} else if (addr != NULL) {
  ------------------
  |  Branch (13742:13): [True: 0, False: 0]
  ------------------
13743|       |		/*-
13744|       |		 * Since we did not use findep we must
13745|       |		 * increment it, and if we don't find a tcb
13746|       |		 * decrement it.
13747|       |		 */
13748|      0|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
13749|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13750|      0|		stcb = sctp_findassociation_ep_addr(&t_inp, addr, &net, NULL, NULL);
13751|      0|		if (stcb == NULL) {
  ------------------
  |  Branch (13751:7): [True: 0, False: 0]
  ------------------
13752|      0|			SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13753|      0|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
13754|      0|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13755|      0|		} else {
13756|      0|			SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13757|      0|		}
13758|      0|	} else {
13759|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13760|      0|	}
13761|       |
13762|  6.17k|#ifdef INVARIANTS
13763|  6.17k|	if (stcb != NULL) {
  ------------------
  |  Branch (13763:6): [True: 6.17k, False: 0]
  ------------------
13764|  6.17k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.17k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13765|  6.17k|	}
13766|  6.17k|#endif
13767|       |
13768|  6.17k|	if ((stcb == NULL) && (addr != NULL)) {
  ------------------
  |  Branch (13768:6): [True: 0, False: 6.17k]
  |  Branch (13768:24): [True: 0, False: 0]
  ------------------
13769|       |		/* Possible implicit send? */
13770|      0|		SCTP_ASOC_CREATE_LOCK(inp);
  ------------------
  |  |  427|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13771|      0|		create_lock_applied = true;
13772|      0|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (13772:7): [True: 0, False: 0]
  ------------------
13773|      0|		    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|      0|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (13773:7): [True: 0, False: 0]
  ------------------
13774|      0|			error = EINVAL;
13775|      0|			goto out_unlocked;
13776|      0|		}
13777|      0|		if (((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) == 0) &&
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (13777:7): [True: 0, False: 0]
  ------------------
13778|      0|		    (addr->sa_family == AF_INET6)) {
  ------------------
  |  Branch (13778:7): [True: 0, False: 0]
  ------------------
13779|      0|			error = EINVAL;
13780|      0|			goto out_unlocked;
13781|      0|		}
13782|      0|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13783|      0|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
13784|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13785|       |		/* With the lock applied look again */
13786|      0|		stcb = sctp_findassociation_ep_addr(&t_inp, addr, &net, NULL, NULL);
13787|      0|#if defined(INET) || defined(INET6)
13788|      0|		if ((stcb == NULL) && (control != NULL) && (port > 0)) {
  ------------------
  |  Branch (13788:7): [True: 0, False: 0]
  |  Branch (13788:25): [True: 0, False: 0]
  |  Branch (13788:46): [True: 0, False: 0]
  ------------------
13789|      0|			stcb = sctp_findassociation_cmsgs(&t_inp, port, control, &net, &error);
13790|      0|		}
13791|      0|#endif
13792|      0|		if (stcb == NULL) {
  ------------------
  |  Branch (13792:7): [True: 0, False: 0]
  ------------------
13793|      0|			SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13794|      0|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
13795|      0|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13796|      0|		} else {
13797|      0|			SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13798|      0|			SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13799|      0|			create_lock_applied = false;
13800|      0|		}
13801|      0|		if (error != 0) {
  ------------------
  |  Branch (13801:7): [True: 0, False: 0]
  ------------------
13802|      0|			goto out_unlocked;
13803|      0|		}
13804|      0|		if (t_inp != inp) {
  ------------------
  |  Branch (13804:7): [True: 0, False: 0]
  ------------------
13805|      0|			error = ENOTCONN;
13806|      0|			goto out_unlocked;
13807|      0|		}
13808|      0|	}
13809|  6.17k|	if (stcb == NULL) {
  ------------------
  |  Branch (13809:6): [True: 0, False: 6.17k]
  ------------------
13810|      0|		if (addr == NULL) {
  ------------------
  |  Branch (13810:7): [True: 0, False: 0]
  ------------------
13811|      0|			error = ENOENT;
13812|      0|			goto out_unlocked;
13813|      0|		} else {
13814|       |			/* We must go ahead and start the INIT process */
13815|      0|			uint32_t vrf_id;
13816|       |
13817|      0|			if ((sinfo_flags & SCTP_ABORT) ||
  ------------------
  |  |  258|      0|#define SCTP_ABORT            0x0200 /* Send an ABORT to peer */
  ------------------
  |  Branch (13817:8): [True: 0, False: 0]
  ------------------
13818|      0|			    ((sinfo_flags & SCTP_EOF) && (sndlen == 0))) {
  ------------------
  |  |  257|      0|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (13818:9): [True: 0, False: 0]
  |  Branch (13818:37): [True: 0, False: 0]
  ------------------
13819|       |				/*-
13820|       |				 * User asks to abort a non-existent assoc,
13821|       |				 * or EOF a non-existent assoc with no data
13822|       |				 */
13823|      0|				error = ENOENT;
13824|      0|				goto out_unlocked;
13825|      0|			}
13826|       |			/* get an asoc/stcb struct */
13827|      0|			vrf_id = inp->def_vrf_id;
13828|      0|			KASSERT(create_lock_applied, ("create_lock_applied is false"));
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
13829|      0|			stcb = sctp_aloc_assoc_connected(inp, addr, &error, 0, 0, vrf_id,
13830|      0|			                                 inp->sctp_ep.pre_open_stream_count,
13831|      0|			                                 inp->sctp_ep.port,
13832|       |#if !defined(__Userspace__)
13833|       |			                                 p,
13834|       |#else
13835|      0|			                                 (struct proc *)NULL,
13836|      0|#endif
13837|      0|			                                 SCTP_INITIALIZE_AUTH_PARAMS);
  ------------------
  |  |  767|      0|#define SCTP_INITIALIZE_AUTH_PARAMS		1
  ------------------
13838|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (13838:8): [True: 0, False: 0]
  ------------------
13839|       |				/* error is setup for us in the call. */
13840|      0|				KASSERT(error != 0, ("error is 0 although stcb is NULL"));
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
13841|      0|				goto out_unlocked;
13842|      0|			}
13843|      0|			SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13844|      0|			SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13845|      0|			create_lock_applied = false;
13846|       |			/* Turn on queue only flag to prevent data from being sent */
13847|      0|			queue_only = 1;
13848|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
13849|      0|			(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
13850|      0|			if (control != NULL) {
  ------------------
  |  Branch (13850:8): [True: 0, False: 0]
  ------------------
13851|      0|				if (sctp_process_cmsgs_for_init(stcb, control, &error)) {
  ------------------
  |  Branch (13851:9): [True: 0, False: 0]
  ------------------
13852|      0|					sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
13853|      0|					                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_6);
  ------------------
  |  |  763|      0|#define SCTP_FROM_SCTP_OUTPUT       0x90000000
  ------------------
              					                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_6);
  ------------------
  |  |  774|      0|#define SCTP_LOC_6  0x00000006
  ------------------
13854|      0|					stcb = NULL;
13855|      0|					KASSERT(error != 0,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
13856|      0|					    ("error is 0 although sctp_process_cmsgs_for_init() indicated an error"));
13857|      0|					goto out_unlocked;
13858|      0|				}
13859|      0|			}
13860|       |			/* out with the INIT */
13861|      0|			queue_only_for_init = 1;
13862|       |			/*-
13863|       |			 * we may want to dig in after this call and adjust the MTU
13864|       |			 * value. It defaulted to 1500 (constant) but the ro
13865|       |			 * structure may now have an update and thus we may need to
13866|       |			 * change it BEFORE we append the message.
13867|       |			 */
13868|      0|		}
13869|      0|	}
13870|       |
13871|  6.17k|	KASSERT(!create_lock_applied, ("create_lock_applied is true"));
  ------------------
  |  |  112|  6.17k|	do {                         \
  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.17k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  ------------------
  ------------------
13872|  6.17k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  6.17k|	do {                         \
  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.17k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  ------------------
  ------------------
13873|  6.17k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.17k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13874|       |
13875|  6.17k|	asoc = &stcb->asoc;
13876|  6.17k|	if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|  6.17k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (13876:6): [True: 0, False: 6.17k]
  ------------------
13877|  6.17k|	    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|  6.17k|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (13877:6): [True: 0, False: 6.17k]
  ------------------
13878|      0|		if (asoc->state & SCTP_STATE_WAS_ABORTED) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (13878:7): [True: 0, False: 0]
  ------------------
13879|       |			/* XXX: Could also be ECONNABORTED, not enough info. */
13880|      0|			error = ECONNRESET;
13881|      0|		} else {
13882|      0|			error = ENOTCONN;
13883|      0|		}
13884|      0|		goto out_unlocked;
13885|      0|	}
13886|  6.17k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  6.17k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  6.17k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  6.17k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (13886:6): [True: 1.38k, False: 4.79k]
  ------------------
13887|  4.79k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|  4.79k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  4.79k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|  4.79k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (13887:6): [True: 1.54k, False: 3.24k]
  ------------------
13888|  2.92k|		queue_only = 1;
13889|  2.92k|	}
13890|       |	/* Keep the stcb from being freed under our feet. */
13891|  6.17k|	atomic_add_int(&asoc->refcnt, 1);
  ------------------
  |  |   94|  6.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13892|  6.17k|	free_cnt_applied = true;
13893|  6.17k|	if (sndrcvninfo == NULL) {
  ------------------
  |  Branch (13893:6): [True: 6.17k, False: 0]
  ------------------
13894|       |		/* Use a local copy to have a consistent view. */
13895|  6.17k|		sndrcvninfo_buf = asoc->def_send;
13896|  6.17k|		sndrcvninfo = &sndrcvninfo_buf;
13897|  6.17k|		sinfo_flags = sndrcvninfo->sinfo_flags;
13898|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13899|       |		if (flags & MSG_EOR) {
13900|       |			sinfo_flags |= SCTP_EOR;
13901|       |		}
13902|       |		if (flags & MSG_EOF) {
13903|       |			sinfo_flags |= SCTP_EOF;
13904|       |		}
13905|       |#endif
13906|  6.17k|	}
13907|       |	/* Are we aborting? */
13908|  6.17k|	if (sinfo_flags & SCTP_ABORT) {
  ------------------
  |  |  258|  6.17k|#define SCTP_ABORT            0x0200 /* Send an ABORT to peer */
  ------------------
  |  Branch (13908:6): [True: 0, False: 6.17k]
  ------------------
13909|      0|		struct mbuf *mm;
13910|      0|		struct sctp_paramhdr *ph;
13911|      0|		ssize_t tot_demand, tot_out = 0, max_out;
13912|       |
13913|      0|		SCTP_STAT_INCR(sctps_sends_with_abort);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13914|      0|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|      0|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (13914:7): [True: 0, False: 0]
  ------------------
13915|      0|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|      0|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (13915:7): [True: 0, False: 0]
  ------------------
13916|       |			/* It has to be up before we abort. */
13917|      0|			error = EINVAL;
13918|      0|			goto out_unlocked;
13919|      0|		}
13920|       |		/* How big is the user initiated abort? */
13921|      0|		if (top != NULL) {
  ------------------
  |  Branch (13921:7): [True: 0, False: 0]
  ------------------
13922|      0|			struct mbuf *cntm;
13923|       |
13924|      0|			if (sndlen != 0) {
  ------------------
  |  Branch (13924:8): [True: 0, False: 0]
  ------------------
13925|      0|				for (cntm = top; cntm; cntm = SCTP_BUF_NEXT(cntm)) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (13925:22): [True: 0, False: 0]
  ------------------
13926|      0|					tot_out += SCTP_BUF_LEN(cntm);
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
13927|      0|				}
13928|      0|			}
13929|      0|			mm = sctp_get_mbuf_for_msg(sizeof(struct sctp_paramhdr), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			mm = sctp_get_mbuf_for_msg(sizeof(struct sctp_paramhdr), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
13930|      0|		} else {
13931|       |			/* Must fit in a MTU */
13932|      0|			tot_out = sndlen;
13933|      0|			tot_demand = (tot_out + sizeof(struct sctp_paramhdr));
13934|      0|			if (tot_demand > SCTP_DEFAULT_ADD_MORE) {
  ------------------
  |  |  837|      0|#define SCTP_DEFAULT_ADD_MORE 1452
  ------------------
  |  Branch (13934:8): [True: 0, False: 0]
  ------------------
13935|      0|				error = EMSGSIZE;
13936|      0|				goto out_unlocked;
13937|      0|			}
13938|      0|			mm = sctp_get_mbuf_for_msg((unsigned int)tot_demand, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			mm = sctp_get_mbuf_for_msg((unsigned int)tot_demand, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
13939|      0|		}
13940|      0|		if (mm == NULL) {
  ------------------
  |  Branch (13940:7): [True: 0, False: 0]
  ------------------
13941|      0|			error = ENOMEM;
13942|      0|			goto out_unlocked;
13943|      0|		}
13944|      0|		max_out = asoc->smallest_mtu - sizeof(struct sctp_paramhdr);
13945|      0|		max_out -= sizeof(struct sctp_abort_msg);
13946|      0|		if (tot_out > max_out) {
  ------------------
  |  Branch (13946:7): [True: 0, False: 0]
  ------------------
13947|      0|			tot_out = max_out;
13948|      0|		}
13949|      0|		ph = mtod(mm, struct sctp_paramhdr *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
13950|      0|		ph->param_type = htons(SCTP_CAUSE_USER_INITIATED_ABT);
13951|      0|		ph->param_length = htons((uint16_t)(sizeof(struct sctp_paramhdr) + tot_out));
13952|      0|		ph++;
13953|      0|		SCTP_BUF_LEN(mm) = (int)(tot_out + sizeof(struct sctp_paramhdr));
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
13954|      0|		if (top == NULL) {
  ------------------
  |  Branch (13954:7): [True: 0, False: 0]
  ------------------
13955|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13956|       |#if defined(__APPLE__) && !defined(__Userspace__)
13957|       |			SCTP_SOCKET_UNLOCK(so, 0);
13958|       |#endif
13959|      0|			error = uiomove((caddr_t)ph, (int)tot_out, uio);
13960|       |#if defined(__APPLE__) && !defined(__Userspace__)
13961|       |			SCTP_SOCKET_LOCK(so, 0);
13962|       |#endif
13963|      0|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13964|      0|			if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (13964:8): [True: 0, False: 0]
  ------------------
13965|      0|			    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (13965:8): [True: 0, False: 0]
  ------------------
13966|      0|				sctp_m_freem(mm);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
13967|      0|				if (asoc->state & SCTP_STATE_WAS_ABORTED) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (13967:9): [True: 0, False: 0]
  ------------------
13968|       |					/* XXX: Could also be ECONNABORTED, not enough info. */
13969|      0|					error = ECONNRESET;
13970|      0|				} else {
13971|      0|					error = ENOTCONN;
13972|      0|				}
13973|      0|				goto out_unlocked;
13974|      0|			}
13975|      0|			if (error != 0) {
  ------------------
  |  Branch (13975:8): [True: 0, False: 0]
  ------------------
13976|       |				/*-
13977|       |				 * Here if we can't get his data we
13978|       |				 * still abort we just don't get to
13979|       |				 * send the users note :-0
13980|       |				 */
13981|      0|				sctp_m_freem(mm);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
13982|      0|				mm = NULL;
13983|      0|				error = 0;
13984|      0|			}
13985|      0|		} else {
13986|      0|			if (sndlen != 0) {
  ------------------
  |  Branch (13986:8): [True: 0, False: 0]
  ------------------
13987|      0|				SCTP_BUF_NEXT(mm) = top;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
13988|      0|			}
13989|      0|		}
13990|      0|		atomic_subtract_int(&asoc->refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
13991|      0|		free_cnt_applied = false;
13992|       |		/* release this lock, otherwise we hang on ourselves */
13993|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13994|       |		NET_EPOCH_ENTER(et);
13995|       |#endif
13996|      0|		sctp_abort_an_association(stcb->sctp_ep, stcb, mm, false, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
13997|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13998|       |		NET_EPOCH_EXIT(et);
13999|       |#endif
14000|      0|		stcb = NULL;
14001|       |		/* In this case top is already chained to mm
14002|       |		 * avoid double free, since we free it below if
14003|       |		 * top != NULL and driver would free it after sending
14004|       |		 * the packet out
14005|       |		 */
14006|      0|		if (sndlen != 0) {
  ------------------
  |  Branch (14006:7): [True: 0, False: 0]
  ------------------
14007|      0|			top = NULL;
14008|      0|		}
14009|      0|		goto out_unlocked;
14010|      0|	}
14011|       |
14012|  6.17k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  6.17k|	do {                         \
  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.17k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  ------------------
  ------------------
14013|  6.17k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.17k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14014|  6.17k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  6.17k|	do {                         \
  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.17k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  ------------------
  ------------------
14015|  6.17k|	        ("Association about to be freed"));
14016|  6.17k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  6.17k|	do {                         \
  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.17k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  ------------------
  ------------------
14017|  6.17k|	        ("Association was aborted"));
14018|       |
14019|  6.17k|	if (sinfo_flags & SCTP_ADDR_OVER) {
  ------------------
  |  |  260|  6.17k|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  ------------------
  |  Branch (14019:6): [True: 0, False: 6.17k]
  ------------------
14020|      0|		if (addr != NULL) {
  ------------------
  |  Branch (14020:7): [True: 0, False: 0]
  ------------------
14021|      0|			net = sctp_findnet(stcb, addr);
14022|      0|		} else {
14023|      0|			net = NULL;
14024|      0|		}
14025|      0|		if ((net == NULL) ||
  ------------------
  |  Branch (14025:7): [True: 0, False: 0]
  ------------------
14026|      0|		    ((port != 0) && (port != stcb->rport))) {
  ------------------
  |  Branch (14026:8): [True: 0, False: 0]
  |  Branch (14026:23): [True: 0, False: 0]
  ------------------
14027|      0|			error = EINVAL;
14028|      0|			goto out_unlocked;
14029|      0|		}
14030|  6.17k|	} else {
14031|  6.17k|		if (asoc->alternate != NULL) {
  ------------------
  |  Branch (14031:7): [True: 0, False: 6.17k]
  ------------------
14032|      0|			net = asoc->alternate;
14033|  6.17k|		} else {
14034|  6.17k|			net = asoc->primary_destination;
14035|  6.17k|		}
14036|  6.17k|	}
14037|  6.17k|	if (sndlen == 0) {
  ------------------
  |  Branch (14037:6): [True: 0, False: 6.17k]
  ------------------
14038|      0|		if (sinfo_flags & SCTP_EOF) {
  ------------------
  |  |  257|      0|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (14038:7): [True: 0, False: 0]
  ------------------
14039|      0|			got_all_of_the_send = true;
14040|      0|			goto dataless_eof;
14041|      0|		} else {
14042|      0|			error = EINVAL;
14043|      0|			goto out_unlocked;
14044|      0|		}
14045|      0|	}
14046|  6.17k|	if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_NO_FRAGMENT)) {
  ------------------
  |  |   52|  6.17k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 6.17k]
  |  |  ------------------
  ------------------
14047|      0|		if (sndlen > (ssize_t)asoc->smallest_mtu) {
  ------------------
  |  Branch (14047:7): [True: 0, False: 0]
  ------------------
14048|      0|			error = EMSGSIZE;
14049|      0|			goto out_unlocked;
14050|      0|		}
14051|      0|	}
14052|  6.17k|	sinfo_stream = sndrcvninfo->sinfo_stream;
14053|       |	/* Is the stream no. valid? */
14054|  6.17k|	if (sinfo_stream >= asoc->streamoutcnt) {
  ------------------
  |  Branch (14054:6): [True: 0, False: 6.17k]
  ------------------
14055|       |		/* Invalid stream number */
14056|      0|		error = EINVAL;
14057|      0|		goto out_unlocked;
14058|      0|	}
14059|  6.17k|	if ((asoc->strmout[sinfo_stream].state != SCTP_STREAM_OPEN) &&
  ------------------
  |  |  670|  6.17k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (14059:6): [True: 2.12k, False: 4.04k]
  ------------------
14060|  2.12k|	    (asoc->strmout[sinfo_stream].state != SCTP_STREAM_OPENING)) {
  ------------------
  |  |  669|  2.12k|#define SCTP_STREAM_OPENING          0x01
  ------------------
  |  Branch (14060:6): [True: 749, False: 1.38k]
  ------------------
14061|       |		/*
14062|       |		 * Can't queue any data while stream reset is underway.
14063|       |		 */
14064|    749|		if (asoc->strmout[sinfo_stream].state > SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|    749|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (14064:7): [True: 749, False: 0]
  ------------------
14065|    749|			error = EAGAIN;
14066|    749|		} else {
14067|      0|			error = EINVAL;
14068|      0|		}
14069|    749|		goto out_unlocked;
14070|    749|	}
14071|  5.42k|	atomic_add_int(&stcb->total_sends, 1);
  ------------------
  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14072|  5.42k|#if defined(__Userspace__)
14073|  5.42k|	if (inp->recv_callback != NULL) {
  ------------------
  |  Branch (14073:6): [True: 0, False: 5.42k]
  ------------------
14074|      0|		non_blocking = true;
14075|      0|	}
14076|  5.42k|#endif
14077|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14078|       |	if (SCTP_SO_IS_NBIO(so) || (flags & (MSG_NBIO | MSG_DONTWAIT)) != 0) {
14079|       |#else
14080|  5.42k|	if (SCTP_SO_IS_NBIO(so)) {
  ------------------
  |  |  956|  5.42k|#define SCTP_SO_IS_NBIO(so)	((so)->so_state & SS_NBIO)
  |  |  ------------------
  |  |  |  |  343|  5.42k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  |  |  ------------------
  |  |  |  Branch (956:29): [True: 5.42k, False: 0]
  |  |  ------------------
  ------------------
14081|  5.42k|#endif
14082|  5.42k|		non_blocking = true;
14083|  5.42k|	}
14084|  5.42k|	if (non_blocking) {
  ------------------
  |  Branch (14084:6): [True: 5.42k, False: 0]
  ------------------
14085|  5.42k|		ssize_t amount;
14086|       |
14087|  5.42k|		inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|  5.42k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.54k, False: 880]
  |  |  ------------------
  |  |  135|  5.42k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.42k|                                        sizeof(struct sctp_data_chunk))
  ------------------
14088|  5.42k|		if (user_marks_eor == 0) {
  ------------------
  |  Branch (14088:7): [True: 5.42k, False: 0]
  ------------------
14089|  5.42k|			amount = sndlen;
14090|  5.42k|		} else {
14091|      0|			amount = 1;
14092|      0|		}
14093|  5.42k|		if ((SCTP_SB_LIMIT_SND(so) < (amount + inqueue_bytes + asoc->sb_send_resv)) ||
  ------------------
  |  |  984|  5.42k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14093:7): [True: 0, False: 5.42k]
  ------------------
14094|  5.42k|		    (asoc->chunks_on_out_queue >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue))) {
  ------------------
  |  |  590|  5.42k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (14094:7): [True: 0, False: 5.42k]
  ------------------
14095|      0|			if ((sndlen > (ssize_t)SCTP_SB_LIMIT_SND(so)) &&
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14095:8): [True: 0, False: 0]
  ------------------
14096|      0|			    (user_marks_eor == 0)) {
  ------------------
  |  Branch (14096:8): [True: 0, False: 0]
  ------------------
14097|      0|				error = EMSGSIZE;
14098|      0|			} else {
14099|      0|				error = EWOULDBLOCK;
14100|      0|			}
14101|      0|			goto out_unlocked;
14102|      0|		}
14103|  5.42k|	}
14104|  5.42k|	atomic_add_int(&asoc->sb_send_resv, (int)sndlen);
  ------------------
  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14105|  5.42k|	local_soresv = sndlen;
14106|       |
14107|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14108|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14109|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14110|  5.42k|	        ("Association about to be freed"));
14111|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14112|  5.42k|	        ("Association was aborted"));
14113|       |
14114|       |	/* Ok, we will attempt a msgsnd :> */
14115|       |#if !(defined(_WIN32) || defined(__Userspace__))
14116|       |	if (p != NULL) {
14117|       |#if defined(__FreeBSD__)
14118|       |		p->td_ru.ru_msgsnd++;
14119|       |#else
14120|       |		p->p_stats->p_ru.ru_msgsnd++;
14121|       |#endif
14122|       |	}
14123|       |#endif
14124|       |	/* Calculate the maximum we can send */
14125|  5.42k|	inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|  5.42k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.54k, False: 880]
  |  |  ------------------
  |  |  135|  5.42k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.42k|                                        sizeof(struct sctp_data_chunk))
  ------------------
14126|  5.42k|	if (SCTP_SB_LIMIT_SND(so) > inqueue_bytes) {
  ------------------
  |  |  984|  5.42k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14126:6): [True: 5.42k, False: 0]
  ------------------
14127|  5.42k|		max_len = SCTP_SB_LIMIT_SND(so) - inqueue_bytes;
  ------------------
  |  |  984|  5.42k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
14128|  5.42k|	} else {
14129|      0|		max_len = 0;
14130|      0|	}
14131|       |	/* Unless E_EOR mode is on, we must make a send FIT in one call. */
14132|  5.42k|	if ((user_marks_eor == 0) &&
  ------------------
  |  Branch (14132:6): [True: 5.42k, False: 0]
  ------------------
14133|  5.42k|	    (sndlen > (ssize_t)SCTP_SB_LIMIT_SND(stcb->sctp_socket))) {
  ------------------
  |  |  984|  5.42k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14133:6): [True: 0, False: 5.42k]
  ------------------
14134|       |		/* It will NEVER fit. */
14135|      0|		error = EMSGSIZE;
14136|      0|		goto out_unlocked;
14137|      0|	}
14138|  5.42k|	if (user_marks_eor != 0) {
  ------------------
  |  Branch (14138:6): [True: 0, False: 5.42k]
  ------------------
14139|      0|		local_add_more = (ssize_t)min(SCTP_SB_LIMIT_SND(so), SCTP_BASE_SYSCTL(sctp_add_more_threshold));
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
14140|  5.42k|	} else {
14141|       |		/*-
14142|       |		 * For non-eeor the whole message must fit in
14143|       |		 * the socket send buffer.
14144|       |		 */
14145|  5.42k|		local_add_more = sndlen;
14146|  5.42k|	}
14147|  5.42k|	if (non_blocking) {
  ------------------
  |  Branch (14147:6): [True: 5.42k, False: 0]
  ------------------
14148|  5.42k|		goto skip_preblock;
14149|  5.42k|	}
14150|      0|	if (((max_len <= local_add_more) && ((ssize_t)SCTP_SB_LIMIT_SND(so) >= local_add_more)) ||
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14150:7): [True: 0, False: 0]
  |  Branch (14150:38): [True: 0, False: 0]
  ------------------
14151|      0|	    (max_len == 0) ||
  ------------------
  |  Branch (14151:6): [True: 0, False: 0]
  ------------------
14152|      0|	    ((asoc->chunks_on_out_queue + asoc->stream_queue_cnt) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue))) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (14152:6): [True: 0, False: 0]
  ------------------
14153|       |		/* No room right now! */
14154|      0|		inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
14155|      0|		SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14156|      0|		while ((SCTP_SB_LIMIT_SND(so) < (inqueue_bytes + local_add_more)) ||
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14156:10): [True: 0, False: 0]
  ------------------
14157|      0|		       ((asoc->stream_queue_cnt + asoc->chunks_on_out_queue) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue))) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (14157:10): [True: 0, False: 0]
  ------------------
14158|      0|			SCTPDBG(SCTP_DEBUG_OUTPUT1,"pre_block limit:%u <(inq:%d + %zd) || (%d+%d > %d)\n",
14159|      0|			        (unsigned int)SCTP_SB_LIMIT_SND(so),
14160|      0|			        inqueue_bytes,
14161|      0|			        local_add_more,
14162|      0|			        asoc->stream_queue_cnt,
14163|      0|			        asoc->chunks_on_out_queue,
14164|      0|			        SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue));
14165|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|      0|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14165:8): [True: 0, False: 0]
  ------------------
14166|      0|				sctp_log_block(SCTP_BLOCK_LOG_INTO_BLKA, asoc, sndlen);
  ------------------
  |  |  185|      0|#define SCTP_BLOCK_LOG_INTO_BLKA    81
  ------------------
14167|      0|			}
14168|      0|			be.error = 0;
14169|      0|#if !(defined(_WIN32) && !defined(__Userspace__))
14170|      0|			stcb->block_entry = &be;
14171|      0|#endif
14172|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14173|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14174|       |			error = sbwait(so, SO_SND);
14175|       |#else
14176|      0|			error = sbwait(&so->so_snd);
14177|      0|#endif
14178|      0|			if (error == 0) {
  ------------------
  |  Branch (14178:8): [True: 0, False: 0]
  ------------------
14179|      0|				if (so->so_error != 0) {
  ------------------
  |  Branch (14179:9): [True: 0, False: 0]
  ------------------
14180|      0|					error = so->so_error;
14181|      0|				}
14182|      0|				if (be.error != 0) {
  ------------------
  |  Branch (14182:9): [True: 0, False: 0]
  ------------------
14183|      0|					error = be.error;
14184|      0|				}
14185|      0|			}
14186|      0|			SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14187|      0|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14188|      0|			stcb->block_entry = NULL;
14189|      0|			if (error != 0) {
  ------------------
  |  Branch (14189:8): [True: 0, False: 0]
  ------------------
14190|      0|				goto out_unlocked;
14191|      0|			}
14192|      0|			if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (14192:8): [True: 0, False: 0]
  ------------------
14193|      0|			    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14193:8): [True: 0, False: 0]
  ------------------
14194|      0|				if (asoc->state & SCTP_STATE_WAS_ABORTED) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14194:9): [True: 0, False: 0]
  ------------------
14195|       |					/* XXX: Could also be ECONNABORTED, not enough info. */
14196|      0|					error = ECONNRESET;
14197|      0|				} else {
14198|      0|					error = ENOTCONN;
14199|      0|				}
14200|      0|				goto out_unlocked;
14201|      0|			}
14202|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|      0|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14202:8): [True: 0, False: 0]
  ------------------
14203|      0|				sctp_log_block(SCTP_BLOCK_LOG_OUTOF_BLK,
  ------------------
  |  |  113|      0|#define SCTP_BLOCK_LOG_OUTOF_BLK 8
  ------------------
14204|      0|				               asoc, asoc->total_output_queue_size);
14205|      0|			}
14206|      0|			inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
14207|      0|			SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14208|      0|		}
14209|      0|		if (SCTP_SB_LIMIT_SND(so) > inqueue_bytes) {
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14209:7): [True: 0, False: 0]
  ------------------
14210|      0|			max_len = SCTP_SB_LIMIT_SND(so) - inqueue_bytes;
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
14211|      0|		} else {
14212|      0|			max_len = 0;
14213|      0|		}
14214|      0|		SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14215|      0|	}
14216|       |
14217|  5.42k|skip_preblock:
14218|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14219|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14220|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14221|  5.42k|	        ("Association about to be freed"));
14222|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14223|  5.42k|	        ("Association was aborted"));
14224|       |
14225|       |#if defined(__APPLE__) && !defined(__Userspace__)
14226|       |	error = sblock(&so->so_snd, SBLOCKWAIT(flags));
14227|       |	if (error != 0) {
14228|       |		goto out_unlocked;
14229|       |	}
14230|       |#endif
14231|       |	/* sndlen covers for mbuf case
14232|       |	 * uio_resid covers for the non-mbuf case
14233|       |	 * NOTE: uio will be null when top/mbuf is passed
14234|       |	 */
14235|  5.42k|	if (top == NULL) {
  ------------------
  |  Branch (14235:6): [True: 5.42k, False: 0]
  ------------------
14236|  5.42k|		struct sctp_stream_queue_pending *sp;
14237|  5.42k|		struct sctp_stream_out *strm;
14238|  5.42k|		uint32_t sndout;
14239|       |
14240|  5.42k|		if ((asoc->stream_locked) &&
  ------------------
  |  Branch (14240:7): [True: 0, False: 5.42k]
  ------------------
14241|      0|		    (asoc->stream_locked_on != sinfo_stream)) {
  ------------------
  |  Branch (14241:7): [True: 0, False: 0]
  ------------------
14242|      0|			error = EINVAL;
14243|      0|			goto out;
14244|      0|		}
14245|  5.42k|		strm = &asoc->strmout[sinfo_stream];
14246|  5.42k|		if (strm->last_msg_incomplete == 0) {
  ------------------
  |  Branch (14246:7): [True: 5.42k, False: 0]
  ------------------
14247|  5.42k|		do_a_copy_in:
14248|  5.42k|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  5.42k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14249|  5.42k|			sp = sctp_copy_it_in(stcb, asoc, sndrcvninfo, uio, net, max_len, user_marks_eor, &error);
14250|  5.42k|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  5.42k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14251|  5.42k|			if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|  5.42k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (14251:8): [True: 0, False: 5.42k]
  ------------------
14252|  5.42k|			    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|  5.42k|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14252:8): [True: 0, False: 5.42k]
  ------------------
14253|      0|				if (asoc->state & SCTP_STATE_WAS_ABORTED) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14253:9): [True: 0, False: 0]
  ------------------
14254|       |					/* XXX: Could also be ECONNABORTED, not enough info. */
14255|      0|					error = ECONNRESET;
14256|      0|				} else {
14257|      0|					error = ENOTCONN;
14258|      0|				}
14259|      0|				goto out;
14260|      0|			}
14261|  5.42k|			if (error != 0) {
  ------------------
  |  Branch (14261:8): [True: 0, False: 5.42k]
  ------------------
14262|      0|				goto out;
14263|      0|			}
14264|       |			/*
14265|       |			 * Reject the sending of a new user message, if the
14266|       |			 * association is about to be shut down.
14267|       |			 */
14268|  5.42k|			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) ||
  ------------------
  |  |  472|  5.42k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.42k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) ||
  ------------------
  |  |  460|  5.42k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (14268:8): [True: 0, False: 5.42k]
  ------------------
14269|  5.42k|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  472|  5.42k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.42k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  461|  5.42k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (14269:8): [True: 0, False: 5.42k]
  ------------------
14270|  5.42k|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  472|  5.42k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.42k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  462|  5.42k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (14270:8): [True: 0, False: 5.42k]
  ------------------
14271|  5.42k|			    (asoc->state & SCTP_STATE_SHUTDOWN_PENDING)) {
  ------------------
  |  |  463|  5.42k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (14271:8): [True: 0, False: 5.42k]
  ------------------
14272|      0|				if (sp->data != 0) {
  ------------------
  |  Branch (14272:9): [True: 0, False: 0]
  ------------------
14273|      0|					sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14274|      0|					sp->data = NULL;
14275|      0|					sp->tail_mbuf = NULL;
14276|      0|					sp->length = 0;
14277|      0|				}
14278|      0|				if (sp->net != NULL) {
  ------------------
  |  Branch (14278:9): [True: 0, False: 0]
  ------------------
14279|      0|					sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
14280|      0|					sp->net = NULL;
14281|      0|				}
14282|      0|				sctp_free_a_strmoq(stcb, sp, SCTP_SO_LOCKED);
  ------------------
  |  |  125|      0|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|      0|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  131|      0|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|}
  ------------------
14283|      0|				error = EPIPE;
14284|      0|				goto out_unlocked;
14285|      0|			}
14286|       |			/* The out streams might be reallocated. */
14287|  5.42k|			strm = &asoc->strmout[sinfo_stream];
14288|  5.42k|			if (sp->msg_is_complete) {
  ------------------
  |  Branch (14288:8): [True: 5.42k, False: 0]
  ------------------
14289|  5.42k|				strm->last_msg_incomplete = 0;
14290|  5.42k|				asoc->stream_locked = 0;
14291|  5.42k|			} else {
14292|       |				/* Just got locked to this guy in
14293|       |				 * case of an interrupt.
14294|       |				 */
14295|      0|				strm->last_msg_incomplete = 1;
14296|      0|				if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (14296:9): [True: 0, False: 0]
  ------------------
14297|      0|					asoc->stream_locked = 1;
14298|      0|					asoc->stream_locked_on = sinfo_stream;
14299|      0|				}
14300|      0|				sp->sender_all_done = 0;
14301|      0|			}
14302|  5.42k|			sctp_snd_sb_alloc(stcb, sp->length);
  ------------------
  |  |  285|  5.42k|#define sctp_snd_sb_alloc(stcb, sz)  \
  |  |  286|  5.42k|do { \
  |  |  287|  5.42k|	atomic_add_int(&stcb->asoc.total_output_queue_size,sz); \
  |  |  ------------------
  |  |  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  288|  5.42k|	if ((stcb->sctp_socket != NULL) && \
  |  |  ------------------
  |  |  |  Branch (288:6): [True: 5.42k, False: 0]
  |  |  ------------------
  |  |  289|  5.42k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|  5.42k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (289:7): [True: 5.42k, False: 0]
  |  |  ------------------
  |  |  290|  5.42k|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (290:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  291|  5.42k|		SCTP_SB_INCR(&stcb->sctp_socket->so_snd, sz); \
  |  |  ------------------
  |  |  |  |  969|  5.42k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|  5.42k|{						\
  |  |  |  |  971|  5.42k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|  5.42k|}
  |  |  ------------------
  |  |  292|  5.42k|	} \
  |  |  293|  5.42k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14303|  5.42k|			atomic_add_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14304|  5.42k|			if (sinfo_flags & SCTP_UNORDERED) {
  ------------------
  |  |  259|  5.42k|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
  |  Branch (14304:8): [True: 0, False: 5.42k]
  ------------------
14305|      0|				SCTP_STAT_INCR(sctps_sends_with_unord);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14306|      0|			}
14307|  5.42k|			sp->processing = 1;
14308|  5.42k|			TAILQ_INSERT_TAIL(&strm->outqueue, sp, next);
  ------------------
  |  Branch (14308:4): [Folded, False: 5.42k]
  ------------------
14309|  5.42k|			asoc->ss_functions.sctp_ss_add_to_stream(stcb, asoc, strm, sp);
14310|  5.42k|		} else {
14311|      0|			sp = TAILQ_LAST(&strm->outqueue, sctp_streamhead);
14312|      0|			if (sp == NULL) {
  ------------------
  |  Branch (14312:8): [True: 0, False: 0]
  ------------------
14313|       |				/* ???? Huh ??? last msg is gone */
14314|      0|#ifdef INVARIANTS
14315|      0|				panic("Warning: Last msg marked incomplete, yet nothing left?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
14316|       |#else
14317|       |				SCTP_PRINTF("Warning: Last msg marked incomplete, yet nothing left?\n");
14318|       |				strm->last_msg_incomplete = 0;
14319|       |#endif
14320|      0|				goto do_a_copy_in;
14321|      0|			}
14322|      0|			if (sp->processing != 0) {
  ------------------
  |  Branch (14322:8): [True: 0, False: 0]
  ------------------
14323|      0|				error = EINVAL;
14324|      0|				goto out;
14325|      0|			} else {
14326|      0|				sp->processing = 1;
14327|      0|			}
14328|      0|		}
14329|       |
14330|  5.42k|		KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14331|  5.42k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14332|  5.42k|		KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14333|  5.42k|		        ("Association about to be freed"));
14334|  5.42k|		KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14335|  5.42k|		        ("Association was aborted"));
14336|       |
14337|       |#if defined(__APPLE__) && !defined(__Userspace__)
14338|       |#if defined(APPLE_LEOPARD)
14339|       |		while (uio->uio_resid > 0) {
14340|       |#else
14341|       |		while (uio_resid(uio) > 0) {
14342|       |#endif
14343|       |#else
14344|  5.42k|		while (uio->uio_resid > 0) {
  ------------------
  |  Branch (14344:10): [True: 0, False: 5.42k]
  ------------------
14345|      0|#endif
14346|       |			/* How much room do we have? */
14347|      0|			struct mbuf *new_tail, *mm;
14348|       |
14349|      0|			inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
14350|      0|			if (SCTP_SB_LIMIT_SND(so) > inqueue_bytes) {
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14350:8): [True: 0, False: 0]
  ------------------
14351|      0|				max_len = SCTP_SB_LIMIT_SND(so) - inqueue_bytes;
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
14352|      0|			} else {
14353|      0|				max_len = 0;
14354|      0|			}
14355|      0|			if ((max_len > (ssize_t)SCTP_BASE_SYSCTL(sctp_add_more_threshold)) ||
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (14355:8): [True: 0, False: 0]
  ------------------
14356|      0|			    ((max_len > 0 ) && (SCTP_SB_LIMIT_SND(so) < SCTP_BASE_SYSCTL(sctp_add_more_threshold))) ||
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
              			    ((max_len > 0 ) && (SCTP_SB_LIMIT_SND(so) < SCTP_BASE_SYSCTL(sctp_add_more_threshold))) ||
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (14356:9): [True: 0, False: 0]
  |  Branch (14356:27): [True: 0, False: 0]
  ------------------
14357|       |#if defined(__APPLE__) && !defined(__Userspace__)
14358|       |#if defined(APPLE_LEOPARD)
14359|       |			    (uio->uio_resid <= max_len)) {
14360|       |#else
14361|       |			    (uio_resid(uio) <= max_len)) {
14362|       |#endif
14363|       |#else
14364|      0|			    (uio->uio_resid <= max_len)) {
  ------------------
  |  Branch (14364:8): [True: 0, False: 0]
  ------------------
14365|      0|#endif
14366|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14367|       |#if defined(__APPLE__) && !defined(__Userspace__)
14368|       |				SCTP_SOCKET_UNLOCK(so, 0);
14369|       |#endif
14370|      0|				sndout = 0;
14371|      0|				new_tail = NULL;
14372|      0|#if defined(__FreeBSD__) || defined(__Userspace__)
14373|      0|				mm = sctp_copy_resume(uio, (int)max_len, user_marks_eor, &error, &sndout, &new_tail);
14374|       |#else
14375|       |				mm = sctp_copy_resume(uio, (int)max_len, &error, &sndout, &new_tail);
14376|       |#endif
14377|       |#if defined(__APPLE__) && !defined(__Userspace__)
14378|       |				SCTP_SOCKET_LOCK(so, 0);
14379|       |#endif
14380|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14381|      0|				if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (14381:9): [True: 0, False: 0]
  ------------------
14382|      0|				    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14382:9): [True: 0, False: 0]
  ------------------
14383|       |					/* We need to get out.
14384|       |					 * Peer probably aborted.
14385|       |					 */
14386|      0|					sctp_m_freem(mm);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14387|      0|					if (asoc->state & SCTP_STATE_WAS_ABORTED) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14387:10): [True: 0, False: 0]
  ------------------
14388|       |						/* XXX: Could also be ECONNABORTED, not enough info. */
14389|      0|						error = ECONNRESET;
14390|      0|					} else {
14391|      0|						error = ENOTCONN;
14392|      0|					}
14393|      0|					goto out;
14394|      0|				}
14395|      0|				if ((mm == NULL) || (error != 0)) {
  ------------------
  |  Branch (14395:9): [True: 0, False: 0]
  |  Branch (14395:25): [True: 0, False: 0]
  ------------------
14396|      0|					if (mm != NULL) {
  ------------------
  |  Branch (14396:10): [True: 0, False: 0]
  ------------------
14397|      0|						sctp_m_freem(mm);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14398|      0|					}
14399|      0|					if (sp != NULL) {
  ------------------
  |  Branch (14399:10): [True: 0, False: 0]
  ------------------
14400|      0|						sp->processing = 0;
14401|      0|					}
14402|      0|					goto out;
14403|      0|				}
14404|       |				/* Update the mbuf and count */
14405|      0|				if (sp->tail_mbuf != NULL) {
  ------------------
  |  Branch (14405:9): [True: 0, False: 0]
  ------------------
14406|       |					/* Tack it to the end. */
14407|      0|					SCTP_BUF_NEXT(sp->tail_mbuf) = mm;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
14408|      0|				} else {
14409|       |					/* A stolen mbuf. */
14410|      0|					sp->data = mm;
14411|      0|				}
14412|      0|				sp->tail_mbuf = new_tail;
14413|      0|				sctp_snd_sb_alloc(stcb, sndout);
  ------------------
  |  |  285|      0|#define sctp_snd_sb_alloc(stcb, sz)  \
  |  |  286|      0|do { \
  |  |  287|      0|	atomic_add_int(&stcb->asoc.total_output_queue_size,sz); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  288|      0|	if ((stcb->sctp_socket != NULL) && \
  |  |  ------------------
  |  |  |  Branch (288:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  289|      0|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (289:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  290|      0|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (290:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  291|      0|		SCTP_SB_INCR(&stcb->sctp_socket->so_snd, sz); \
  |  |  ------------------
  |  |  |  |  969|      0|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|      0|{						\
  |  |  |  |  971|      0|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|      0|}
  |  |  ------------------
  |  |  292|      0|	} \
  |  |  293|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
14414|      0|				atomic_add_int(&sp->length, sndout);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14415|      0|				if (sinfo_flags & SCTP_SACK_IMMEDIATELY) {
  ------------------
  |  |  263|      0|#define SCTP_SACK_IMMEDIATELY 0x4000 /* Set I-Bit */
  ------------------
  |  Branch (14415:9): [True: 0, False: 0]
  ------------------
14416|      0|					sp->sinfo_flags |= SCTP_SACK_IMMEDIATELY;
  ------------------
  |  |  263|      0|#define SCTP_SACK_IMMEDIATELY 0x4000 /* Set I-Bit */
  ------------------
14417|      0|				}
14418|       |
14419|       |				/* Did we reach EOR? */
14420|       |#if defined(__APPLE__) && !defined(__Userspace__)
14421|       |#if defined(APPLE_LEOPARD)
14422|       |				if ((uio->uio_resid == 0) &&
14423|       |#else
14424|       |				if ((uio_resid(uio) == 0) &&
14425|       |#endif
14426|       |#else
14427|      0|				if ((uio->uio_resid == 0) &&
  ------------------
  |  Branch (14427:9): [True: 0, False: 0]
  ------------------
14428|      0|#endif
14429|      0|				    ((user_marks_eor == 0) ||
  ------------------
  |  Branch (14429:10): [True: 0, False: 0]
  ------------------
14430|      0|				     (sinfo_flags & SCTP_EOF) ||
  ------------------
  |  |  257|      0|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (14430:10): [True: 0, False: 0]
  ------------------
14431|      0|				     (user_marks_eor && (sinfo_flags & SCTP_EOR)))) {
  ------------------
  |  |  262|      0|#define SCTP_EOR              0x2000 /* end of message signal */
  ------------------
  |  Branch (14431:11): [True: 0, False: 0]
  |  Branch (14431:29): [True: 0, False: 0]
  ------------------
14432|      0|					sp->msg_is_complete = 1;
14433|      0|				} else {
14434|      0|					sp->msg_is_complete = 0;
14435|      0|				}
14436|      0|			}
14437|       |
14438|      0|			KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
14439|      0|			SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14440|      0|			KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
14441|      0|			        ("Association about to be freed"));
14442|      0|			KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
14443|      0|			        ("Association was aborted"));
14444|       |
14445|       |#if defined(__APPLE__) && !defined(__Userspace__)
14446|       |#if defined(APPLE_LEOPARD)
14447|       |			if (uio->uio_resid == 0) {
14448|       |#else
14449|       |			if (uio_resid(uio) == 0) {
14450|       |#endif
14451|       |#else
14452|      0|			if (uio->uio_resid == 0) {
  ------------------
  |  Branch (14452:8): [True: 0, False: 0]
  ------------------
14453|      0|#endif
14454|       |				/* got it all? */
14455|      0|				continue;
14456|      0|			}
14457|       |			/* PR-SCTP? */
14458|      0|			if ((asoc->prsctp_supported) && (asoc->sent_queue_cnt_removeable > 0)) {
  ------------------
  |  Branch (14458:8): [True: 0, False: 0]
  |  Branch (14458:36): [True: 0, False: 0]
  ------------------
14459|       |				/* This is ugly but we must assure locking order */
14460|      0|				sctp_prune_prsctp(stcb, asoc, sndrcvninfo, (int)sndlen);
14461|      0|				inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
14462|      0|				if (SCTP_SB_LIMIT_SND(so) > inqueue_bytes)
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14462:9): [True: 0, False: 0]
  ------------------
14463|      0|					max_len = SCTP_SB_LIMIT_SND(so) - inqueue_bytes;
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
14464|      0|				else
14465|      0|					max_len = 0;
14466|      0|				if (max_len > 0) {
  ------------------
  |  Branch (14466:9): [True: 0, False: 0]
  ------------------
14467|      0|					continue;
14468|      0|				}
14469|      0|			}
14470|       |			/* wait for space now */
14471|      0|			if (non_blocking) {
  ------------------
  |  Branch (14471:8): [True: 0, False: 0]
  ------------------
14472|       |				/* Non-blocking io in place out */
14473|      0|				if (sp != NULL) {
  ------------------
  |  Branch (14473:9): [True: 0, False: 0]
  ------------------
14474|      0|					sp->processing = 0;
14475|      0|				}
14476|      0|				goto skip_out_eof;
14477|      0|			}
14478|       |			/* What about the INIT, send it maybe */
14479|      0|			if (queue_only_for_init) {
  ------------------
  |  Branch (14479:8): [True: 0, False: 0]
  ------------------
14480|      0|				if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              				if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (14480:9): [True: 0, False: 0]
  ------------------
14481|       |					/* a collision took us forward? */
14482|      0|					queue_only = 0;
14483|      0|				} else {
14484|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14485|       |					NET_EPOCH_ENTER(et);
14486|       |#endif
14487|      0|					sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
14488|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14489|       |					NET_EPOCH_EXIT(et);
14490|       |#endif
14491|      0|					SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
14492|      0|					queue_only = 1;
14493|      0|				}
14494|      0|			}
14495|      0|			if ((net->flight_size > net->cwnd) &&
  ------------------
  |  Branch (14495:8): [True: 0, False: 0]
  ------------------
14496|      0|			    (asoc->sctp_cmt_on_off == 0)) {
  ------------------
  |  Branch (14496:8): [True: 0, False: 0]
  ------------------
14497|      0|				SCTP_STAT_INCR(sctps_send_cwnd_avoid);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14498|      0|				queue_only = 1;
14499|      0|			} else if (asoc->ifp_had_enobuf) {
  ------------------
  |  Branch (14499:15): [True: 0, False: 0]
  ------------------
14500|      0|				SCTP_STAT_INCR(sctps_ifnomemqueued);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14501|      0|				if (net->flight_size > (2 * net->mtu)) {
  ------------------
  |  Branch (14501:9): [True: 0, False: 0]
  ------------------
14502|      0|					queue_only = 1;
14503|      0|				}
14504|      0|				asoc->ifp_had_enobuf = 0;
14505|      0|			}
14506|      0|			un_sent = asoc->total_output_queue_size - asoc->total_flight;
14507|      0|			if ((sctp_is_feature_off(inp, SCTP_PCB_FLAGS_NODELAY)) &&
  ------------------
  |  |   53|      0|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  ------------------
  |  Branch (14507:8): [True: 0, False: 0]
  ------------------
14508|      0|			    (asoc->total_flight > 0) &&
  ------------------
  |  Branch (14508:8): [True: 0, False: 0]
  ------------------
14509|      0|			    (asoc->stream_queue_cnt < SCTP_MAX_DATA_BUNDLING) &&
  ------------------
  |  |  876|      0|#define SCTP_MAX_DATA_BUNDLING		256
  ------------------
  |  Branch (14509:8): [True: 0, False: 0]
  ------------------
14510|      0|			    (un_sent < (int)(asoc->smallest_mtu - SCTP_MIN_OVERHEAD))) {
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (14510:8): [True: 0, False: 0]
  ------------------
14511|       |				/*-
14512|       |				 * Ok, Nagle is set on and we have data outstanding.
14513|       |				 * Don't send anything and let SACKs drive out the
14514|       |				 * data unless we have a "full" segment to send.
14515|       |				 */
14516|      0|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  652|      0|#define SCTP_NAGLE_LOGGING_ENABLE			0x00000800
  ------------------
  |  Branch (14516:9): [True: 0, False: 0]
  ------------------
14517|      0|					sctp_log_nagle_event(stcb, SCTP_NAGLE_APPLIED);
  ------------------
  |  |  176|      0|#define SCTP_NAGLE_APPLIED          72
  ------------------
14518|      0|				}
14519|      0|				SCTP_STAT_INCR(sctps_naglequeued);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14520|      0|				nagle_applies = 1;
14521|      0|			} else {
14522|      0|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  652|      0|#define SCTP_NAGLE_LOGGING_ENABLE			0x00000800
  ------------------
  |  Branch (14522:9): [True: 0, False: 0]
  ------------------
14523|      0|					if (sctp_is_feature_off(inp, SCTP_PCB_FLAGS_NODELAY))
  ------------------
  |  |   53|      0|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  |  |  ------------------
  |  |  |  Branch (53:43): [True: 0, False: 0]
  |  |  ------------------
  ------------------
14524|      0|						sctp_log_nagle_event(stcb, SCTP_NAGLE_SKIPPED);
  ------------------
  |  |  177|      0|#define SCTP_NAGLE_SKIPPED          73
  ------------------
14525|      0|				}
14526|      0|				SCTP_STAT_INCR(sctps_naglesent);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14527|      0|				nagle_applies = 0;
14528|      0|			}
14529|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|      0|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14529:8): [True: 0, False: 0]
  ------------------
14530|      0|				sctp_misc_ints(SCTP_CWNDLOG_PRESEND, queue_only_for_init, queue_only,
  ------------------
  |  |  181|      0|#define SCTP_CWNDLOG_PRESEND        77
  ------------------
14531|      0|				               nagle_applies, un_sent);
14532|      0|				sctp_misc_ints(SCTP_CWNDLOG_PRESEND, asoc->total_output_queue_size,
  ------------------
  |  |  181|      0|#define SCTP_CWNDLOG_PRESEND        77
  ------------------
14533|      0|				               asoc->total_flight,
14534|      0|				               asoc->chunks_on_out_queue, asoc->total_flight_count);
14535|      0|			}
14536|      0|			if (queue_only_for_init) {
  ------------------
  |  Branch (14536:8): [True: 0, False: 0]
  ------------------
14537|      0|				queue_only_for_init = 0;
14538|      0|			}
14539|      0|			if ((queue_only == 0) && (nagle_applies == 0)) {
  ------------------
  |  Branch (14539:8): [True: 0, False: 0]
  |  Branch (14539:29): [True: 0, False: 0]
  ------------------
14540|       |				/*-
14541|       |				 * need to start chunk output
14542|       |				 * before blocking.. note that if
14543|       |				 * a lock is already applied, then
14544|       |				 * the input via the net is happening
14545|       |				 * and I don't need to start output :-D
14546|       |				 */
14547|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14548|       |				NET_EPOCH_ENTER(et);
14549|       |#endif
14550|      0|				sctp_chunk_output(inp, stcb,
14551|      0|				                  SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  361|      0|#define SCTP_OUTPUT_FROM_USR_SEND       0
  ------------------
              				                  SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
14552|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14553|       |				NET_EPOCH_EXIT(et);
14554|       |#endif
14555|      0|			}
14556|       |			/*-
14557|       |			 * This is a bit strange, but I think it will
14558|       |			 * work. The total_output_queue_size is locked and
14559|       |			 * protected by the TCB_LOCK, which we just released.
14560|       |			 * There is a race that can occur between releasing it
14561|       |			 * above, and me getting the socket lock, where sacks
14562|       |			 * come in but we have not put the SB_WAIT on the
14563|       |			 * so_snd buffer to get the wakeup. After the LOCK
14564|       |			 * is applied the sack_processing will also need to
14565|       |			 * LOCK the so->so_snd to do the actual sowwakeup(). So
14566|       |			 * once we have the socket buffer lock if we recheck the
14567|       |			 * size we KNOW we will get to sleep safely with the
14568|       |			 * wakeup flag in place.
14569|       |			 */
14570|      0|			inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|      0|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 0, False: 0]
  |  |  ------------------
  |  |  135|      0|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|      0|                                        sizeof(struct sctp_data_chunk))
  ------------------
14571|      0|			SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14572|      0|			if (SCTP_SB_LIMIT_SND(so) <= (inqueue_bytes +
  ------------------
  |  |  984|      0|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14572:8): [True: 0, False: 0]
  ------------------
14573|      0|			                              min(SCTP_BASE_SYSCTL(sctp_add_more_threshold), SCTP_SB_LIMIT_SND(so)))) {
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
14574|      0|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|      0|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14574:9): [True: 0, False: 0]
  ------------------
14575|       |#if defined(__APPLE__) && !defined(__Userspace__)
14576|       |#if defined(APPLE_LEOPARD)
14577|       |					sctp_log_block(SCTP_BLOCK_LOG_INTO_BLK,
14578|       |					               asoc, uio->uio_resid);
14579|       |#else
14580|       |					sctp_log_block(SCTP_BLOCK_LOG_INTO_BLK,
14581|       |					               asoc, uio_resid(uio));
14582|       |#endif
14583|       |#else
14584|      0|					sctp_log_block(SCTP_BLOCK_LOG_INTO_BLK,
  ------------------
  |  |  112|      0|#define SCTP_BLOCK_LOG_INTO_BLK 7
  ------------------
14585|      0|					               asoc, uio->uio_resid);
14586|      0|#endif
14587|      0|				}
14588|      0|				be.error = 0;
14589|      0|#if !(defined(_WIN32) && !defined(__Userspace__))
14590|      0|				stcb->block_entry = &be;
14591|      0|#endif
14592|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14593|       |#if defined(__APPLE__) && !defined(__Userspace__)
14594|       |				sbunlock(&so->so_snd, 1);
14595|       |#endif
14596|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14597|       |				error = sbwait(so, SO_SND);
14598|       |#else
14599|      0|				error = sbwait(&so->so_snd);
14600|      0|#endif
14601|      0|				if (error == 0) {
  ------------------
  |  Branch (14601:9): [True: 0, False: 0]
  ------------------
14602|      0|					if (so->so_error != 0)
  ------------------
  |  Branch (14602:10): [True: 0, False: 0]
  ------------------
14603|      0|						error = so->so_error;
14604|      0|					if (be.error != 0) {
  ------------------
  |  Branch (14604:10): [True: 0, False: 0]
  ------------------
14605|      0|						error = be.error;
14606|      0|					}
14607|      0|				}
14608|      0|				SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14609|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14610|      0|				stcb->block_entry = NULL;
14611|      0|				if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (14611:9): [True: 0, False: 0]
  ------------------
14612|      0|				    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14612:9): [True: 0, False: 0]
  ------------------
14613|      0|					if (asoc->state & SCTP_STATE_WAS_ABORTED) {
  ------------------
  |  |  467|      0|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14613:10): [True: 0, False: 0]
  ------------------
14614|       |						/* XXX: Could also be ECONNABORTED, not enough info. */
14615|      0|						error = ECONNRESET;
14616|      0|					} else {
14617|      0|						error = ENOTCONN;
14618|      0|					}
14619|      0|					goto out_unlocked;
14620|      0|				}
14621|      0|				if (error != 0) {
  ------------------
  |  Branch (14621:9): [True: 0, False: 0]
  ------------------
14622|      0|					if (sp != NULL) {
  ------------------
  |  Branch (14622:10): [True: 0, False: 0]
  ------------------
14623|      0|						sp->processing = 0;
14624|      0|					}
14625|      0|					goto out_unlocked;
14626|      0|				}
14627|       |#if defined(__APPLE__) && !defined(__Userspace__)
14628|       |				error = sblock(&so->so_snd, SBLOCKWAIT(flags));
14629|       |				if (error != 0) {
14630|       |					goto out_unlocked;
14631|       |				}
14632|       |#endif
14633|      0|			} else {
14634|      0|				SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14635|      0|			}
14636|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|      0|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14636:8): [True: 0, False: 0]
  ------------------
14637|      0|				sctp_log_block(SCTP_BLOCK_LOG_OUTOF_BLK,
  ------------------
  |  |  113|      0|#define SCTP_BLOCK_LOG_OUTOF_BLK 8
  ------------------
14638|      0|				               asoc, asoc->total_output_queue_size);
14639|      0|			}
14640|      0|		}
14641|       |
14642|  5.42k|		KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14643|  5.42k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14644|  5.42k|		KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14645|  5.42k|		        ("Association about to be freed"));
14646|  5.42k|		KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14647|  5.42k|		        ("Association was aborted"));
14648|       |
14649|       |		/* The out streams might be reallocated. */
14650|  5.42k|		strm = &asoc->strmout[sinfo_stream];
14651|  5.42k|		if (sp != NULL) {
  ------------------
  |  Branch (14651:7): [True: 5.42k, False: 0]
  ------------------
14652|  5.42k|			if (sp->msg_is_complete == 0) {
  ------------------
  |  Branch (14652:8): [True: 0, False: 5.42k]
  ------------------
14653|      0|				strm->last_msg_incomplete = 1;
14654|      0|				if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (14654:9): [True: 0, False: 0]
  ------------------
14655|      0|					asoc->stream_locked = 1;
14656|      0|					asoc->stream_locked_on = sinfo_stream;
14657|      0|				}
14658|  5.42k|			} else {
14659|  5.42k|				sp->sender_all_done = 1;
14660|  5.42k|				strm->last_msg_incomplete = 0;
14661|  5.42k|				asoc->stream_locked = 0;
14662|  5.42k|			}
14663|  5.42k|			sp->processing = 0;
14664|  5.42k|		} else {
14665|      0|			SCTP_PRINTF("Huh no sp TSNH?\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
14666|      0|			strm->last_msg_incomplete = 0;
14667|      0|			asoc->stream_locked = 0;
14668|      0|		}
14669|       |#if defined(__APPLE__) && !defined(__Userspace__)
14670|       |#if defined(APPLE_LEOPARD)
14671|       |		if (uio->uio_resid == 0) {
14672|       |#else
14673|       |		if (uio_resid(uio) == 0) {
14674|       |#endif
14675|       |#else
14676|  5.42k|		if (uio->uio_resid == 0) {
  ------------------
  |  Branch (14676:7): [True: 5.42k, False: 0]
  ------------------
14677|  5.42k|#endif
14678|  5.42k|			got_all_of_the_send = true;
14679|  5.42k|		}
14680|  5.42k|	} else {
14681|      0|		error = sctp_msg_append(stcb, net, top, sndrcvninfo);
14682|      0|		top = NULL;
14683|      0|		if ((sinfo_flags & SCTP_EOF) != 0) {
  ------------------
  |  |  257|      0|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (14683:7): [True: 0, False: 0]
  ------------------
14684|      0|			got_all_of_the_send = true;
14685|      0|		}
14686|      0|	}
14687|  5.42k|	if (error != 0) {
  ------------------
  |  Branch (14687:6): [True: 0, False: 5.42k]
  ------------------
14688|      0|		goto out;
14689|      0|	}
14690|       |
14691|  5.42k|dataless_eof:
14692|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14693|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14694|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14695|  5.42k|	        ("Association about to be freed"));
14696|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14697|  5.42k|	        ("Association was aborted"));
14698|       |
14699|       |	/* EOF thing ? */
14700|  5.42k|	if ((sinfo_flags & SCTP_EOF) && got_all_of_the_send) {
  ------------------
  |  |  257|  5.42k|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (14700:6): [True: 0, False: 5.42k]
  |  Branch (14700:34): [True: 0, False: 0]
  ------------------
14701|      0|		SCTP_STAT_INCR(sctps_sends_with_eof);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14702|      0|		error = 0;
14703|      0|		if (TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (14703:7): [True: 0, False: 0]
  ------------------
14704|      0|		    TAILQ_EMPTY(&asoc->sent_queue) &&
  ------------------
  |  Branch (14704:7): [True: 0, False: 0]
  ------------------
14705|      0|		    sctp_is_there_unsent_data(stcb, SCTP_SO_LOCKED) == 0) {
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
  |  Branch (14705:7): [True: 0, False: 0]
  ------------------
14706|      0|			if ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete)(stcb, asoc)) {
  ------------------
  |  Branch (14706:8): [True: 0, False: 0]
  ------------------
14707|      0|				goto abort_anyway;
14708|      0|			}
14709|       |			/* there is nothing queued to send, so I'm done... */
14710|      0|			if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  460|      0|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (14710:8): [True: 0, False: 0]
  ------------------
14711|      0|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (14711:8): [True: 0, False: 0]
  ------------------
14712|      0|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|      0|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (14712:8): [True: 0, False: 0]
  ------------------
14713|      0|				struct sctp_nets *netp;
14714|       |
14715|       |				/* only send SHUTDOWN the first time through */
14716|      0|				if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              				if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (14716:9): [True: 0, False: 0]
  ------------------
14717|      0|					SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14718|      0|				}
14719|      0|				SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
14720|      0|				sctp_stop_timers_for_shutdown(stcb);
14721|      0|				if (asoc->alternate != NULL) {
  ------------------
  |  Branch (14721:9): [True: 0, False: 0]
  ------------------
14722|      0|					netp = asoc->alternate;
14723|      0|				} else {
14724|      0|					netp = asoc->primary_destination;
14725|      0|				}
14726|      0|				sctp_send_shutdown(stcb, netp);
14727|      0|				sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, stcb->sctp_ep, stcb,
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
14728|      0|				                 netp);
14729|      0|				sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD, stcb->sctp_ep, stcb,
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
14730|      0|				                 NULL);
14731|      0|			}
14732|      0|		} else {
14733|       |			/*-
14734|       |			 * we still got (or just got) data to send, so set
14735|       |			 * SHUTDOWN_PENDING
14736|       |			 */
14737|       |			/*-
14738|       |			 * XXX sockets draft says that SCTP_EOF should be
14739|       |			 * sent with no data.  currently, we will allow user
14740|       |			 * data to be sent first and move to
14741|       |			 * SHUTDOWN-PENDING
14742|       |			 */
14743|      0|			if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  460|      0|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (14743:8): [True: 0, False: 0]
  ------------------
14744|      0|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (14744:8): [True: 0, False: 0]
  ------------------
14745|      0|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|      0|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (14745:8): [True: 0, False: 0]
  ------------------
14746|      0|				if ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete)(stcb, asoc)) {
  ------------------
  |  Branch (14746:9): [True: 0, False: 0]
  ------------------
14747|      0|					SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_PARTIAL_MSG_LEFT);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
14748|      0|				}
14749|      0|				SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_SHUTDOWN_PENDING);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
14750|      0|				if (TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (14750:9): [True: 0, False: 0]
  ------------------
14751|      0|				    TAILQ_EMPTY(&asoc->sent_queue) &&
  ------------------
  |  Branch (14751:9): [True: 0, False: 0]
  ------------------
14752|      0|				    (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT)) {
  ------------------
  |  |  466|      0|#define SCTP_STATE_PARTIAL_MSG_LEFT     0x0400
  ------------------
  |  Branch (14752:9): [True: 0, False: 0]
  ------------------
14753|      0|					struct mbuf *op_err;
14754|      0|					char msg[SCTP_DIAG_INFO_LEN];
14755|       |
14756|      0|				abort_anyway:
14757|      0|					if (free_cnt_applied) {
  ------------------
  |  Branch (14757:10): [True: 0, False: 0]
  ------------------
14758|      0|						atomic_subtract_int(&asoc->refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
14759|      0|						free_cnt_applied = false;
14760|      0|					}
14761|      0|					SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
14762|      0|					              "%s:%d at %s", __FILE__, __LINE__, __func__);
14763|      0|					op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
14764|      0|					                             msg);
14765|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14766|       |					NET_EPOCH_ENTER(et);
14767|       |#endif
14768|      0|					sctp_abort_an_association(stcb->sctp_ep, stcb,
14769|      0|					                          op_err, false, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
14770|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14771|       |					NET_EPOCH_EXIT(et);
14772|       |#endif
14773|      0|					stcb = NULL;
14774|      0|					error = ECONNABORTED;
14775|      0|					goto out;
14776|      0|				}
14777|      0|				sctp_feature_off(inp, SCTP_PCB_FLAGS_NODELAY);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
14778|      0|			}
14779|      0|		}
14780|      0|	}
14781|       |
14782|  5.42k|skip_out_eof:
14783|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14784|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14785|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14786|  5.42k|	        ("Association about to be freed"));
14787|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14788|  5.42k|	        ("Association was aborted"));
14789|       |
14790|  5.42k|	some_on_control = !TAILQ_EMPTY(&asoc->control_send_queue);
14791|  5.42k|	if (queue_only_for_init) {
  ------------------
  |  Branch (14791:6): [True: 0, False: 5.42k]
  ------------------
14792|      0|		if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (14792:7): [True: 0, False: 0]
  ------------------
14793|       |			/* a collision took us forward? */
14794|      0|			queue_only = 0;
14795|      0|		} else {
14796|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14797|       |			NET_EPOCH_ENTER(et);
14798|       |#endif
14799|      0|			sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
14800|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14801|       |			NET_EPOCH_EXIT(et);
14802|       |#endif
14803|      0|			SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
14804|      0|			queue_only = 1;
14805|      0|		}
14806|      0|	}
14807|       |
14808|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14809|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14810|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14811|  5.42k|	        ("Association about to be freed"));
14812|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14813|  5.42k|	        ("Association was aborted"));
14814|       |
14815|  5.42k|	if ((net->flight_size > net->cwnd) &&
  ------------------
  |  Branch (14815:6): [True: 0, False: 5.42k]
  ------------------
14816|      0|	    (asoc->sctp_cmt_on_off == 0)) {
  ------------------
  |  Branch (14816:6): [True: 0, False: 0]
  ------------------
14817|      0|		SCTP_STAT_INCR(sctps_send_cwnd_avoid);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14818|      0|		queue_only = 1;
14819|  5.42k|	} else if (asoc->ifp_had_enobuf) {
  ------------------
  |  Branch (14819:13): [True: 0, False: 5.42k]
  ------------------
14820|      0|		SCTP_STAT_INCR(sctps_ifnomemqueued);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14821|      0|		if (net->flight_size > (2 * net->mtu)) {
  ------------------
  |  Branch (14821:7): [True: 0, False: 0]
  ------------------
14822|      0|			queue_only = 1;
14823|      0|		}
14824|      0|		asoc->ifp_had_enobuf = 0;
14825|      0|	}
14826|  5.42k|	un_sent = asoc->total_output_queue_size - asoc->total_flight;
14827|  5.42k|	if ((sctp_is_feature_off(inp, SCTP_PCB_FLAGS_NODELAY)) &&
  ------------------
  |  |   53|  5.42k|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  ------------------
  |  Branch (14827:6): [True: 0, False: 5.42k]
  ------------------
14828|      0|	    (asoc->total_flight > 0) &&
  ------------------
  |  Branch (14828:6): [True: 0, False: 0]
  ------------------
14829|      0|	    (asoc->stream_queue_cnt < SCTP_MAX_DATA_BUNDLING) &&
  ------------------
  |  |  876|      0|#define SCTP_MAX_DATA_BUNDLING		256
  ------------------
  |  Branch (14829:6): [True: 0, False: 0]
  ------------------
14830|      0|	    (un_sent < (int)(asoc->smallest_mtu - SCTP_MIN_OVERHEAD))) {
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (14830:6): [True: 0, False: 0]
  ------------------
14831|       |		/*-
14832|       |		 * Ok, Nagle is set on and we have data outstanding.
14833|       |		 * Don't send anything and let SACKs drive out the
14834|       |		 * data unless wen have a "full" segment to send.
14835|       |		 */
14836|      0|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  652|      0|#define SCTP_NAGLE_LOGGING_ENABLE			0x00000800
  ------------------
  |  Branch (14836:7): [True: 0, False: 0]
  ------------------
14837|      0|			sctp_log_nagle_event(stcb, SCTP_NAGLE_APPLIED);
  ------------------
  |  |  176|      0|#define SCTP_NAGLE_APPLIED          72
  ------------------
14838|      0|		}
14839|      0|		SCTP_STAT_INCR(sctps_naglequeued);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14840|      0|		nagle_applies = 1;
14841|  5.42k|	} else {
14842|  5.42k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.42k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  652|  5.42k|#define SCTP_NAGLE_LOGGING_ENABLE			0x00000800
  ------------------
  |  Branch (14842:7): [True: 0, False: 5.42k]
  ------------------
14843|      0|			if (sctp_is_feature_off(inp, SCTP_PCB_FLAGS_NODELAY))
  ------------------
  |  |   53|      0|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  |  |  ------------------
  |  |  |  Branch (53:43): [True: 0, False: 0]
  |  |  ------------------
  ------------------
14844|      0|				sctp_log_nagle_event(stcb, SCTP_NAGLE_SKIPPED);
  ------------------
  |  |  177|      0|#define SCTP_NAGLE_SKIPPED          73
  ------------------
14845|      0|		}
14846|  5.42k|		SCTP_STAT_INCR(sctps_naglesent);
  ------------------
  |  | 1112|  5.42k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  5.42k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14847|  5.42k|		nagle_applies = 0;
14848|  5.42k|	}
14849|  5.42k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.42k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|  5.42k|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14849:6): [True: 0, False: 5.42k]
  ------------------
14850|      0|		sctp_misc_ints(SCTP_CWNDLOG_PRESEND, queue_only_for_init, queue_only,
  ------------------
  |  |  181|      0|#define SCTP_CWNDLOG_PRESEND        77
  ------------------
14851|      0|		               nagle_applies, un_sent);
14852|      0|		sctp_misc_ints(SCTP_CWNDLOG_PRESEND, asoc->total_output_queue_size,
  ------------------
  |  |  181|      0|#define SCTP_CWNDLOG_PRESEND        77
  ------------------
14853|      0|		               asoc->total_flight,
14854|      0|		               asoc->chunks_on_out_queue, asoc->total_flight_count);
14855|      0|	}
14856|       |
14857|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14858|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14859|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14860|  5.42k|	        ("Association about to be freed"));
14861|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14862|  5.42k|	        ("Association was aborted"));
14863|       |
14864|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14865|       |	NET_EPOCH_ENTER(et);
14866|       |#endif
14867|  5.42k|	if ((queue_only == 0) && (nagle_applies == 0) && (asoc->peers_rwnd && un_sent)) {
  ------------------
  |  Branch (14867:6): [True: 2.49k, False: 2.92k]
  |  Branch (14867:27): [True: 2.49k, False: 0]
  |  Branch (14867:52): [True: 2.49k, False: 0]
  |  Branch (14867:72): [True: 2.49k, False: 0]
  ------------------
14868|  2.49k|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  361|  2.49k|#define SCTP_OUTPUT_FROM_USR_SEND       0
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  2.49k|#define SCTP_SO_LOCKED		1
  ------------------
14869|  2.92k|	} else if ((queue_only == 0) &&
  ------------------
  |  Branch (14869:13): [True: 0, False: 2.92k]
  ------------------
14870|      0|	           (asoc->peers_rwnd == 0) &&
  ------------------
  |  Branch (14870:13): [True: 0, False: 0]
  ------------------
14871|      0|	           (asoc->total_flight == 0)) {
  ------------------
  |  Branch (14871:13): [True: 0, False: 0]
  ------------------
14872|       |		/* We get to have a probe outstanding */
14873|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  361|      0|#define SCTP_OUTPUT_FROM_USR_SEND       0
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
14874|  2.92k|	} else if (some_on_control) {
  ------------------
  |  Branch (14874:13): [True: 1.54k, False: 1.38k]
  ------------------
14875|  1.54k|		int num_out, reason;
14876|       |
14877|       |		/* Here we do control only */
14878|  1.54k|		(void)sctp_med_chunk_output(inp, stcb, asoc, &num_out,
14879|  1.54k|		                            &reason, 1, 1, &now, &now_filled,
14880|  1.54k|		                            sctp_get_frag_point(stcb),
14881|  1.54k|		                            SCTP_SO_LOCKED);
  ------------------
  |  |  959|  1.54k|#define SCTP_SO_LOCKED		1
  ------------------
14882|  1.54k|	}
14883|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14884|       |	NET_EPOCH_EXIT(et);
14885|       |#endif
14886|  5.42k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "USR Send complete qo:%d prw:%d unsent:%d tf:%d cooq:%d toqs:%d err:%d\n",
14887|  5.42k|	        queue_only, asoc->peers_rwnd, un_sent,
14888|  5.42k|	        asoc->total_flight, asoc->chunks_on_out_queue,
14889|  5.42k|	        asoc->total_output_queue_size, error);
14890|       |
14891|  5.42k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14892|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14893|  5.42k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14894|  5.42k|	        ("Association about to be freed"));
14895|  5.42k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
14896|  5.42k|	        ("Association was aborted"));
14897|       |
14898|  5.42k|out:
14899|       |#if defined(__APPLE__) && !defined(__Userspace__)
14900|       |	sbunlock(&so->so_snd, 1);
14901|       |#endif
14902|  6.17k|out_unlocked:
14903|  6.17k|	if (create_lock_applied) {
  ------------------
  |  Branch (14903:6): [True: 0, False: 6.17k]
  ------------------
14904|      0|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14905|      0|	}
14906|  6.17k|	if (stcb != NULL) {
  ------------------
  |  Branch (14906:6): [True: 6.17k, False: 0]
  ------------------
14907|  6.17k|		if (local_soresv) {
  ------------------
  |  Branch (14907:7): [True: 5.42k, False: 749]
  ------------------
14908|  5.42k|			atomic_subtract_int(&asoc->sb_send_resv, (int)sndlen);
  ------------------
  |  |   97|  5.42k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
14909|  5.42k|		}
14910|  6.17k|		if (free_cnt_applied) {
  ------------------
  |  Branch (14910:7): [True: 6.17k, False: 0]
  ------------------
14911|  6.17k|			atomic_subtract_int(&asoc->refcnt, 1);
  ------------------
  |  |   97|  6.17k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
14912|  6.17k|		}
14913|  6.17k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  6.17k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.17k|	do {                         \
  |  |  |  |  113|  6.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14914|  6.17k|	}
14915|  6.17k|	if (top != NULL) {
  ------------------
  |  Branch (14915:6): [True: 0, False: 6.17k]
  ------------------
14916|      0|		sctp_m_freem(top);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14917|      0|	}
14918|  6.17k|	if (control != NULL) {
  ------------------
  |  Branch (14918:6): [True: 0, False: 6.17k]
  ------------------
14919|      0|		sctp_m_freem(control);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14920|      0|	}
14921|  6.17k|	SCTP_LTRACE_ERR_RET(inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, error);
14922|  6.17k|	return (error);
14923|  6.17k|}
sctp_add_auth_chunk:
14932|    842|{
14933|    842|	struct mbuf *m_auth;
14934|    842|	struct sctp_auth_chunk *auth;
14935|    842|	int chunk_len;
14936|    842|	struct mbuf *cn;
14937|       |
14938|    842|	if ((m_end == NULL) || (auth_ret == NULL) || (offset == NULL) ||
  ------------------
  |  Branch (14938:6): [True: 0, False: 842]
  |  Branch (14938:25): [True: 0, False: 842]
  |  Branch (14938:47): [True: 0, False: 842]
  ------------------
14939|    842|	    (stcb == NULL))
  ------------------
  |  Branch (14939:6): [True: 0, False: 842]
  ------------------
14940|      0|		return (m);
14941|       |
14942|    842|	if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (14942:6): [True: 70, False: 772]
  ------------------
14943|     70|		return (m);
14944|     70|	}
14945|       |	/* does the requested chunk require auth? */
14946|    772|	if (!sctp_auth_is_required_chunk(chunk, stcb->asoc.peer_auth_chunks)) {
  ------------------
  |  |  100|    772|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 0, False: 772]
  |  |  ------------------
  ------------------
  |  Branch (14946:6): [True: 0, False: 772]
  ------------------
14947|      0|		return (m);
14948|      0|	}
14949|    772|	m_auth = sctp_get_mbuf_for_msg(sizeof(*auth), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    772|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_auth = sctp_get_mbuf_for_msg(sizeof(*auth), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|    772|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    772|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
14950|    772|	if (m_auth == NULL) {
  ------------------
  |  Branch (14950:6): [True: 0, False: 772]
  ------------------
14951|       |		/* no mbuf's */
14952|      0|		return (m);
14953|      0|	}
14954|       |	/* reserve some space if this will be the first mbuf */
14955|    772|	if (m == NULL)
  ------------------
  |  Branch (14955:6): [True: 704, False: 68]
  ------------------
14956|    704|		SCTP_BUF_RESV_UF(m_auth, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  1.47k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    704|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
14957|       |	/* fill in the AUTH chunk details */
14958|    772|	auth = mtod(m_auth, struct sctp_auth_chunk *);
  ------------------
  |  |   96|    772|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    772|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
14959|    772|	memset(auth, 0, sizeof(*auth));
14960|    772|	auth->ch.chunk_type = SCTP_AUTHENTICATION;
  ------------------
  |  |  470|    772|#define SCTP_AUTHENTICATION     0x0f
  ------------------
14961|    772|	auth->ch.chunk_flags = 0;
14962|    772|	chunk_len = sizeof(*auth) +
14963|    772|	    sctp_get_hmac_digest_len(stcb->asoc.peer_hmac_id);
14964|    772|	auth->ch.chunk_length = htons(chunk_len);
14965|    772|	auth->hmac_id = htons(stcb->asoc.peer_hmac_id);
14966|       |	/* key id and hmac digest will be computed and filled in upon send */
14967|       |
14968|       |	/* save the offset where the auth was inserted into the chain */
14969|    772|	*offset = 0;
14970|  1.38k|	for (cn = m; cn; cn = SCTP_BUF_NEXT(cn)) {
  ------------------
  |  |  802|    617|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    617|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (14970:15): [True: 617, False: 772]
  ------------------
14971|    617|		*offset += SCTP_BUF_LEN(cn);
  ------------------
  |  |  801|    617|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    617|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
14972|    617|	}
14973|       |
14974|       |	/* update length and return pointer to the auth chunk */
14975|    772|	SCTP_BUF_LEN(m_auth) = chunk_len;
  ------------------
  |  |  801|    772|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    772|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
14976|    772|	m = sctp_copy_mbufchain(m_auth, m, m_end, 1, chunk_len, 0);
14977|    772|	if (auth_ret != NULL)
  ------------------
  |  Branch (14977:6): [True: 772, False: 0]
  ------------------
14978|    772|		*auth_ret = auth;
14979|       |
14980|    772|	return (m);
14981|    772|}
sctp_output.c:sctp_is_ifa_addr_preferred:
 2276|  5.03k|{
 2277|  5.03k|	uint8_t dest_is_global = 0;
 2278|       |	/* dest_is_priv is true if destination is a private address */
 2279|       |	/* dest_is_loop is true if destination is a loopback addresses */
 2280|       |
 2281|       |	/**
 2282|       |	 * Here we determine if its a preferred address. A preferred address
 2283|       |	 * means it is the same scope or higher scope then the destination.
 2284|       |	 * L = loopback, P = private, G = global
 2285|       |	 * -----------------------------------------
 2286|       |	 *    src    |  dest | result
 2287|       |	 *  ----------------------------------------
 2288|       |	 *     L     |    L  |    yes
 2289|       |	 *  -----------------------------------------
 2290|       |	 *     P     |    L  |    yes-v4 no-v6
 2291|       |	 *  -----------------------------------------
 2292|       |	 *     G     |    L  |    yes-v4 no-v6
 2293|       |	 *  -----------------------------------------
 2294|       |	 *     L     |    P  |    no
 2295|       |	 *  -----------------------------------------
 2296|       |	 *     P     |    P  |    yes
 2297|       |	 *  -----------------------------------------
 2298|       |	 *     G     |    P  |    no
 2299|       |	 *   -----------------------------------------
 2300|       |	 *     L     |    G  |    no
 2301|       |	 *   -----------------------------------------
 2302|       |	 *     P     |    G  |    no
 2303|       |	 *    -----------------------------------------
 2304|       |	 *     G     |    G  |    yes
 2305|       |	 *    -----------------------------------------
 2306|       |	 */
 2307|       |
 2308|  5.03k|	if (ifa->address.sa.sa_family != fam) {
  ------------------
  |  Branch (2308:6): [True: 5.03k, False: 0]
  ------------------
 2309|       |		/* forget mis-matched family */
 2310|  5.03k|		return (NULL);
 2311|  5.03k|	}
 2312|      0|	if ((dest_is_priv == 0) && (dest_is_loop == 0)) {
  ------------------
  |  Branch (2312:6): [True: 0, False: 0]
  |  Branch (2312:29): [True: 0, False: 0]
  ------------------
 2313|      0|		dest_is_global = 1;
 2314|      0|	}
 2315|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT2, "Is destination preferred:");
 2316|      0|	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &ifa->address.sa);
 2317|       |	/* Ok the address may be ok */
 2318|      0|#ifdef INET6
 2319|      0|	if (fam == AF_INET6) {
  ------------------
  |  Branch (2319:6): [True: 0, False: 0]
  ------------------
 2320|       |		/* ok to use deprecated addresses? no lets not! */
 2321|      0|		if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) {
  ------------------
  |  |   98|      0|#define SCTP_ADDR_IFA_UNUSEABLE 0x00000008
  ------------------
  |  Branch (2321:7): [True: 0, False: 0]
  ------------------
 2322|      0|			SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:1\n");
 2323|      0|			return (NULL);
 2324|      0|		}
 2325|      0|		if (ifa->src_is_priv && !ifa->src_is_loop) {
  ------------------
  |  Branch (2325:7): [True: 0, False: 0]
  |  Branch (2325:27): [True: 0, False: 0]
  ------------------
 2326|      0|			if (dest_is_loop) {
  ------------------
  |  Branch (2326:8): [True: 0, False: 0]
  ------------------
 2327|      0|				SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:2\n");
 2328|      0|				return (NULL);
 2329|      0|			}
 2330|      0|		}
 2331|      0|		if (ifa->src_is_glob) {
  ------------------
  |  Branch (2331:7): [True: 0, False: 0]
  ------------------
 2332|      0|			if (dest_is_loop) {
  ------------------
  |  Branch (2332:8): [True: 0, False: 0]
  ------------------
 2333|      0|				SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:3\n");
 2334|      0|				return (NULL);
 2335|      0|			}
 2336|      0|		}
 2337|      0|	}
 2338|      0|#endif
 2339|       |	/* Now that we know what is what, implement or table
 2340|       |	 * this could in theory be done slicker (it used to be), but this
 2341|       |	 * is straightforward and easier to validate :-)
 2342|       |	 */
 2343|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "src_loop:%d src_priv:%d src_glob:%d\n",
 2344|      0|		ifa->src_is_loop, ifa->src_is_priv, ifa->src_is_glob);
 2345|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "dest_loop:%d dest_priv:%d dest_glob:%d\n",
 2346|      0|		dest_is_loop, dest_is_priv, dest_is_global);
 2347|       |
 2348|      0|	if ((ifa->src_is_loop) && (dest_is_priv)) {
  ------------------
  |  Branch (2348:6): [True: 0, False: 0]
  |  Branch (2348:28): [True: 0, False: 0]
  ------------------
 2349|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:4\n");
 2350|      0|		return (NULL);
 2351|      0|	}
 2352|      0|	if ((ifa->src_is_glob) && (dest_is_priv)) {
  ------------------
  |  Branch (2352:6): [True: 0, False: 0]
  |  Branch (2352:28): [True: 0, False: 0]
  ------------------
 2353|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:5\n");
 2354|      0|		return (NULL);
 2355|      0|	}
 2356|      0|	if ((ifa->src_is_loop) && (dest_is_global)) {
  ------------------
  |  Branch (2356:6): [True: 0, False: 0]
  |  Branch (2356:28): [True: 0, False: 0]
  ------------------
 2357|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:6\n");
 2358|      0|		return (NULL);
 2359|      0|	}
 2360|      0|	if ((ifa->src_is_priv) && (dest_is_global)) {
  ------------------
  |  Branch (2360:6): [True: 0, False: 0]
  |  Branch (2360:28): [True: 0, False: 0]
  ------------------
 2361|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "NO:7\n");
 2362|      0|		return (NULL);
 2363|      0|	}
 2364|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "YES\n");
 2365|       |	/* its a preferred address */
 2366|      0|	return (ifa);
 2367|      0|}
sctp_output.c:sctp_is_ifa_addr_acceptable:
 2374|  5.03k|{
 2375|  5.03k|	uint8_t dest_is_global = 0;
 2376|       |
 2377|       |	/**
 2378|       |	 * Here we determine if its a acceptable address. A acceptable
 2379|       |	 * address means it is the same scope or higher scope but we can
 2380|       |	 * allow for NAT which means its ok to have a global dest and a
 2381|       |	 * private src.
 2382|       |	 *
 2383|       |	 * L = loopback, P = private, G = global
 2384|       |	 * -----------------------------------------
 2385|       |	 *  src    |  dest | result
 2386|       |	 * -----------------------------------------
 2387|       |	 *   L     |   L   |    yes
 2388|       |	 *  -----------------------------------------
 2389|       |	 *   P     |   L   |    yes-v4 no-v6
 2390|       |	 *  -----------------------------------------
 2391|       |	 *   G     |   L   |    yes
 2392|       |	 * -----------------------------------------
 2393|       |	 *   L     |   P   |    no
 2394|       |	 * -----------------------------------------
 2395|       |	 *   P     |   P   |    yes
 2396|       |	 * -----------------------------------------
 2397|       |	 *   G     |   P   |    yes - May not work
 2398|       |	 * -----------------------------------------
 2399|       |	 *   L     |   G   |    no
 2400|       |	 * -----------------------------------------
 2401|       |	 *   P     |   G   |    yes - May not work
 2402|       |	 * -----------------------------------------
 2403|       |	 *   G     |   G   |    yes
 2404|       |	 * -----------------------------------------
 2405|       |	 */
 2406|       |
 2407|  5.03k|	if (ifa->address.sa.sa_family != fam) {
  ------------------
  |  Branch (2407:6): [True: 5.03k, False: 0]
  ------------------
 2408|       |		/* forget non matching family */
 2409|  5.03k|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "ifa_fam:%d fam:%d\n",
 2410|  5.03k|			ifa->address.sa.sa_family, fam);
 2411|  5.03k|		return (NULL);
 2412|  5.03k|	}
 2413|       |	/* Ok the address may be ok */
 2414|      0|	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT3, &ifa->address.sa);
 2415|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "dst_is_loop:%d dest_is_priv:%d\n",
 2416|      0|		dest_is_loop, dest_is_priv);
 2417|      0|	if ((dest_is_loop == 0) && (dest_is_priv == 0)) {
  ------------------
  |  Branch (2417:6): [True: 0, False: 0]
  |  Branch (2417:29): [True: 0, False: 0]
  ------------------
 2418|      0|		dest_is_global = 1;
 2419|      0|	}
 2420|      0|#ifdef INET6
 2421|      0|	if (fam == AF_INET6) {
  ------------------
  |  Branch (2421:6): [True: 0, False: 0]
  ------------------
 2422|       |		/* ok to use deprecated addresses? */
 2423|      0|		if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) {
  ------------------
  |  |   98|      0|#define SCTP_ADDR_IFA_UNUSEABLE 0x00000008
  ------------------
  |  Branch (2423:7): [True: 0, False: 0]
  ------------------
 2424|      0|			return (NULL);
 2425|      0|		}
 2426|      0|		if (ifa->src_is_priv) {
  ------------------
  |  Branch (2426:7): [True: 0, False: 0]
  ------------------
 2427|       |			/* Special case, linklocal to loop */
 2428|      0|			if (dest_is_loop)
  ------------------
  |  Branch (2428:8): [True: 0, False: 0]
  ------------------
 2429|      0|				return (NULL);
 2430|      0|		}
 2431|      0|	}
 2432|      0|#endif
 2433|       |	/*
 2434|       |	 * Now that we know what is what, implement our table.
 2435|       |	 * This could in theory be done slicker (it used to be), but this
 2436|       |	 * is straightforward and easier to validate :-)
 2437|       |	 */
 2438|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "ifa->src_is_loop:%d dest_is_priv:%d\n",
 2439|      0|		ifa->src_is_loop,
 2440|      0|		dest_is_priv);
 2441|      0|	if ((ifa->src_is_loop == 1) && (dest_is_priv)) {
  ------------------
  |  Branch (2441:6): [True: 0, False: 0]
  |  Branch (2441:33): [True: 0, False: 0]
  ------------------
 2442|      0|		return (NULL);
 2443|      0|	}
 2444|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "ifa->src_is_loop:%d dest_is_glob:%d\n",
 2445|      0|		ifa->src_is_loop,
 2446|      0|		dest_is_global);
 2447|      0|	if ((ifa->src_is_loop == 1) && (dest_is_global)) {
  ------------------
  |  Branch (2447:6): [True: 0, False: 0]
  |  Branch (2447:33): [True: 0, False: 0]
  ------------------
 2448|      0|		return (NULL);
 2449|      0|	}
 2450|      0|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "address is acceptable\n");
 2451|       |	/* its an acceptable address */
 2452|      0|	return (ifa);
 2453|      0|}
sctp_output.c:sctp_choose_boundspecific_stcb:
 2641|  3.01k|{
 2642|  3.01k|	struct sctp_laddr *laddr, *starting_point;
 2643|  3.01k|	void *ifn;
 2644|  3.01k|	struct sctp_ifn *sctp_ifn;
 2645|  3.01k|	struct sctp_ifa *sctp_ifa, *sifa;
 2646|  3.01k|	uint8_t start_at_beginning = 0;
 2647|  3.01k|	struct sctp_vrf *vrf;
 2648|  3.01k|	uint32_t ifn_index;
 2649|       |
 2650|       |	/*
 2651|       |	 * first question, is the ifn we will emit on in our list, if so, we
 2652|       |	 * want that one.
 2653|       |	 */
 2654|  3.01k|	vrf = sctp_find_vrf(vrf_id);
 2655|  3.01k|	if (vrf == NULL)
  ------------------
  |  Branch (2655:6): [True: 0, False: 3.01k]
  ------------------
 2656|      0|		return (NULL);
 2657|       |
 2658|  3.01k|	ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro);
  ------------------
  |  |  666|  3.01k|#define SCTP_GET_IFN_VOID_FROM_ROUTE(ro) (void *)ro->ro_rt->rt_ifp
  ------------------
 2659|  3.01k|	ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro);
  ------------------
  |  |  667|  3.01k|#define SCTP_GET_IF_INDEX_FROM_ROUTE(ro) 1 /* compiles...  TODO use routing socket to determine */
  ------------------
 2660|  3.01k|	sctp_ifn = sctp_find_ifn(ifn, ifn_index);
 2661|       |
 2662|       |	/*
 2663|       |	 * first question, is the ifn we will emit on in our list?  If so,
 2664|       |	 * we want that one. First we look for a preferred. Second, we go
 2665|       |	 * for an acceptable.
 2666|       |	 */
 2667|  3.01k|	if (sctp_ifn) {
  ------------------
  |  Branch (2667:6): [True: 3.01k, False: 0]
  ------------------
 2668|       |		/* first try for a preferred address on the ep */
 2669|  3.01k|		LIST_FOREACH(sctp_ifa, &sctp_ifn->ifalist, next_ifa) {
  ------------------
  |  Branch (2669:3): [True: 3.01k, False: 3.01k]
  ------------------
 2670|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2671|       |#ifdef INET
 2672|       |			if ((sctp_ifa->address.sa.sa_family == AF_INET) &&
 2673|       |			    (prison_check_ip4(inp->ip_inp.inp.inp_cred,
 2674|       |			                      &sctp_ifa->address.sin.sin_addr) != 0)) {
 2675|       |				continue;
 2676|       |			}
 2677|       |#endif
 2678|       |#ifdef INET6
 2679|       |			if ((sctp_ifa->address.sa.sa_family == AF_INET6) &&
 2680|       |			    (prison_check_ip6(inp->ip_inp.inp.inp_cred,
 2681|       |			                      &sctp_ifa->address.sin6.sin6_addr) != 0)) {
 2682|       |				continue;
 2683|       |			}
 2684|       |#endif
 2685|       |#endif
 2686|  3.01k|			if ((sctp_ifa->localifa_flags & SCTP_ADDR_DEFER_USE) && (non_asoc_addr_ok == 0))
  ------------------
  |  |   97|  3.01k|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  |  Branch (2686:8): [True: 0, False: 3.01k]
  |  Branch (2686:60): [True: 0, False: 0]
  ------------------
 2687|      0|				continue;
 2688|  3.01k|			if (sctp_is_addr_in_ep(inp, sctp_ifa)) {
  ------------------
  |  Branch (2688:8): [True: 0, False: 3.01k]
  ------------------
 2689|      0|				sifa = sctp_is_ifa_addr_preferred(sctp_ifa, dest_is_loop, dest_is_priv, fam);
 2690|      0|				if (sifa == NULL)
  ------------------
  |  Branch (2690:9): [True: 0, False: 0]
  ------------------
 2691|      0|					continue;
 2692|      0|				if (((non_asoc_addr_ok == 0) &&
  ------------------
  |  Branch (2692:10): [True: 0, False: 0]
  ------------------
 2693|      0|				     (sctp_is_addr_restricted(stcb, sifa))) ||
  ------------------
  |  Branch (2693:10): [True: 0, False: 0]
  ------------------
 2694|      0|				    (non_asoc_addr_ok &&
  ------------------
  |  Branch (2694:10): [True: 0, False: 0]
  ------------------
 2695|      0|				     (sctp_is_addr_restricted(stcb, sifa)) &&
  ------------------
  |  Branch (2695:10): [True: 0, False: 0]
  ------------------
 2696|      0|				     (!sctp_is_addr_pending(stcb, sifa)))) {
  ------------------
  |  Branch (2696:10): [True: 0, False: 0]
  ------------------
 2697|       |					/* on the no-no list */
 2698|      0|					continue;
 2699|      0|				}
 2700|      0|				atomic_add_int(&sifa->refcount, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2701|      0|				return (sifa);
 2702|      0|			}
 2703|  3.01k|		}
 2704|       |		/* next try for an acceptable address on the ep */
 2705|  3.01k|		LIST_FOREACH(sctp_ifa, &sctp_ifn->ifalist, next_ifa) {
  ------------------
  |  Branch (2705:3): [True: 3.01k, False: 3.01k]
  ------------------
 2706|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2707|       |#ifdef INET
 2708|       |			if ((sctp_ifa->address.sa.sa_family == AF_INET) &&
 2709|       |			    (prison_check_ip4(inp->ip_inp.inp.inp_cred,
 2710|       |			                      &sctp_ifa->address.sin.sin_addr) != 0)) {
 2711|       |				continue;
 2712|       |			}
 2713|       |#endif
 2714|       |#ifdef INET6
 2715|       |			if ((sctp_ifa->address.sa.sa_family == AF_INET6) &&
 2716|       |			    (prison_check_ip6(inp->ip_inp.inp.inp_cred,
 2717|       |			                      &sctp_ifa->address.sin6.sin6_addr) != 0)) {
 2718|       |				continue;
 2719|       |			}
 2720|       |#endif
 2721|       |#endif
 2722|  3.01k|			if ((sctp_ifa->localifa_flags & SCTP_ADDR_DEFER_USE) && (non_asoc_addr_ok == 0))
  ------------------
  |  |   97|  3.01k|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  |  Branch (2722:8): [True: 0, False: 3.01k]
  |  Branch (2722:60): [True: 0, False: 0]
  ------------------
 2723|      0|				continue;
 2724|  3.01k|			if (sctp_is_addr_in_ep(inp, sctp_ifa)) {
  ------------------
  |  Branch (2724:8): [True: 0, False: 3.01k]
  ------------------
 2725|      0|				sifa= sctp_is_ifa_addr_acceptable(sctp_ifa, dest_is_loop, dest_is_priv,fam);
 2726|      0|				if (sifa == NULL)
  ------------------
  |  Branch (2726:9): [True: 0, False: 0]
  ------------------
 2727|      0|					continue;
 2728|      0|				if (((non_asoc_addr_ok == 0) &&
  ------------------
  |  Branch (2728:10): [True: 0, False: 0]
  ------------------
 2729|      0|				     (sctp_is_addr_restricted(stcb, sifa))) ||
  ------------------
  |  Branch (2729:10): [True: 0, False: 0]
  ------------------
 2730|      0|				    (non_asoc_addr_ok &&
  ------------------
  |  Branch (2730:10): [True: 0, False: 0]
  ------------------
 2731|      0|				     (sctp_is_addr_restricted(stcb, sifa)) &&
  ------------------
  |  Branch (2731:10): [True: 0, False: 0]
  ------------------
 2732|      0|				     (!sctp_is_addr_pending(stcb, sifa)))) {
  ------------------
  |  Branch (2732:10): [True: 0, False: 0]
  ------------------
 2733|       |					/* on the no-no list */
 2734|      0|					continue;
 2735|      0|				}
 2736|      0|				atomic_add_int(&sifa->refcount, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2737|      0|				return (sifa);
 2738|      0|			}
 2739|  3.01k|		}
 2740|  3.01k|	}
 2741|       |	/*
 2742|       |	 * if we can't find one like that then we must look at all
 2743|       |	 * addresses bound to pick one at first preferable then
 2744|       |	 * secondly acceptable.
 2745|       |	 */
 2746|  3.01k|	starting_point = stcb->asoc.last_used_address;
 2747|  5.03k| sctp_from_the_top:
 2748|  5.03k|	if (stcb->asoc.last_used_address == NULL) {
  ------------------
  |  Branch (2748:6): [True: 3.01k, False: 2.01k]
  ------------------
 2749|  3.01k|		start_at_beginning = 1;
 2750|  3.01k|		stcb->asoc.last_used_address = LIST_FIRST(&inp->sctp_addr_list);
 2751|  3.01k|	}
 2752|       |	/* search beginning with the last used address */
 2753|  10.0k|	for (laddr = stcb->asoc.last_used_address; laddr;
  ------------------
  |  Branch (2753:45): [True: 5.03k, False: 5.03k]
  ------------------
 2754|  5.03k|	     laddr = LIST_NEXT(laddr, sctp_nxt_addr)) {
 2755|  5.03k|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2755:7): [True: 0, False: 5.03k]
  ------------------
 2756|       |			/* address has been removed */
 2757|      0|			continue;
 2758|      0|		}
 2759|  5.03k|		if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|  5.03k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (2759:7): [True: 0, False: 5.03k]
  ------------------
 2760|       |			/* address is being deleted */
 2761|      0|			continue;
 2762|      0|		}
 2763|  5.03k|		sifa = sctp_is_ifa_addr_preferred(laddr->ifa, dest_is_loop, dest_is_priv, fam);
 2764|  5.03k|		if (sifa == NULL)
  ------------------
  |  Branch (2764:7): [True: 5.03k, False: 0]
  ------------------
 2765|  5.03k|			continue;
 2766|      0|		if (((non_asoc_addr_ok == 0) &&
  ------------------
  |  Branch (2766:8): [True: 0, False: 0]
  ------------------
 2767|      0|		     (sctp_is_addr_restricted(stcb, sifa))) ||
  ------------------
  |  Branch (2767:8): [True: 0, False: 0]
  ------------------
 2768|      0|		    (non_asoc_addr_ok &&
  ------------------
  |  Branch (2768:8): [True: 0, False: 0]
  ------------------
 2769|      0|		     (sctp_is_addr_restricted(stcb, sifa)) &&
  ------------------
  |  Branch (2769:8): [True: 0, False: 0]
  ------------------
 2770|      0|		     (!sctp_is_addr_pending(stcb, sifa)))) {
  ------------------
  |  Branch (2770:8): [True: 0, False: 0]
  ------------------
 2771|       |			/* on the no-no list */
 2772|      0|			continue;
 2773|      0|		}
 2774|      0|		stcb->asoc.last_used_address = laddr;
 2775|      0|		atomic_add_int(&sifa->refcount, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2776|      0|		return (sifa);
 2777|      0|	}
 2778|  5.03k|	if (start_at_beginning == 0) {
  ------------------
  |  Branch (2778:6): [True: 2.01k, False: 3.01k]
  ------------------
 2779|  2.01k|		stcb->asoc.last_used_address = NULL;
 2780|  2.01k|		goto sctp_from_the_top;
 2781|  2.01k|	}
 2782|       |	/* now try for any higher scope than the destination */
 2783|  3.01k|	stcb->asoc.last_used_address = starting_point;
 2784|  3.01k|	start_at_beginning = 0;
 2785|  5.03k| sctp_from_the_top2:
 2786|  5.03k|	if (stcb->asoc.last_used_address == NULL) {
  ------------------
  |  Branch (2786:6): [True: 3.01k, False: 2.01k]
  ------------------
 2787|  3.01k|		start_at_beginning = 1;
 2788|  3.01k|		stcb->asoc.last_used_address = LIST_FIRST(&inp->sctp_addr_list);
 2789|  3.01k|	}
 2790|       |	/* search beginning with the last used address */
 2791|  10.0k|	for (laddr = stcb->asoc.last_used_address; laddr;
  ------------------
  |  Branch (2791:45): [True: 5.03k, False: 5.03k]
  ------------------
 2792|  5.03k|	     laddr = LIST_NEXT(laddr, sctp_nxt_addr)) {
 2793|  5.03k|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2793:7): [True: 0, False: 5.03k]
  ------------------
 2794|       |			/* address has been removed */
 2795|      0|			continue;
 2796|      0|		}
 2797|  5.03k|		if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|  5.03k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (2797:7): [True: 0, False: 5.03k]
  ------------------
 2798|       |			/* address is being deleted */
 2799|      0|			continue;
 2800|      0|		}
 2801|  5.03k|		sifa = sctp_is_ifa_addr_acceptable(laddr->ifa, dest_is_loop,
 2802|  5.03k|						   dest_is_priv, fam);
 2803|  5.03k|		if (sifa == NULL)
  ------------------
  |  Branch (2803:7): [True: 5.03k, False: 0]
  ------------------
 2804|  5.03k|			continue;
 2805|      0|		if (((non_asoc_addr_ok == 0) &&
  ------------------
  |  Branch (2805:8): [True: 0, False: 0]
  ------------------
 2806|      0|		     (sctp_is_addr_restricted(stcb, sifa))) ||
  ------------------
  |  Branch (2806:8): [True: 0, False: 0]
  ------------------
 2807|      0|		    (non_asoc_addr_ok &&
  ------------------
  |  Branch (2807:8): [True: 0, False: 0]
  ------------------
 2808|      0|		     (sctp_is_addr_restricted(stcb, sifa)) &&
  ------------------
  |  Branch (2808:8): [True: 0, False: 0]
  ------------------
 2809|      0|		     (!sctp_is_addr_pending(stcb, sifa)))) {
  ------------------
  |  Branch (2809:8): [True: 0, False: 0]
  ------------------
 2810|       |			/* on the no-no list */
 2811|      0|			continue;
 2812|      0|		}
 2813|      0|		stcb->asoc.last_used_address = laddr;
 2814|      0|		atomic_add_int(&sifa->refcount, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2815|      0|		return (sifa);
 2816|      0|	}
 2817|  5.03k|	if (start_at_beginning == 0) {
  ------------------
  |  Branch (2817:6): [True: 2.01k, False: 3.01k]
  ------------------
 2818|  2.01k|		stcb->asoc.last_used_address = NULL;
 2819|  2.01k|		goto sctp_from_the_top2;
 2820|  2.01k|	}
 2821|  3.01k|	return (NULL);
 2822|  5.03k|}
sctp_output.c:sctp_lowlevel_chunk_output:
 4092|  52.2k|{
 4093|       |	/**
 4094|       |	 * Given a mbuf chain (via SCTP_BUF_NEXT()) that holds a packet header
 4095|       |	 * WITH an SCTPHDR but no IP header, endpoint inp and sa structure:
 4096|       |	 * - fill in the HMAC digest of any AUTH chunk in the packet.
 4097|       |	 * - calculate and fill in the SCTP checksum.
 4098|       |	 * - prepend an IP address header.
 4099|       |	 * - if boundall use INADDR_ANY.
 4100|       |	 * - if boundspecific do source address selection.
 4101|       |	 * - set fragmentation option for ipV4.
 4102|       |	 * - On return from IP output, check/adjust mtu size of output
 4103|       |	 *   interface and smallest_mtu size as well.
 4104|       |	 */
 4105|       |	/* Will need ifdefs around this */
 4106|  52.2k|	struct mbuf *newm;
 4107|  52.2k|	struct sctphdr *sctphdr;
 4108|  52.2k|	int packet_length;
 4109|  52.2k|	int ret;
 4110|  52.2k|#if defined(INET) || defined(INET6)
 4111|  52.2k|	uint32_t vrf_id;
 4112|  52.2k|#endif
 4113|  52.2k|#if defined(INET) || defined(INET6)
 4114|  52.2k|	struct mbuf *o_pak;
 4115|  52.2k|	sctp_route_t *ro = NULL;
 4116|  52.2k|	struct udphdr *udp = NULL;
 4117|  52.2k|#endif
 4118|  52.2k|	uint8_t tos_value;
 4119|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4120|       |	struct socket *so = NULL;
 4121|       |#endif
 4122|       |
 4123|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4124|       |	if (so_locked) {
 4125|       |		sctp_lock_assert(SCTP_INP_SO(inp));
 4126|       |		SCTP_TCB_LOCK_ASSERT(stcb);
 4127|       |	} else {
 4128|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
 4129|       |	}
 4130|       |#endif
 4131|  52.2k|	if ((net) && (net->dest_state & SCTP_ADDR_OUT_OF_SCOPE)) {
  ------------------
  |  |  486|  52.2k|#define SCTP_ADDR_OUT_OF_SCOPE		0x080
  ------------------
  |  Branch (4131:6): [True: 52.2k, False: 0]
  |  Branch (4131:15): [True: 2.03k, False: 50.2k]
  ------------------
 4132|  2.03k|		SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EFAULT);
 4133|  2.03k|		sctp_m_freem(m);
  ------------------
  |  |   52|  2.03k|#define sctp_m_freem m_freem
  ------------------
 4134|  2.03k|		return (EFAULT);
 4135|  2.03k|	}
 4136|  50.2k|#if defined(INET) || defined(INET6)
 4137|  50.2k|	if (stcb) {
  ------------------
  |  Branch (4137:6): [True: 50.2k, False: 0]
  ------------------
 4138|  50.2k|		vrf_id = stcb->asoc.vrf_id;
 4139|  50.2k|	} else {
 4140|      0|		vrf_id = inp->def_vrf_id;
 4141|      0|	}
 4142|  50.2k|#endif
 4143|       |	/* fill in the HMAC digest for any AUTH chunk in the packet */
 4144|  50.2k|	if ((auth != NULL) && (stcb != NULL)) {
  ------------------
  |  Branch (4144:6): [True: 772, False: 49.4k]
  |  Branch (4144:24): [True: 772, False: 0]
  ------------------
 4145|    772|		sctp_fill_hmac_digest_m(m, auth_offset, auth, stcb, auth_keyid);
 4146|    772|	}
 4147|       |
 4148|  50.2k|	if (net) {
  ------------------
  |  Branch (4148:6): [True: 50.2k, False: 0]
  ------------------
 4149|  50.2k|		tos_value = net->dscp;
 4150|  50.2k|	} else if (stcb) {
  ------------------
  |  Branch (4150:13): [True: 0, False: 0]
  ------------------
 4151|      0|		tos_value = stcb->asoc.default_dscp;
 4152|      0|	} else {
 4153|      0|		tos_value = inp->sctp_ep.default_dscp;
 4154|      0|	}
 4155|       |
 4156|  50.2k|	switch (to->sa_family) {
 4157|      0|#ifdef INET
 4158|  1.03k|	case AF_INET:
  ------------------
  |  Branch (4158:2): [True: 1.03k, False: 49.1k]
  ------------------
 4159|  1.03k|	{
 4160|  1.03k|		struct ip *ip = NULL;
 4161|  1.03k|		sctp_route_t iproute;
 4162|  1.03k|		int len;
 4163|       |
 4164|  1.03k|		len = SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|  1.03k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  1.03k|                              sizeof(struct sctphdr))
  ------------------
 4165|  1.03k|		if (port) {
  ------------------
  |  Branch (4165:7): [True: 0, False: 1.03k]
  ------------------
 4166|      0|			len += sizeof(struct udphdr);
 4167|      0|		}
 4168|  1.03k|		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  1.03k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  1.03k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4169|  1.03k|		if (newm == NULL) {
  ------------------
  |  Branch (4169:7): [True: 0, False: 1.03k]
  ------------------
 4170|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4171|      0|			SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 4172|      0|			return (ENOMEM);
 4173|      0|		}
 4174|  1.03k|		SCTP_ALIGN_TO_END(newm, len);
  ------------------
  |  |  812|  1.03k|#define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  221|  1.03k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  234|  2.06k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |  |  Branch (812:38): [True: 1.03k, False: 0]
  |  |  ------------------
  |  |  813|  1.03k|                                     MH_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  399|  1.03k|#define	MH_ALIGN(m, len) do {						\
  |  |  |  |  400|  1.03k|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.03k|	do {                         \
  |  |  |  |  |  |  113|  2.06k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:9): [True: 1.03k, False: 0]
  |  |  |  |  |  |  |  Branch (113:9): [True: 1.03k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.03k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.03k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  401|  1.03k|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  |  |  402|  1.03k|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.03k|	do {                         \
  |  |  |  |  |  |  113|  1.03k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.03k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.03k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.03k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  403|  1.03k|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  |  |  404|  1.03k|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.03k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  1.03k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  138|  1.03k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   47|  1.03k|#define MSIZE 256
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  405|  1.03k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (405:10): [Folded, False: 1.03k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  814|  1.03k|                                  } else if ((m->m_flags & M_EXT) == 0) { \
  |  |  ------------------
  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |                                                 } else if ((m->m_flags & M_EXT) == 0) { \
  |  |  ------------------
  |  |  |  |  233|      0|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (814:46): [True: 0, False: 0]
  |  |  ------------------
  |  |  815|      0|                                     M_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  387|      0|#define	M_ALIGN(m, len) do {						\
  |  |  |  |  388|      0|        KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)),                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  389|      0|                ("%s: M_ALIGN not normal mbuf", __func__));             \
  |  |  |  |  390|      0|        KASSERT((m)->m_data == (m)->m_dat,                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  391|      0|                ("%s: M_ALIGN not a virgin mbuf", __func__));           \
  |  |  |  |  392|      0|	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  393|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (393:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  816|      0|                                  }
  ------------------
 4175|  1.03k|		SCTP_BUF_LEN(newm) = len;
  ------------------
  |  |  801|  1.03k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.03k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4176|  1.03k|		SCTP_BUF_NEXT(newm) = m;
  ------------------
  |  |  802|  1.03k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  1.03k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4177|  1.03k|		m = newm;
 4178|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4179|       |		if (net != NULL) {
 4180|       |			m->m_pkthdr.flowid = net->flowid;
 4181|       |			M_HASHTYPE_SET(m, net->flowtype);
 4182|       |		} else {
 4183|       |			m->m_pkthdr.flowid = mflowid;
 4184|       |			M_HASHTYPE_SET(m, mflowtype);
 4185|       | 		}
 4186|       |#endif
 4187|  1.03k|		packet_length = sctp_calculate_len(m);
 4188|  1.03k|		ip = mtod(m, struct ip *);
  ------------------
  |  |   96|  1.03k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.03k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4189|  1.03k|		ip->ip_v = IPVERSION;
 4190|  1.03k|		ip->ip_hl = (sizeof(struct ip) >> 2);
 4191|  1.03k|		if (tos_value == 0) {
  ------------------
  |  Branch (4191:7): [True: 1.03k, False: 0]
  ------------------
 4192|       |			/*
 4193|       |			 * This means especially, that it is not set at the
 4194|       |			 * SCTP layer. So use the value from the IP layer.
 4195|       |			 */
 4196|  1.03k|			tos_value = inp->ip_inp.inp.inp_ip_tos;
  ------------------
  |  |  148|  1.03k|#define	inp_ip_tos	inp_depend4.inp4_ip_tos
  ------------------
 4197|  1.03k|		}
 4198|  1.03k|		tos_value &= 0xfc;
 4199|  1.03k|		if (ecn_ok) {
  ------------------
  |  Branch (4199:7): [True: 6, False: 1.02k]
  ------------------
 4200|      6|			tos_value |= sctp_get_ect(stcb);
 4201|      6|		}
 4202|  1.03k|		if ((nofragment_flag) && (port == 0)) {
  ------------------
  |  Branch (4202:7): [True: 807, False: 226]
  |  Branch (4202:28): [True: 807, False: 0]
  ------------------
 4203|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4204|       |			ip->ip_off = htons(IP_DF);
 4205|       |#elif defined(WITH_CONVERT_IP_OFF) || defined(__APPLE__)
 4206|       |			ip->ip_off = IP_DF;
 4207|       |#else
 4208|    807|			ip->ip_off = htons(IP_DF);
 4209|    807|#endif
 4210|    807|		} else {
 4211|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4212|       |			ip->ip_off = htons(0);
 4213|       |#else
 4214|    226|			ip->ip_off = 0;
 4215|    226|#endif
 4216|    226|		}
 4217|  1.03k|#if defined(__Userspace__)
 4218|  1.03k|		ip->ip_id = htons(SCTP_IP_ID(inp)++);
 4219|       |#elif defined(__FreeBSD__)
 4220|       |		/* FreeBSD has a function for ip_id's */
 4221|       |		ip_fillid(ip, V_ip_random_id);
 4222|       |#elif defined(__APPLE__)
 4223|       |#if RANDOM_IP_ID
 4224|       |		ip->ip_id = ip_randomid();
 4225|       |#else
 4226|       |		ip->ip_id = htons(ip_id++);
 4227|       |#endif
 4228|       |#else
 4229|       |		ip->ip_id = SCTP_IP_ID(inp)++;
 4230|       |#endif
 4231|       |
 4232|  1.03k|		ip->ip_ttl = inp->ip_inp.inp.inp_ip_ttl;
 4233|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4234|       |		ip->ip_len = htons(packet_length);
 4235|       |#else
 4236|  1.03k|		ip->ip_len = packet_length;
 4237|  1.03k|#endif
 4238|  1.03k|		ip->ip_tos = tos_value;
 4239|  1.03k|		if (port) {
  ------------------
  |  Branch (4239:7): [True: 0, False: 1.03k]
  ------------------
 4240|      0|			ip->ip_p = IPPROTO_UDP;
 4241|  1.03k|		} else {
 4242|  1.03k|			ip->ip_p = IPPROTO_SCTP;
 4243|  1.03k|		}
 4244|  1.03k|		ip->ip_sum = 0;
 4245|  1.03k|		if (net == NULL) {
  ------------------
  |  Branch (4245:7): [True: 0, False: 1.03k]
  ------------------
 4246|      0|			ro = &iproute;
 4247|      0|			memset(&iproute, 0, sizeof(iproute));
 4248|       |#ifdef HAVE_SA_LEN
 4249|       |			memcpy(&ro->ro_dst, to, to->sa_len);
 4250|       |#else
 4251|      0|			memcpy(&ro->ro_dst, to, sizeof(struct sockaddr_in));
 4252|      0|#endif
 4253|  1.03k|		} else {
 4254|  1.03k|			ro = (sctp_route_t *)&net->ro;
 4255|  1.03k|		}
 4256|       |		/* Now the address selection part */
 4257|  1.03k|		ip->ip_dst.s_addr = ((struct sockaddr_in *)to)->sin_addr.s_addr;
 4258|       |
 4259|       |		/* call the routine to select the src address */
 4260|  1.03k|		if (net && out_of_asoc_ok == 0) {
  ------------------
  |  Branch (4260:7): [True: 1.03k, False: 0]
  |  Branch (4260:14): [True: 1.03k, False: 0]
  ------------------
 4261|  1.03k|			if (net->ro._s_addr && (net->ro._s_addr->localifa_flags & (SCTP_BEING_DELETED|SCTP_ADDR_IFA_UNUSEABLE))) {
  ------------------
  |  |   90|      0|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
              			if (net->ro._s_addr && (net->ro._s_addr->localifa_flags & (SCTP_BEING_DELETED|SCTP_ADDR_IFA_UNUSEABLE))) {
  ------------------
  |  |   98|      0|#define SCTP_ADDR_IFA_UNUSEABLE 0x00000008
  ------------------
  |  Branch (4261:8): [True: 0, False: 1.03k]
  |  Branch (4261:27): [True: 0, False: 0]
  ------------------
 4262|      0|				sctp_free_ifa(net->ro._s_addr);
 4263|      0|				net->ro._s_addr = NULL;
 4264|      0|				net->src_addr_selected = 0;
 4265|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4266|       |				RO_NHFREE(ro);
 4267|       |#else
 4268|      0|				if (ro->ro_rt) {
  ------------------
  |  Branch (4268:9): [True: 0, False: 0]
  ------------------
 4269|      0|					RTFREE(ro->ro_rt);
  ------------------
  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  ------------------
  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  ------------------
  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  122|      0|		}						\
  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  129|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4270|      0|					ro->ro_rt = NULL;
 4271|      0|				}
 4272|      0|#endif
 4273|      0|			}
 4274|  1.03k|			if (net->src_addr_selected == 0) {
  ------------------
  |  Branch (4274:8): [True: 1.03k, False: 0]
  ------------------
 4275|       |				/* Cache the source address */
 4276|  1.03k|				net->ro._s_addr = sctp_source_address_selection(inp,stcb,
 4277|  1.03k|										ro, net, 0,
 4278|  1.03k|										vrf_id);
 4279|  1.03k|				net->src_addr_selected = 1;
 4280|  1.03k|			}
 4281|  1.03k|			if (net->ro._s_addr == NULL) {
  ------------------
  |  Branch (4281:8): [True: 1.03k, False: 0]
  ------------------
 4282|       |				/* No route to host */
 4283|  1.03k|				net->src_addr_selected = 0;
 4284|  1.03k|				sctp_handle_no_route(stcb, net, so_locked);
 4285|  1.03k|				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4286|  1.03k|				sctp_m_freem(m);
  ------------------
  |  |   52|  1.03k|#define sctp_m_freem m_freem
  ------------------
 4287|  1.03k|				return (EHOSTUNREACH);
 4288|  1.03k|			}
 4289|      0|			ip->ip_src = net->ro._s_addr->address.sin.sin_addr;
 4290|      0|		} else {
 4291|      0|			if (over_addr == NULL) {
  ------------------
  |  Branch (4291:8): [True: 0, False: 0]
  ------------------
 4292|      0|				struct sctp_ifa *_lsrc;
 4293|       |
 4294|      0|				_lsrc = sctp_source_address_selection(inp, stcb, ro,
 4295|      0|				                                      net,
 4296|      0|				                                      out_of_asoc_ok,
 4297|      0|				                                      vrf_id);
 4298|      0|				if (_lsrc == NULL) {
  ------------------
  |  Branch (4298:9): [True: 0, False: 0]
  ------------------
 4299|      0|					sctp_handle_no_route(stcb, net, so_locked);
 4300|      0|					SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4301|      0|					sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4302|      0|					return (EHOSTUNREACH);
 4303|      0|				}
 4304|      0|				ip->ip_src = _lsrc->address.sin.sin_addr;
 4305|      0|				sctp_free_ifa(_lsrc);
 4306|      0|			} else {
 4307|      0|				ip->ip_src = over_addr->sin.sin_addr;
 4308|      0|				SCTP_RTALLOC(ro, vrf_id, inp->fibnum);
  ------------------
  |  |  871|      0|#define SCTP_RTALLOC(ro, vrf_id, fibnum) sctp_userspace_rtalloc((sctp_route_t *)ro)
  ------------------
 4309|      0|			}
 4310|      0|		}
 4311|      0|		if (port) {
  ------------------
  |  Branch (4311:7): [True: 0, False: 0]
  ------------------
 4312|      0|			if (htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)) == 0) {
  ------------------
  |  Branch (4312:8): [True: 0, False: 0]
  ------------------
 4313|      0|				sctp_handle_no_route(stcb, net, so_locked);
 4314|      0|				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4315|      0|				sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4316|      0|				return (EHOSTUNREACH);
 4317|      0|			}
 4318|      0|			udp = (struct udphdr *)((caddr_t)ip + sizeof(struct ip));
 4319|      0|			udp->uh_sport = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port));
 4320|      0|			udp->uh_dport = port;
 4321|      0|			udp->uh_ulen = htons((uint16_t)(packet_length - sizeof(struct ip)));
 4322|       |#if !defined(__Userspace__)
 4323|       |#if defined(__FreeBSD__)
 4324|       |			if (V_udp_cksum) {
 4325|       |				udp->uh_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP));
 4326|       |			} else {
 4327|       |				udp->uh_sum = 0;
 4328|       |			}
 4329|       |#else
 4330|       |			udp->uh_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP));
 4331|       |#endif
 4332|       |#else
 4333|      0|			udp->uh_sum = 0;
 4334|      0|#endif
 4335|      0|			sctphdr = (struct sctphdr *)((caddr_t)udp + sizeof(struct udphdr));
 4336|      0|		} else {
 4337|      0|			sctphdr = (struct sctphdr *)((caddr_t)ip + sizeof(struct ip));
 4338|      0|		}
 4339|       |
 4340|      0|		sctphdr->src_port = src_port;
 4341|      0|		sctphdr->dest_port = dest_port;
 4342|      0|		sctphdr->v_tag = v_tag;
 4343|      0|		sctphdr->checksum = 0;
 4344|       |
 4345|       |		/*
 4346|       |		 * If source address selection fails and we find no route
 4347|       |		 * then the ip_output should fail as well with a
 4348|       |		 * NO_ROUTE_TO_HOST type error. We probably should catch
 4349|       |		 * that somewhere and abort the association right away
 4350|       |		 * (assuming this is an INIT being sent).
 4351|       |		 */
 4352|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4353|       |		if (ro->ro_nh == NULL) {
 4354|       |#else
 4355|      0|		if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (4355:7): [True: 0, False: 0]
  ------------------
 4356|      0|#endif
 4357|       |			/*
 4358|       |			 * src addr selection failed to find a route (or
 4359|       |			 * valid source addr), so we can't get there from
 4360|       |			 * here (yet)!
 4361|       |			 */
 4362|      0|			sctp_handle_no_route(stcb, net, so_locked);
 4363|      0|			SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4364|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4365|      0|			return (EHOSTUNREACH);
 4366|      0|		}
 4367|      0|		if (ro != &iproute) {
  ------------------
  |  Branch (4367:7): [True: 0, False: 0]
  ------------------
 4368|      0|			memcpy(&iproute, ro, sizeof(*ro));
 4369|      0|		}
 4370|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "Calling ipv4 output routine from low level src addr:%x\n",
 4371|      0|			(uint32_t) (ntohl(ip->ip_src.s_addr)));
 4372|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "Destination is %x\n",
 4373|      0|			(uint32_t)(ntohl(ip->ip_dst.s_addr)));
 4374|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4375|       |		SCTPDBG(SCTP_DEBUG_OUTPUT3, "RTP route is %p through\n",
 4376|       |			(void *)ro->ro_nh);
 4377|       |#else
 4378|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "RTP route is %p through\n",
 4379|      0|			(void *)ro->ro_rt);
 4380|      0|#endif
 4381|       |
 4382|      0|		if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) {
  ------------------
  |  |  922|      0|#define SCTP_GET_HEADER_FOR_OUTPUT(o_pak) 0
  |  |  ------------------
  |  |  |  Branch (922:43): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4383|       |			/* failed to prepend data, give up */
 4384|      0|			SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 4385|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4386|      0|			return (ENOMEM);
 4387|      0|		}
 4388|      0|		SCTP_ATTACH_CHAIN(o_pak, m, packet_length);
  ------------------
  |  |  931|      0|#define SCTP_ATTACH_CHAIN(pak, m, packet_length) do { \
  |  |  932|      0|                                                  pak = m; \
  |  |  933|      0|                                                  pak->m_pkthdr.len = packet_length; \
  |  |  ------------------
  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  |  |  934|      0|                          } while(0)
  |  |  ------------------
  |  |  |  Branch (934:35): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4389|      0|		if (port) {
  ------------------
  |  Branch (4389:7): [True: 0, False: 0]
  ------------------
 4390|      0|			if (use_zero_crc) {
  ------------------
  |  Branch (4390:8): [True: 0, False: 0]
  ------------------
 4391|      0|				SCTP_STAT_INCR(sctps_sendzerocrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4392|      0|			} else {
 4393|      0|				sctphdr->checksum = sctp_calculate_cksum(m, sizeof(struct ip) + sizeof(struct udphdr));
 4394|      0|				SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4395|      0|			}
 4396|       |#if !defined(__Userspace__)
 4397|       |#if defined(__FreeBSD__)
 4398|       |			if (V_udp_cksum) {
 4399|       |				SCTP_ENABLE_UDP_CSUM(o_pak);
 4400|       |			}
 4401|       |#else
 4402|       |			SCTP_ENABLE_UDP_CSUM(o_pak);
 4403|       |#endif
 4404|       |#endif
 4405|      0|		} else {
 4406|      0|			if (use_zero_crc) {
  ------------------
  |  Branch (4406:8): [True: 0, False: 0]
  ------------------
 4407|      0|				SCTP_STAT_INCR(sctps_sendzerocrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4408|      0|			} else {
 4409|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4410|       |				m->m_pkthdr.csum_flags = CSUM_SCTP;
 4411|       |				m->m_pkthdr.csum_data = offsetof(struct sctphdr, checksum);
 4412|       |				SCTP_STAT_INCR(sctps_sendhwcrc);
 4413|       |#else
 4414|      0|				if (!(SCTP_BASE_SYSCTL(sctp_no_csum_on_loopback) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4415|      0|				      (stcb) && (stcb->asoc.scope.loopback_scope))) {
  ------------------
  |  Branch (4415:11): [True: 0, False: 0]
  |  Branch (4415:21): [True: 0, False: 0]
  ------------------
 4416|      0|					sctphdr->checksum = sctp_calculate_cksum(m, sizeof(struct ip));
 4417|      0|					SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4418|      0|				} else {
 4419|      0|					SCTP_STAT_INCR(sctps_sendhwcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4420|      0|				}
 4421|      0|#endif
 4422|      0|			}
 4423|      0|		}
 4424|       |#ifdef SCTP_PACKET_LOGGING
 4425|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING)
 4426|       |			sctp_packet_log(o_pak);
 4427|       |#endif
 4428|       |		/* send it out.  table id is taken from stcb */
 4429|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4430|       |		if ((SCTP_BASE_SYSCTL(sctp_output_unlocked)) && (so_locked)) {
 4431|       |			so = SCTP_INP_SO(inp);
 4432|       |			SCTP_SOCKET_UNLOCK(so, 0);
 4433|       |		}
 4434|       |#endif
 4435|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4436|       |		SCTP_PROBE5(send, NULL, stcb, ip, stcb, sctphdr);
 4437|       |#endif
 4438|      0|		SCTP_IP_OUTPUT(ret, o_pak, ro, inp, vrf_id);
  ------------------
  |  | 1056|      0|#define SCTP_IP_OUTPUT(result, o_pak, ro, inp, vrf_id) sctp_userspace_ip_output(&result, o_pak, ro, inp, vrf_id);
  ------------------
 4439|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4440|       |		if ((SCTP_BASE_SYSCTL(sctp_output_unlocked)) && (so_locked)) {
 4441|       |			atomic_add_int(&stcb->asoc.refcnt, 1);
 4442|       |			SCTP_TCB_UNLOCK(stcb);
 4443|       |			SCTP_SOCKET_LOCK(so, 0);
 4444|       |			SCTP_TCB_LOCK(stcb);
 4445|       |			atomic_subtract_int(&stcb->asoc.refcnt, 1);
 4446|       |		}
 4447|       |#endif
 4448|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4449|       |		if (port) {
 4450|       |			UDPSTAT_INC(udps_opackets);
 4451|       |		}
 4452|       |#endif
 4453|      0|		SCTP_STAT_INCR(sctps_sendpackets);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4454|      0|		SCTP_STAT_INCR_COUNTER64(sctps_outpackets);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4455|      0|		if (ret)
  ------------------
  |  Branch (4455:7): [True: 0, False: 0]
  ------------------
 4456|      0|			SCTP_STAT_INCR(sctps_senderrors);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4457|       |
 4458|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "IP output returns %d\n", ret);
 4459|      0|		if (net == NULL) {
  ------------------
  |  Branch (4459:7): [True: 0, False: 0]
  ------------------
 4460|       |			/* free tempy routes */
 4461|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4462|       |			RO_NHFREE(ro);
 4463|       |#else
 4464|      0|			if (ro->ro_rt) {
  ------------------
  |  Branch (4464:8): [True: 0, False: 0]
  ------------------
 4465|      0|				RTFREE(ro->ro_rt);
  ------------------
  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  ------------------
  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  ------------------
  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  122|      0|		}						\
  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  129|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4466|      0|				ro->ro_rt = NULL;
 4467|      0|			}
 4468|      0|#endif
 4469|      0|		} else {
 4470|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4471|       |			if ((ro->ro_nh != NULL) && (net->ro._s_addr) &&
 4472|       |#else
 4473|      0|			if ((ro->ro_rt != NULL) && (net->ro._s_addr) &&
  ------------------
  |  Branch (4473:8): [True: 0, False: 0]
  |  Branch (4473:31): [True: 0, False: 0]
  ------------------
 4474|      0|#endif
 4475|      0|			    ((net->dest_state & SCTP_ADDR_NO_PMTUD) == 0)) {
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
  |  Branch (4475:8): [True: 0, False: 0]
  ------------------
 4476|      0|				uint32_t mtu;
 4477|       |
 4478|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4479|       |				mtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, ro->ro_nh);
 4480|       |#else
 4481|      0|				mtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, ro->ro_rt);
  ------------------
  |  |  894|      0|#define SCTP_GATHER_MTU_FROM_ROUTE(sctp_ifa, sa, rt) ((rt != NULL) ? rt->rt_rmx.rmx_mtu : 0)
  |  |  ------------------
  |  |  |  Branch (894:55): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4482|      0|#endif
 4483|      0|				if (mtu > 0) {
  ------------------
  |  Branch (4483:9): [True: 0, False: 0]
  ------------------
 4484|      0|					if (net->port) {
  ------------------
  |  Branch (4484:10): [True: 0, False: 0]
  ------------------
 4485|      0|						mtu -= sizeof(struct udphdr);
 4486|      0|					}
 4487|      0|					if (mtu < net->mtu) {
  ------------------
  |  Branch (4487:10): [True: 0, False: 0]
  ------------------
 4488|      0|						net->mtu = mtu;
 4489|      0|						if ((stcb != NULL) && (stcb->asoc.smallest_mtu > mtu)) {
  ------------------
  |  Branch (4489:11): [True: 0, False: 0]
  |  Branch (4489:29): [True: 0, False: 0]
  ------------------
 4490|      0|							sctp_pathmtu_adjustment(stcb, mtu, true);
 4491|      0|						}
 4492|      0|					}
 4493|      0|				}
 4494|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4495|       |			} else if (ro->ro_nh == NULL) {
 4496|       |#else
 4497|      0|			} else if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (4497:15): [True: 0, False: 0]
  ------------------
 4498|      0|#endif
 4499|       |				/* route was freed */
 4500|      0|				if (net->ro._s_addr &&
  ------------------
  |  Branch (4500:9): [True: 0, False: 0]
  ------------------
 4501|      0|				    net->src_addr_selected) {
  ------------------
  |  Branch (4501:9): [True: 0, False: 0]
  ------------------
 4502|      0|					sctp_free_ifa(net->ro._s_addr);
 4503|      0|					net->ro._s_addr = NULL;
 4504|      0|				}
 4505|      0|				net->src_addr_selected = 0;
 4506|      0|			}
 4507|      0|		}
 4508|      0|		return (ret);
 4509|      0|	}
 4510|      0|#endif
 4511|      0|#ifdef INET6
 4512|  1.97k|	case AF_INET6:
  ------------------
  |  Branch (4512:2): [True: 1.97k, False: 48.2k]
  ------------------
 4513|  1.97k|	{
 4514|  1.97k|		uint32_t flowlabel, flowinfo;
 4515|  1.97k|		struct ip6_hdr *ip6h;
 4516|  1.97k|		struct route_in6 ip6route;
 4517|       |#if !defined(__Userspace__)
 4518|       |		struct ifnet *ifp;
 4519|       |#endif
 4520|  1.97k|		struct sockaddr_in6 *sin6, tmp, *lsa6, lsa6_tmp;
 4521|  1.97k|		int prev_scope = 0;
 4522|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4523|       |		struct sockaddr_in6 lsa6_storage;
 4524|       |		int error;
 4525|       |#endif
 4526|  1.97k|		u_short prev_port = 0;
 4527|  1.97k|		int len;
 4528|       |
 4529|  1.97k|		if (net) {
  ------------------
  |  Branch (4529:7): [True: 1.97k, False: 0]
  ------------------
 4530|  1.97k|			flowlabel = net->flowlabel;
 4531|  1.97k|		} else if (stcb) {
  ------------------
  |  Branch (4531:14): [True: 0, False: 0]
  ------------------
 4532|      0|			flowlabel = stcb->asoc.default_flowlabel;
 4533|      0|		} else {
 4534|      0|			flowlabel = inp->sctp_ep.default_flowlabel;
 4535|      0|		}
 4536|  1.97k|		if (flowlabel == 0) {
  ------------------
  |  Branch (4536:7): [True: 1.97k, False: 0]
  ------------------
 4537|       |			/*
 4538|       |			 * This means especially, that it is not set at the
 4539|       |			 * SCTP layer. So use the value from the IP layer.
 4540|       |			 */
 4541|       |#if defined(__APPLE__) && !defined(__Userspace__) && (!defined(APPLE_LEOPARD) && !defined(APPLE_SNOWLEOPARD) && !defined(APPLE_LION) && !defined(APPLE_MOUNTAINLION))
 4542|       |			flowlabel = ntohl(inp->ip_inp.inp.inp_flow);
 4543|       |#else
 4544|  1.97k|			flowlabel = ntohl(((struct inpcb *)inp)->inp_flow);
 4545|  1.97k|#endif
 4546|  1.97k|		}
 4547|  1.97k|		flowlabel &= 0x000fffff;
 4548|  1.97k|		len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  1.97k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  1.97k|                           sizeof(struct sctphdr))
  ------------------
 4549|  1.97k|		if (port) {
  ------------------
  |  Branch (4549:7): [True: 0, False: 1.97k]
  ------------------
 4550|      0|			len += sizeof(struct udphdr);
 4551|      0|		}
 4552|  1.97k|		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  1.97k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  1.97k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4553|  1.97k|		if (newm == NULL) {
  ------------------
  |  Branch (4553:7): [True: 0, False: 1.97k]
  ------------------
 4554|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4555|      0|			SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 4556|      0|			return (ENOMEM);
 4557|      0|		}
 4558|  1.97k|		SCTP_ALIGN_TO_END(newm, len);
  ------------------
  |  |  812|  1.97k|#define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  221|  1.97k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  234|  3.95k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |  |  Branch (812:38): [True: 1.97k, False: 0]
  |  |  ------------------
  |  |  813|  1.97k|                                     MH_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  399|  1.97k|#define	MH_ALIGN(m, len) do {						\
  |  |  |  |  400|  1.97k|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.97k|	do {                         \
  |  |  |  |  |  |  113|  3.95k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:9): [True: 1.97k, False: 0]
  |  |  |  |  |  |  |  Branch (113:9): [True: 1.97k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.97k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.97k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  401|  1.97k|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  |  |  402|  1.97k|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.97k|	do {                         \
  |  |  |  |  |  |  113|  1.97k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.97k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.97k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.97k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  403|  1.97k|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  |  |  404|  1.97k|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.97k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  1.97k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  138|  1.97k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   47|  1.97k|#define MSIZE 256
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  405|  1.97k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (405:10): [Folded, False: 1.97k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  814|  1.97k|                                  } else if ((m->m_flags & M_EXT) == 0) { \
  |  |  ------------------
  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |                                                 } else if ((m->m_flags & M_EXT) == 0) { \
  |  |  ------------------
  |  |  |  |  233|      0|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (814:46): [True: 0, False: 0]
  |  |  ------------------
  |  |  815|      0|                                     M_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  387|      0|#define	M_ALIGN(m, len) do {						\
  |  |  |  |  388|      0|        KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)),                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  389|      0|                ("%s: M_ALIGN not normal mbuf", __func__));             \
  |  |  |  |  390|      0|        KASSERT((m)->m_data == (m)->m_dat,                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  391|      0|                ("%s: M_ALIGN not a virgin mbuf", __func__));           \
  |  |  |  |  392|      0|	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  393|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (393:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  816|      0|                                  }
  ------------------
 4559|  1.97k|		SCTP_BUF_LEN(newm) = len;
  ------------------
  |  |  801|  1.97k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.97k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4560|  1.97k|		SCTP_BUF_NEXT(newm) = m;
  ------------------
  |  |  802|  1.97k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  1.97k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4561|  1.97k|		m = newm;
 4562|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4563|       |		if (net != NULL) {
 4564|       |			m->m_pkthdr.flowid = net->flowid;
 4565|       |			M_HASHTYPE_SET(m, net->flowtype);
 4566|       |		} else {
 4567|       |			m->m_pkthdr.flowid = mflowid;
 4568|       |			M_HASHTYPE_SET(m, mflowtype);
 4569|       | 		}
 4570|       |#endif
 4571|  1.97k|		packet_length = sctp_calculate_len(m);
 4572|       |
 4573|  1.97k|		ip6h = mtod(m, struct ip6_hdr *);
  ------------------
  |  |   96|  1.97k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.97k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4574|       |		/* protect *sin6 from overwrite */
 4575|  1.97k|		sin6 = (struct sockaddr_in6 *)to;
 4576|  1.97k|		tmp = *sin6;
 4577|  1.97k|		sin6 = &tmp;
 4578|       |
 4579|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4580|       |		/* KAME hack: embed scopeid */
 4581|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4582|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
 4583|       |		if (in6_embedscope(&sin6->sin6_addr, sin6, NULL, NULL) != 0)
 4584|       |#else
 4585|       |		if (in6_embedscope(&sin6->sin6_addr, sin6, NULL, NULL, NULL) != 0)
 4586|       |#endif
 4587|       |#elif defined(SCTP_KAME)
 4588|       |		if (sa6_embedscope(sin6, MODULE_GLOBAL(ip6_use_defzone)) != 0)
 4589|       |#else
 4590|       |		if (in6_embedscope(&sin6->sin6_addr, sin6) != 0)
 4591|       |#endif
 4592|       |		{
 4593|       |			SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EINVAL);
 4594|       |			sctp_m_freem(m);
 4595|       |			return (EINVAL);
 4596|       |		}
 4597|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 4598|  1.97k|		if (net == NULL) {
  ------------------
  |  Branch (4598:7): [True: 0, False: 1.97k]
  ------------------
 4599|      0|			memset(&ip6route, 0, sizeof(ip6route));
 4600|      0|			ro = (sctp_route_t *)&ip6route;
 4601|       |#ifdef HAVE_SIN6_LEN
 4602|       |			memcpy(&ro->ro_dst, sin6, sin6->sin6_len);
 4603|       |#else
 4604|      0|			memcpy(&ro->ro_dst, sin6, sizeof(struct sockaddr_in6));
 4605|      0|#endif
 4606|  1.97k|		} else {
 4607|  1.97k|			ro = (sctp_route_t *)&net->ro;
 4608|  1.97k|		}
 4609|       |		/*
 4610|       |		 * We assume here that inp_flow is in host byte order within
 4611|       |		 * the TCB!
 4612|       |		 */
 4613|  1.97k|		if (tos_value == 0) {
  ------------------
  |  Branch (4613:7): [True: 1.97k, False: 0]
  ------------------
 4614|       |			/*
 4615|       |			 * This means especially, that it is not set at the
 4616|       |			 * SCTP layer. So use the value from the IP layer.
 4617|       |			 */
 4618|       |#if defined(__APPLE__) && !defined(__Userspace__) && (!defined(APPLE_LEOPARD) && !defined(APPLE_SNOWLEOPARD) && !defined(APPLE_LION) && !defined(APPLE_MOUNTAINLION))
 4619|       |			tos_value = (ntohl(inp->ip_inp.inp.inp_flow) >> 20) & 0xff;
 4620|       |#else
 4621|  1.97k|			tos_value = (ntohl(((struct inpcb *)inp)->inp_flow) >> 20) & 0xff;
 4622|  1.97k|#endif
 4623|  1.97k|		}
 4624|  1.97k|		tos_value &= 0xfc;
 4625|  1.97k|		if (ecn_ok) {
  ------------------
  |  Branch (4625:7): [True: 65, False: 1.91k]
  ------------------
 4626|     65|			tos_value |= sctp_get_ect(stcb);
 4627|     65|		}
 4628|  1.97k|		flowinfo = 0x06;
 4629|  1.97k|		flowinfo <<= 8;
 4630|  1.97k|		flowinfo |= tos_value;
 4631|  1.97k|		flowinfo <<= 20;
 4632|  1.97k|		flowinfo |= flowlabel;
 4633|  1.97k|		ip6h->ip6_flow = htonl(flowinfo);
 4634|  1.97k|		if (port) {
  ------------------
  |  Branch (4634:7): [True: 0, False: 1.97k]
  ------------------
 4635|      0|			ip6h->ip6_nxt = IPPROTO_UDP;
 4636|  1.97k|		} else {
 4637|  1.97k|			ip6h->ip6_nxt = IPPROTO_SCTP;
 4638|  1.97k|		}
 4639|  1.97k|		ip6h->ip6_plen = htons((uint16_t)(packet_length - sizeof(struct ip6_hdr)));
 4640|  1.97k|		ip6h->ip6_dst = sin6->sin6_addr;
 4641|       |
 4642|       |		/*
 4643|       |		 * Add SRC address selection here: we can only reuse to a
 4644|       |		 * limited degree the kame src-addr-sel, since we can try
 4645|       |		 * their selection but it may not be bound.
 4646|       |		 */
 4647|  1.97k|		memset(&lsa6_tmp, 0, sizeof(lsa6_tmp));
 4648|  1.97k|		lsa6_tmp.sin6_family = AF_INET6;
 4649|       |#ifdef HAVE_SIN6_LEN
 4650|       |		lsa6_tmp.sin6_len = sizeof(lsa6_tmp);
 4651|       |#endif
 4652|  1.97k|		lsa6 = &lsa6_tmp;
 4653|  1.97k|		if (net && out_of_asoc_ok == 0) {
  ------------------
  |  Branch (4653:7): [True: 1.97k, False: 0]
  |  Branch (4653:14): [True: 1.97k, False: 0]
  ------------------
 4654|  1.97k|			if (net->ro._s_addr && (net->ro._s_addr->localifa_flags & (SCTP_BEING_DELETED|SCTP_ADDR_IFA_UNUSEABLE))) {
  ------------------
  |  |   90|      0|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
              			if (net->ro._s_addr && (net->ro._s_addr->localifa_flags & (SCTP_BEING_DELETED|SCTP_ADDR_IFA_UNUSEABLE))) {
  ------------------
  |  |   98|      0|#define SCTP_ADDR_IFA_UNUSEABLE 0x00000008
  ------------------
  |  Branch (4654:8): [True: 0, False: 1.97k]
  |  Branch (4654:27): [True: 0, False: 0]
  ------------------
 4655|      0|				sctp_free_ifa(net->ro._s_addr);
 4656|      0|				net->ro._s_addr = NULL;
 4657|      0|				net->src_addr_selected = 0;
 4658|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4659|       |				RO_NHFREE(ro);
 4660|       |#else
 4661|      0|				if (ro->ro_rt) {
  ------------------
  |  Branch (4661:9): [True: 0, False: 0]
  ------------------
 4662|      0|					RTFREE(ro->ro_rt);
  ------------------
  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  ------------------
  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  ------------------
  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  122|      0|		}						\
  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  129|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4663|      0|					ro->ro_rt = NULL;
 4664|      0|				}
 4665|      0|#endif
 4666|      0|			}
 4667|  1.97k|			if (net->src_addr_selected == 0) {
  ------------------
  |  Branch (4667:8): [True: 1.97k, False: 0]
  ------------------
 4668|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4669|       |				sin6 = (struct sockaddr_in6 *)&net->ro._l_addr;
 4670|       |				/* KAME hack: embed scopeid */
 4671|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4672|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
 4673|       |				if (in6_embedscope(&sin6->sin6_addr, sin6, NULL, NULL) != 0)
 4674|       |#else
 4675|       |				if (in6_embedscope(&sin6->sin6_addr, sin6, NULL, NULL, NULL) != 0)
 4676|       |#endif
 4677|       |#elif defined(SCTP_KAME)
 4678|       |				if (sa6_embedscope(sin6, MODULE_GLOBAL(ip6_use_defzone)) != 0)
 4679|       |#else
 4680|       |				if (in6_embedscope(&sin6->sin6_addr, sin6) != 0)
 4681|       |#endif
 4682|       |				{
 4683|       |					SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EINVAL);
 4684|       |					sctp_m_freem(m);
 4685|       |					return (EINVAL);
 4686|       |				}
 4687|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 4688|       |				/* Cache the source address */
 4689|  1.97k|				net->ro._s_addr = sctp_source_address_selection(inp,
 4690|  1.97k|										stcb,
 4691|  1.97k|										ro,
 4692|  1.97k|										net,
 4693|  1.97k|										0,
 4694|  1.97k|										vrf_id);
 4695|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4696|       |#ifdef SCTP_KAME
 4697|       |				(void)sa6_recoverscope(sin6);
 4698|       |#else
 4699|       |				(void)in6_recoverscope(sin6, &sin6->sin6_addr, NULL);
 4700|       |#endif	/* SCTP_KAME */
 4701|       |#endif	/* SCTP_EMBEDDED_V6_SCOPE */
 4702|  1.97k|				net->src_addr_selected = 1;
 4703|  1.97k|			}
 4704|  1.97k|			if (net->ro._s_addr == NULL) {
  ------------------
  |  Branch (4704:8): [True: 1.97k, False: 0]
  ------------------
 4705|  1.97k|				SCTPDBG(SCTP_DEBUG_OUTPUT3, "V6:No route to host\n");
 4706|  1.97k|				net->src_addr_selected = 0;
 4707|  1.97k|				sctp_handle_no_route(stcb, net, so_locked);
 4708|  1.97k|				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4709|  1.97k|				sctp_m_freem(m);
  ------------------
  |  |   52|  1.97k|#define sctp_m_freem m_freem
  ------------------
 4710|  1.97k|				return (EHOSTUNREACH);
 4711|  1.97k|			}
 4712|      0|			lsa6->sin6_addr = net->ro._s_addr->address.sin6.sin6_addr;
 4713|      0|		} else {
 4714|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4715|       |			sin6 = (struct sockaddr_in6 *)&ro->ro_dst;
 4716|       |			/* KAME hack: embed scopeid */
 4717|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4718|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
 4719|       |			if (in6_embedscope(&sin6->sin6_addr, sin6, NULL, NULL) != 0)
 4720|       |#else
 4721|       |			if (in6_embedscope(&sin6->sin6_addr, sin6, NULL, NULL, NULL) != 0)
 4722|       |#endif
 4723|       |#elif defined(SCTP_KAME)
 4724|       |			if (sa6_embedscope(sin6, MODULE_GLOBAL(ip6_use_defzone)) != 0)
 4725|       |#else
 4726|       |			if (in6_embedscope(&sin6->sin6_addr, sin6) != 0)
 4727|       |#endif
 4728|       |			  {
 4729|       |				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EINVAL);
 4730|       |				sctp_m_freem(m);
 4731|       |				return (EINVAL);
 4732|       |			  }
 4733|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 4734|      0|			if (over_addr == NULL) {
  ------------------
  |  Branch (4734:8): [True: 0, False: 0]
  ------------------
 4735|      0|				struct sctp_ifa *_lsrc;
 4736|       |
 4737|      0|				_lsrc = sctp_source_address_selection(inp, stcb, ro,
 4738|      0|				                                      net,
 4739|      0|				                                      out_of_asoc_ok,
 4740|      0|				                                      vrf_id);
 4741|      0|				if (_lsrc == NULL) {
  ------------------
  |  Branch (4741:9): [True: 0, False: 0]
  ------------------
 4742|      0|					sctp_handle_no_route(stcb, net, so_locked);
 4743|      0|					SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4744|      0|					sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4745|      0|					return (EHOSTUNREACH);
 4746|      0|				}
 4747|      0|				lsa6->sin6_addr = _lsrc->address.sin6.sin6_addr;
 4748|      0|				sctp_free_ifa(_lsrc);
 4749|      0|			} else {
 4750|      0|				lsa6->sin6_addr = over_addr->sin6.sin6_addr;
 4751|      0|				SCTP_RTALLOC(ro, vrf_id, inp->fibnum);
  ------------------
  |  |  871|      0|#define SCTP_RTALLOC(ro, vrf_id, fibnum) sctp_userspace_rtalloc((sctp_route_t *)ro)
  ------------------
 4752|      0|			}
 4753|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4754|       |#ifdef SCTP_KAME
 4755|       |			(void)sa6_recoverscope(sin6);
 4756|       |#else
 4757|       |			(void)in6_recoverscope(sin6, &sin6->sin6_addr, NULL);
 4758|       |#endif	/* SCTP_KAME */
 4759|       |#endif	/* SCTP_EMBEDDED_V6_SCOPE */
 4760|      0|		}
 4761|      0|		lsa6->sin6_port = inp->sctp_lport;
  ------------------
  |  |  426|      0|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      0|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      0|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4762|       |
 4763|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4764|       |		if (ro->ro_nh == NULL) {
 4765|       |#else
 4766|      0|		if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (4766:7): [True: 0, False: 0]
  ------------------
 4767|      0|#endif
 4768|       |			/*
 4769|       |			 * src addr selection failed to find a route (or
 4770|       |			 * valid source addr), so we can't get there from
 4771|       |			 * here!
 4772|       |			 */
 4773|      0|			sctp_handle_no_route(stcb, net, so_locked);
 4774|      0|			SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4775|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4776|      0|			return (EHOSTUNREACH);
 4777|      0|		}
 4778|      0|#ifndef SCOPEDROUTING
 4779|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4780|       |		/*
 4781|       |		 * XXX: sa6 may not have a valid sin6_scope_id in the
 4782|       |		 * non-SCOPEDROUTING case.
 4783|       |		 */
 4784|       |		memset(&lsa6_storage, 0, sizeof(lsa6_storage));
 4785|       |		lsa6_storage.sin6_family = AF_INET6;
 4786|       |#ifdef HAVE_SIN6_LEN
 4787|       |		lsa6_storage.sin6_len = sizeof(lsa6_storage);
 4788|       |#endif
 4789|       |#ifdef SCTP_KAME
 4790|       |		lsa6_storage.sin6_addr = lsa6->sin6_addr;
 4791|       |		if ((error = sa6_recoverscope(&lsa6_storage)) != 0) {
 4792|       |#else
 4793|       |		if ((error = in6_recoverscope(&lsa6_storage, &lsa6->sin6_addr,
 4794|       |		    NULL)) != 0) {
 4795|       |#endif				/* SCTP_KAME */
 4796|       |			SCTPDBG(SCTP_DEBUG_OUTPUT3, "recover scope fails error %d\n", error);
 4797|       |			sctp_m_freem(m);
 4798|       |			return (error);
 4799|       |		}
 4800|       |		/* XXX */
 4801|       |		lsa6_storage.sin6_addr = lsa6->sin6_addr;
 4802|       |		lsa6_storage.sin6_port = inp->sctp_lport;
 4803|       |		lsa6 = &lsa6_storage;
 4804|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 4805|      0|#endif /* SCOPEDROUTING */
 4806|      0|		ip6h->ip6_src = lsa6->sin6_addr;
 4807|       |
 4808|      0|		if (port) {
  ------------------
  |  Branch (4808:7): [True: 0, False: 0]
  ------------------
 4809|      0|			if (htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)) == 0) {
  ------------------
  |  Branch (4809:8): [True: 0, False: 0]
  ------------------
 4810|      0|				sctp_handle_no_route(stcb, net, so_locked);
 4811|      0|				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4812|      0|				sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4813|      0|				return (EHOSTUNREACH);
 4814|      0|			}
 4815|      0|			udp = (struct udphdr *)((caddr_t)ip6h + sizeof(struct ip6_hdr));
 4816|      0|			udp->uh_sport = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port));
 4817|      0|			udp->uh_dport = port;
 4818|      0|			udp->uh_ulen = htons((uint16_t)(packet_length - sizeof(struct ip6_hdr)));
 4819|      0|			udp->uh_sum = 0;
 4820|      0|			sctphdr = (struct sctphdr *)((caddr_t)udp + sizeof(struct udphdr));
 4821|      0|		} else {
 4822|      0|			sctphdr = (struct sctphdr *)((caddr_t)ip6h + sizeof(struct ip6_hdr));
 4823|      0|		}
 4824|       |
 4825|      0|		sctphdr->src_port = src_port;
 4826|      0|		sctphdr->dest_port = dest_port;
 4827|      0|		sctphdr->v_tag = v_tag;
 4828|      0|		sctphdr->checksum = 0;
 4829|       |
 4830|       |		/*
 4831|       |		 * We set the hop limit now since there is a good chance
 4832|       |		 * that our ro pointer is now filled
 4833|       |		 */
 4834|      0|		ip6h->ip6_hlim = SCTP_GET_HLIM(inp, ro);
  ------------------
  |  |  950|      0|#define SCTP_GET_HLIM(inp, ro) 128
  ------------------
 4835|       |#if !defined(__Userspace__)
 4836|       |		ifp = SCTP_GET_IFN_VOID_FROM_ROUTE(ro);
 4837|       |#endif
 4838|       |
 4839|       |#ifdef SCTP_DEBUG
 4840|       |		/* Copy to be sure something bad is not happening */
 4841|       |		sin6->sin6_addr = ip6h->ip6_dst;
 4842|       |		lsa6->sin6_addr = ip6h->ip6_src;
 4843|       |#endif
 4844|       |
 4845|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "Calling ipv6 output routine from low level\n");
 4846|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "src: ");
 4847|      0|		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT3, (struct sockaddr *)lsa6);
 4848|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "dst: ");
 4849|      0|		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT3, (struct sockaddr *)sin6);
 4850|      0|		if (net) {
  ------------------
  |  Branch (4850:7): [True: 0, False: 0]
  ------------------
 4851|      0|			sin6 = (struct sockaddr_in6 *)&net->ro._l_addr;
 4852|       |			/* preserve the port and scope for link local send */
 4853|      0|			prev_scope = sin6->sin6_scope_id;
 4854|      0|			prev_port = sin6->sin6_port;
 4855|      0|		}
 4856|       |
 4857|      0|		if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) {
  ------------------
  |  |  922|      0|#define SCTP_GET_HEADER_FOR_OUTPUT(o_pak) 0
  |  |  ------------------
  |  |  |  Branch (922:43): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4858|       |			/* failed to prepend data, give up */
 4859|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4860|      0|			SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 4861|      0|			return (ENOMEM);
 4862|      0|		}
 4863|      0|		SCTP_ATTACH_CHAIN(o_pak, m, packet_length);
  ------------------
  |  |  931|      0|#define SCTP_ATTACH_CHAIN(pak, m, packet_length) do { \
  |  |  932|      0|                                                  pak = m; \
  |  |  933|      0|                                                  pak->m_pkthdr.len = packet_length; \
  |  |  ------------------
  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  |  |  934|      0|                          } while(0)
  |  |  ------------------
  |  |  |  Branch (934:35): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4864|      0|		if (port) {
  ------------------
  |  Branch (4864:7): [True: 0, False: 0]
  ------------------
 4865|      0|			sctphdr->checksum = sctp_calculate_cksum(m, sizeof(struct ip6_hdr) + sizeof(struct udphdr));
 4866|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4867|       |#if !defined(__Userspace__)
 4868|       |#if defined(_WIN32)
 4869|       |			udp->uh_sum = 0;
 4870|       |#else
 4871|       |			if ((udp->uh_sum = in6_cksum(o_pak, IPPROTO_UDP, sizeof(struct ip6_hdr), packet_length - sizeof(struct ip6_hdr))) == 0) {
 4872|       |				udp->uh_sum = 0xffff;
 4873|       |			}
 4874|       |#endif
 4875|       |#endif
 4876|      0|		} else {
 4877|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4878|       |			m->m_pkthdr.csum_flags = CSUM_SCTP_IPV6;
 4879|       |			m->m_pkthdr.csum_data = offsetof(struct sctphdr, checksum);
 4880|       |			SCTP_STAT_INCR(sctps_sendhwcrc);
 4881|       |#else
 4882|      0|			if (!(SCTP_BASE_SYSCTL(sctp_no_csum_on_loopback) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4883|      0|			      (stcb) && (stcb->asoc.scope.loopback_scope))) {
  ------------------
  |  Branch (4883:10): [True: 0, False: 0]
  |  Branch (4883:20): [True: 0, False: 0]
  ------------------
 4884|      0|				sctphdr->checksum = sctp_calculate_cksum(m, sizeof(struct ip6_hdr));
 4885|      0|				SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4886|      0|			} else {
 4887|      0|				SCTP_STAT_INCR(sctps_sendhwcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4888|      0|			}
 4889|      0|#endif
 4890|      0|		}
 4891|       |		/* send it out. table id is taken from stcb */
 4892|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4893|       |		if ((SCTP_BASE_SYSCTL(sctp_output_unlocked)) && (so_locked)) {
 4894|       |			so = SCTP_INP_SO(inp);
 4895|       |			SCTP_SOCKET_UNLOCK(so, 0);
 4896|       |		}
 4897|       |#endif
 4898|       |#ifdef SCTP_PACKET_LOGGING
 4899|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING)
 4900|       |			sctp_packet_log(o_pak);
 4901|       |#endif
 4902|       |#if !defined(__Userspace__)
 4903|       |#if defined(__FreeBSD__)
 4904|       |		SCTP_PROBE5(send, NULL, stcb, ip6h, stcb, sctphdr);
 4905|       |#endif
 4906|       |		SCTP_IP6_OUTPUT(ret, o_pak, (struct route_in6 *)ro, &ifp, inp, vrf_id);
 4907|       |#else
 4908|      0|		SCTP_IP6_OUTPUT(ret, o_pak, (struct route_in6 *)ro, NULL, inp, vrf_id);
  ------------------
  |  | 1062|      0|#define SCTP_IP6_OUTPUT(result, o_pak, ro, ifp, inp, vrf_id) sctp_userspace_ip6_output(&result, o_pak, ro, inp, vrf_id);
  ------------------
 4909|      0|#endif
 4910|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4911|       |		if ((SCTP_BASE_SYSCTL(sctp_output_unlocked)) && (so_locked)) {
 4912|       |			atomic_add_int(&stcb->asoc.refcnt, 1);
 4913|       |			SCTP_TCB_UNLOCK(stcb);
 4914|       |			SCTP_SOCKET_LOCK(so, 0);
 4915|       |			SCTP_TCB_LOCK(stcb);
 4916|       |			atomic_subtract_int(&stcb->asoc.refcnt, 1);
 4917|       |		}
 4918|       |#endif
 4919|      0|		if (net) {
  ------------------
  |  Branch (4919:7): [True: 0, False: 0]
  ------------------
 4920|       |			/* for link local this must be done */
 4921|      0|			sin6->sin6_scope_id = prev_scope;
 4922|      0|			sin6->sin6_port = prev_port;
 4923|      0|		}
 4924|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "return from send is %d\n", ret);
 4925|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4926|       |		if (port) {
 4927|       |			UDPSTAT_INC(udps_opackets);
 4928|       |		}
 4929|       |#endif
 4930|      0|		SCTP_STAT_INCR(sctps_sendpackets);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4931|      0|		SCTP_STAT_INCR_COUNTER64(sctps_outpackets);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4932|      0|		if (ret) {
  ------------------
  |  Branch (4932:7): [True: 0, False: 0]
  ------------------
 4933|      0|			SCTP_STAT_INCR(sctps_senderrors);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4934|      0|		}
 4935|      0|		if (net == NULL) {
  ------------------
  |  Branch (4935:7): [True: 0, False: 0]
  ------------------
 4936|       |			/* Now if we had a temp route free it */
 4937|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4938|       |			RO_NHFREE(ro);
 4939|       |#else
 4940|      0|			if (ro->ro_rt) {
  ------------------
  |  Branch (4940:8): [True: 0, False: 0]
  ------------------
 4941|      0|				RTFREE(ro->ro_rt);
  ------------------
  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  ------------------
  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  ------------------
  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  122|      0|		}						\
  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  129|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4942|      0|				ro->ro_rt = NULL;
 4943|      0|			}
 4944|      0|#endif
 4945|      0|		} else {
 4946|       |			/* PMTU check versus smallest asoc MTU goes here */
 4947|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4948|       |			if (ro->ro_nh == NULL) {
 4949|       |#else
 4950|      0|			if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (4950:8): [True: 0, False: 0]
  ------------------
 4951|      0|#endif
 4952|       |				/* Route was freed */
 4953|      0|				if (net->ro._s_addr &&
  ------------------
  |  Branch (4953:9): [True: 0, False: 0]
  ------------------
 4954|      0|				    net->src_addr_selected) {
  ------------------
  |  Branch (4954:9): [True: 0, False: 0]
  ------------------
 4955|      0|					sctp_free_ifa(net->ro._s_addr);
 4956|      0|					net->ro._s_addr = NULL;
 4957|      0|				}
 4958|      0|				net->src_addr_selected = 0;
 4959|      0|			}
 4960|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4961|       |			if ((ro->ro_nh != NULL) && (net->ro._s_addr) &&
 4962|       |#else
 4963|      0|			if ((ro->ro_rt != NULL) && (net->ro._s_addr) &&
  ------------------
  |  Branch (4963:8): [True: 0, False: 0]
  |  Branch (4963:31): [True: 0, False: 0]
  ------------------
 4964|      0|#endif
 4965|      0|			    ((net->dest_state & SCTP_ADDR_NO_PMTUD) == 0)) {
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
  |  Branch (4965:8): [True: 0, False: 0]
  ------------------
 4966|      0|				uint32_t mtu;
 4967|       |
 4968|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4969|       |				mtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, ro->ro_nh);
 4970|       |#else
 4971|      0|				mtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, ro->ro_rt);
  ------------------
  |  |  894|      0|#define SCTP_GATHER_MTU_FROM_ROUTE(sctp_ifa, sa, rt) ((rt != NULL) ? rt->rt_rmx.rmx_mtu : 0)
  |  |  ------------------
  |  |  |  Branch (894:55): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4972|      0|#endif
 4973|      0|				if (mtu > 0) {
  ------------------
  |  Branch (4973:9): [True: 0, False: 0]
  ------------------
 4974|      0|					if (net->port) {
  ------------------
  |  Branch (4974:10): [True: 0, False: 0]
  ------------------
 4975|      0|						mtu -= sizeof(struct udphdr);
 4976|      0|					}
 4977|      0|					if (mtu < net->mtu) {
  ------------------
  |  Branch (4977:10): [True: 0, False: 0]
  ------------------
 4978|      0|						net->mtu = mtu;
 4979|      0|						if ((stcb != NULL) && (stcb->asoc.smallest_mtu > mtu)) {
  ------------------
  |  Branch (4979:11): [True: 0, False: 0]
  |  Branch (4979:29): [True: 0, False: 0]
  ------------------
 4980|      0|							sctp_pathmtu_adjustment(stcb, mtu, false);
 4981|      0|						}
 4982|      0|					}
 4983|      0|				}
 4984|      0|			}
 4985|       |#if !defined(__Userspace__)
 4986|       |			else if (ifp != NULL) {
 4987|       |#if defined(_WIN32)
 4988|       |#define ND_IFINFO(ifp)	(ifp)
 4989|       |#define linkmtu		if_mtu
 4990|       |#endif
 4991|       |				if ((ND_IFINFO(ifp)->linkmtu > 0) &&
 4992|       |				    (stcb->asoc.smallest_mtu > ND_IFINFO(ifp)->linkmtu)) {
 4993|       |					sctp_pathmtu_adjustment(stcb, ND_IFINFO(ifp)->linkmtu, false);
 4994|       |				}
 4995|       |			}
 4996|       |#endif
 4997|      0|		}
 4998|      0|		return (ret);
 4999|      0|	}
 5000|      0|#endif
 5001|      0|#if defined(__Userspace__)
 5002|  47.2k|	case AF_CONN:
  ------------------
  |  | 1014|  47.2k|#define AF_CONN 123
  ------------------
  |  Branch (5002:2): [True: 47.2k, False: 3.01k]
  ------------------
 5003|  47.2k|	{
 5004|  47.2k|		char *buffer;
 5005|  47.2k|		struct sockaddr_conn *sconn;
 5006|  47.2k|		int len;
 5007|       |
 5008|  47.2k|		sconn = (struct sockaddr_conn *)to;
 5009|  47.2k|		len = sizeof(struct sctphdr);
 5010|  47.2k|		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  47.2k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  47.2k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5011|  47.2k|		if (newm == NULL) {
  ------------------
  |  Branch (5011:7): [True: 0, False: 47.2k]
  ------------------
 5012|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5013|      0|			SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 5014|      0|			return (ENOMEM);
 5015|      0|		}
 5016|  47.2k|		SCTP_ALIGN_TO_END(newm, len);
  ------------------
  |  |  812|  47.2k|#define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  221|  47.2k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  234|  94.4k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |  |  Branch (812:38): [True: 47.2k, False: 0]
  |  |  ------------------
  |  |  813|  47.2k|                                     MH_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  399|  47.2k|#define	MH_ALIGN(m, len) do {						\
  |  |  |  |  400|  47.2k|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  47.2k|	do {                         \
  |  |  |  |  |  |  113|  94.4k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:9): [True: 47.2k, False: 0]
  |  |  |  |  |  |  |  Branch (113:9): [True: 47.2k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  47.2k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 47.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  401|  47.2k|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  |  |  402|  47.2k|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  47.2k|	do {                         \
  |  |  |  |  |  |  113|  47.2k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 47.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  47.2k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 47.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  403|  47.2k|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  |  |  404|  47.2k|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  47.2k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  47.2k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  138|  47.2k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   47|  47.2k|#define MSIZE 256
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  405|  47.2k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (405:10): [Folded, False: 47.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  814|  47.2k|                                  } else if ((m->m_flags & M_EXT) == 0) { \
  |  |  ------------------
  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |                                                 } else if ((m->m_flags & M_EXT) == 0) { \
  |  |  ------------------
  |  |  |  |  233|      0|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (814:46): [True: 0, False: 0]
  |  |  ------------------
  |  |  815|      0|                                     M_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  387|      0|#define	M_ALIGN(m, len) do {						\
  |  |  |  |  388|      0|        KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)),                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  389|      0|                ("%s: M_ALIGN not normal mbuf", __func__));             \
  |  |  |  |  390|      0|        KASSERT((m)->m_data == (m)->m_dat,                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  391|      0|                ("%s: M_ALIGN not a virgin mbuf", __func__));           \
  |  |  |  |  392|      0|	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  393|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (393:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  816|      0|                                  }
  ------------------
 5017|  47.2k|		SCTP_BUF_LEN(newm) = len;
  ------------------
  |  |  801|  47.2k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  47.2k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5018|  47.2k|		SCTP_BUF_NEXT(newm) = m;
  ------------------
  |  |  802|  47.2k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  47.2k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5019|  47.2k|		m = newm;
 5020|  47.2k|		packet_length = sctp_calculate_len(m);
 5021|  47.2k|		m->m_pkthdr.len = packet_length;
  ------------------
  |  |  224|  47.2k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 5022|  47.2k|		sctphdr = mtod(m, struct sctphdr *);
  ------------------
  |  |   96|  47.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  47.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5023|  47.2k|		sctphdr->src_port = src_port;
 5024|  47.2k|		sctphdr->dest_port = dest_port;
 5025|  47.2k|		sctphdr->v_tag = v_tag;
 5026|  47.2k|		sctphdr->checksum = 0;
 5027|  47.2k|		if (use_zero_crc) {
  ------------------
  |  Branch (5027:7): [True: 0, False: 47.2k]
  ------------------
 5028|      0|			SCTP_STAT_INCR(sctps_sendzerocrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5029|  47.2k|		} else if (SCTP_BASE_VAR(crc32c_offloaded) == 0) {
  ------------------
  |  |  591|  47.2k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (5029:14): [True: 0, False: 47.2k]
  ------------------
 5030|      0|			sctphdr->checksum = sctp_calculate_cksum(m, 0);
 5031|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5032|  47.2k|		} else {
 5033|  47.2k|			SCTP_STAT_INCR(sctps_sendhwcrc);
  ------------------
  |  | 1112|  47.2k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  47.2k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  47.2k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5034|  47.2k|		}
 5035|  47.2k|		if (tos_value == 0) {
  ------------------
  |  Branch (5035:7): [True: 47.2k, False: 0]
  ------------------
 5036|  47.2k|			tos_value = inp->ip_inp.inp.inp_ip_tos;
  ------------------
  |  |  148|  47.2k|#define	inp_ip_tos	inp_depend4.inp4_ip_tos
  ------------------
 5037|  47.2k|		}
 5038|  47.2k|		tos_value &= 0xfc;
 5039|  47.2k|		if (ecn_ok) {
  ------------------
  |  Branch (5039:7): [True: 3.34k, False: 43.8k]
  ------------------
 5040|  3.34k|			tos_value |= sctp_get_ect(stcb);
 5041|  3.34k|		}
 5042|       |		/* Don't alloc/free for each packet */
 5043|  47.2k|		if ((buffer = malloc(packet_length)) != NULL) {
  ------------------
  |  Branch (5043:7): [True: 47.2k, False: 0]
  ------------------
 5044|  47.2k|			m_copydata(m, 0, packet_length, buffer);
 5045|  47.2k|			ret = SCTP_BASE_VAR(conn_output)(sconn->sconn_addr, buffer, packet_length, tos_value, nofragment_flag);
  ------------------
  |  |  591|  47.2k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 5046|  47.2k|			free(buffer);
 5047|  47.2k|		} else {
 5048|      0|			ret = ENOMEM;
 5049|      0|		}
 5050|  47.2k|		sctp_m_freem(m);
  ------------------
  |  |   52|  47.2k|#define sctp_m_freem m_freem
  ------------------
 5051|  47.2k|		return (ret);
 5052|  47.2k|	}
 5053|      0|#endif
 5054|      0|	default:
  ------------------
  |  Branch (5054:2): [True: 0, False: 50.2k]
  ------------------
 5055|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT1, "Unknown protocol (TSNH) type %d\n",
 5056|      0|		        ((struct sockaddr *)to)->sa_family);
 5057|      0|		sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5058|      0|		SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EFAULT);
 5059|       |		return (EFAULT);
 5060|  50.2k|	}
 5061|  50.2k|}
sctp_output.c:sctp_get_ect:
 4015|  3.41k|{
 4016|  3.41k|	if ((stcb != NULL) && (stcb->asoc.ecn_supported == 1)) {
  ------------------
  |  Branch (4016:6): [True: 3.41k, False: 0]
  |  Branch (4016:24): [True: 3.06k, False: 351]
  ------------------
 4017|  3.06k|		return (SCTP_ECT0_BIT);
  ------------------
  |  |  441|  3.06k|#define SCTP_ECT0_BIT		0x02
  ------------------
 4018|  3.06k|	} else {
 4019|    351|		return (0);
 4020|    351|	}
 4021|  3.41k|}
sctp_output.c:sctp_handle_no_route:
 4028|  3.01k|{
 4029|  3.01k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "dropped packet - no valid source addr\n");
 4030|       |
 4031|  3.01k|	if (net) {
  ------------------
  |  Branch (4031:6): [True: 3.01k, False: 0]
  ------------------
 4032|  3.01k|		SCTPDBG(SCTP_DEBUG_OUTPUT1, "Destination was ");
 4033|  3.01k|		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT1, &net->ro._l_addr.sa);
 4034|  3.01k|		if (net->dest_state & SCTP_ADDR_CONFIRMED) {
  ------------------
  |  |  360|  3.01k|#define SCTP_ADDR_CONFIRMED	0x0006
  ------------------
  |  Branch (4034:7): [True: 0, False: 3.01k]
  ------------------
 4035|      0|			if ((net->dest_state & SCTP_ADDR_REACHABLE) && stcb) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (4035:8): [True: 0, False: 0]
  |  Branch (4035:51): [True: 0, False: 0]
  ------------------
 4036|      0|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "no route takes interface %p down\n", (void *)net);
 4037|      0|				sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN,
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
 4038|      0|			                        stcb, 0,
 4039|      0|			                        (void *)net,
 4040|      0|			                        so_locked);
 4041|      0|				net->dest_state &= ~SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4042|      0|				net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 4043|      0|			}
 4044|      0|		}
 4045|  3.01k|		if (stcb) {
  ------------------
  |  Branch (4045:7): [True: 3.01k, False: 0]
  ------------------
 4046|  3.01k|			if (net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (4046:8): [True: 1.14k, False: 1.86k]
  ------------------
 4047|       |				/* need a new primary */
 4048|  1.14k|				struct sctp_nets *alt;
 4049|       |
 4050|  1.14k|				alt = sctp_find_alternate_net(stcb, net, 0);
 4051|  1.14k|				if (alt != net) {
  ------------------
  |  Branch (4051:9): [True: 1.14k, False: 0]
  ------------------
 4052|  1.14k|					if (stcb->asoc.alternate) {
  ------------------
  |  Branch (4052:10): [True: 934, False: 212]
  ------------------
 4053|    934|						sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|    934|#define sctp_free_remote_addr(__net) { \
  |  |  229|    934|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 934, False: 0]
  |  |  ------------------
  |  |  230|    934|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|    934|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    934|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 934]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|    934|	} \
  |  |  245|    934|}
  ------------------
 4054|    934|					}
 4055|  1.14k|					stcb->asoc.alternate = alt;
 4056|  1.14k|					atomic_add_int(&stcb->asoc.alternate->ref_count, 1);
  ------------------
  |  |   94|  1.14k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4057|  1.14k|					if (net->ro._s_addr) {
  ------------------
  |  Branch (4057:10): [True: 0, False: 1.14k]
  ------------------
 4058|      0|						sctp_free_ifa(net->ro._s_addr);
 4059|       |						net->ro._s_addr = NULL;
 4060|      0|					}
 4061|  1.14k|					net->src_addr_selected = 0;
 4062|  1.14k|				}
 4063|  1.14k|			}
 4064|  3.01k|		}
 4065|  3.01k|	}
 4066|  3.01k|}
sctp_output.c:sctp_med_chunk_output:
 8404|  32.9k|{
 8405|       |	/**
 8406|       |	 * Ok this is the generic chunk service queue. we must do the
 8407|       |	 * following:
 8408|       |	 * - Service the stream queue that is next, moving any
 8409|       |	 *   message (note I must get a complete message i.e. FIRST/MIDDLE and
 8410|       |	 *   LAST to the out queue in one pass) and assigning TSN's. This
 8411|       |	 *   only applies though if the peer does not support NDATA. For NDATA
 8412|       |	 *   chunks its ok to not send the entire message ;-)
 8413|       |	 * - Check to see if the cwnd/rwnd allows any output, if so we go ahead and
 8414|       |	 *   formulate and send the low level chunks. Making sure to combine
 8415|       |	 *   any control in the control chunk queue also.
 8416|       |	 */
 8417|  32.9k|	struct sctp_nets *net, *start_at, *sack_goes_to = NULL, *old_start_at = NULL;
 8418|  32.9k|	struct mbuf *outchain, *endoutchain;
 8419|  32.9k|	struct sctp_tmit_chunk *chk, *nchk;
 8420|       |
 8421|       |	/* temp arrays for unlinking */
 8422|  32.9k|	struct sctp_tmit_chunk *data_list[SCTP_MAX_DATA_BUNDLING];
 8423|  32.9k|	int no_fragmentflg, error;
 8424|  32.9k|	unsigned int max_rwnd_per_dest, max_send_per_dest;
 8425|  32.9k|	int one_chunk, hbflag, skip_data_for_this_net;
 8426|  32.9k|	int asconf, cookie, no_out_cnt;
 8427|  32.9k|	int bundle_at, ctl_cnt, no_data_chunks, eeor_mode;
 8428|  32.9k|	unsigned int mtu, r_mtu, omtu, mx_mtu, to_out;
 8429|  32.9k|	int tsns_sent = 0;
 8430|  32.9k|	uint32_t auth_offset;
 8431|  32.9k|	struct sctp_auth_chunk *auth;
 8432|  32.9k|	uint16_t auth_keyid;
 8433|  32.9k|	int override_ok = 1;
 8434|  32.9k|	int skip_fill_up = 0;
 8435|  32.9k|	int data_auth_reqd = 0;
 8436|       |	/* JRS 5/14/07 - Add flag for whether a heartbeat is sent to
 8437|       |	   the destination. */
 8438|  32.9k|	int quit_now = 0;
 8439|  32.9k|	bool use_zero_crc;
 8440|       |
 8441|       |#if defined(__APPLE__) && !defined(__Userspace__)
 8442|       |	if (so_locked) {
 8443|       |		sctp_lock_assert(SCTP_INP_SO(inp));
 8444|       |	} else {
 8445|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
 8446|       |	}
 8447|       |#endif
 8448|  32.9k|	*num_out = 0;
 8449|  32.9k|	*reason_code = 0;
 8450|  32.9k|	auth_keyid = stcb->asoc.authinfo.active_keyid;
 8451|  32.9k|	if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) ||
  ------------------
  |  |  463|  32.9k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (8451:6): [True: 0, False: 32.9k]
  ------------------
 8452|  32.9k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  472|  32.9k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  32.9k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  461|  32.9k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (8452:6): [True: 40, False: 32.8k]
  ------------------
 8453|  32.8k|	    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR))) {
  ------------------
  |  |   52|  32.8k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (8453:6): [True: 0, False: 32.8k]
  ------------------
 8454|     40|		eeor_mode = 1;
 8455|  32.8k|	} else {
 8456|  32.8k|		eeor_mode = 0;
 8457|  32.8k|	}
 8458|  32.9k|	ctl_cnt = no_out_cnt = asconf = cookie = 0;
 8459|       |	/*
 8460|       |	 * First lets prime the pump. For each destination, if there is room
 8461|       |	 * in the flight size, attempt to pull an MTU's worth out of the
 8462|       |	 * stream queues into the general send_queue
 8463|       |	 */
 8464|       |#ifdef SCTP_AUDITING_ENABLED
 8465|       |	sctp_audit_log(0xC2, 2);
 8466|       |#endif
 8467|  32.9k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  32.9k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  32.9k|	do {                         \
  |  |  |  |  113|  32.9k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 32.9k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  32.9k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 32.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8468|  32.9k|	hbflag = 0;
 8469|  32.9k|	if (control_only)
  ------------------
  |  Branch (8469:6): [True: 1.54k, False: 31.3k]
  ------------------
 8470|  1.54k|		no_data_chunks = 1;
 8471|  31.3k|	else
 8472|  31.3k|		no_data_chunks = 0;
 8473|       |
 8474|       |	/* Nothing to possible to send? */
 8475|  32.9k|	if ((TAILQ_EMPTY(&asoc->control_send_queue) ||
  ------------------
  |  Branch (8475:7): [True: 3.32k, False: 29.5k]
  ------------------
 8476|  29.5k|	     (asoc->ctrl_queue_cnt == stcb->asoc.ecn_echo_cnt_onq)) &&
  ------------------
  |  Branch (8476:7): [True: 0, False: 29.5k]
  ------------------
 8477|  32.9k|	    TAILQ_EMPTY(&asoc->asconf_send_queue) &&
  ------------------
  |  Branch (8477:6): [True: 3.32k, False: 0]
  ------------------
 8478|  32.9k|	    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (8478:6): [True: 2.82k, False: 492]
  ------------------
 8479|  2.82k|	    sctp_is_there_unsent_data(stcb, so_locked) == 0) {
  ------------------
  |  Branch (8479:6): [True: 0, False: 2.82k]
  ------------------
 8480|      0|	nothing_to_send:
 8481|      0|		*reason_code = 9;
 8482|      0|		return (0);
 8483|      0|	}
 8484|  32.9k|	if (asoc->peers_rwnd == 0) {
  ------------------
  |  Branch (8484:6): [True: 198, False: 32.7k]
  ------------------
 8485|       |		/* No room in peers rwnd */
 8486|    198|		*reason_code = 1;
 8487|    198|		if (asoc->total_flight > 0) {
  ------------------
  |  Branch (8487:7): [True: 11, False: 187]
  ------------------
 8488|       |			/* we are allowed one chunk in flight */
 8489|     11|			no_data_chunks = 1;
 8490|     11|		}
 8491|    198|	}
 8492|  32.9k|	if (stcb->asoc.ecn_echo_cnt_onq) {
  ------------------
  |  Branch (8492:6): [True: 0, False: 32.9k]
  ------------------
 8493|       |		/* Record where a sack goes, if any */
 8494|      0|		if (no_data_chunks &&
  ------------------
  |  Branch (8494:7): [True: 0, False: 0]
  ------------------
 8495|      0|		    (asoc->ctrl_queue_cnt == stcb->asoc.ecn_echo_cnt_onq)) {
  ------------------
  |  Branch (8495:7): [True: 0, False: 0]
  ------------------
 8496|       |			/* Nothing but ECNe to send - we don't do that */
 8497|      0|			goto nothing_to_send;
 8498|      0|		}
 8499|      0|		TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (8499:3): [True: 0, False: 0]
  ------------------
 8500|      0|			if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|      0|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (8500:8): [True: 0, False: 0]
  ------------------
 8501|      0|			    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK)) {
  ------------------
  |  |  472|      0|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (8501:8): [True: 0, False: 0]
  ------------------
 8502|      0|				sack_goes_to = chk->whoTo;
 8503|      0|				break;
 8504|      0|			}
 8505|      0|		}
 8506|      0|	}
 8507|  32.9k|	max_rwnd_per_dest = ((asoc->peers_rwnd + asoc->total_flight) / asoc->numnets);
 8508|  32.9k|	if (stcb->sctp_socket)
  ------------------
  |  Branch (8508:6): [True: 32.9k, False: 0]
  ------------------
 8509|  32.9k|		max_send_per_dest = SCTP_SB_LIMIT_SND(stcb->sctp_socket) / asoc->numnets;
  ------------------
  |  |  984|  32.9k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
 8510|      0|	else
 8511|      0|		max_send_per_dest = 0;
 8512|  32.9k|	if (no_data_chunks == 0) {
  ------------------
  |  Branch (8512:6): [True: 31.3k, False: 1.55k]
  ------------------
 8513|       |		/* How many non-directed chunks are there? */
 8514|  31.3k|		TAILQ_FOREACH(chk, &asoc->send_queue, sctp_next) {
  ------------------
  |  Branch (8514:3): [True: 1.32k, False: 30.0k]
  ------------------
 8515|  1.32k|			if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8515:8): [True: 1.32k, False: 0]
  ------------------
 8516|       |				/* We already have non-directed
 8517|       |				 * chunks on the queue, no need
 8518|       |				 * to do a fill-up.
 8519|       |				 */
 8520|  1.32k|				skip_fill_up = 1;
 8521|  1.32k|				break;
 8522|  1.32k|			}
 8523|  1.32k|		}
 8524|  31.3k|	}
 8525|  32.9k|	if ((no_data_chunks == 0) &&
  ------------------
  |  Branch (8525:6): [True: 31.3k, False: 1.55k]
  ------------------
 8526|  31.3k|	    (skip_fill_up == 0) &&
  ------------------
  |  Branch (8526:6): [True: 30.0k, False: 1.32k]
  ------------------
 8527|  30.0k|	    (!stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, asoc))) {
  ------------------
  |  Branch (8527:6): [True: 4.76k, False: 25.2k]
  ------------------
 8528|  8.79k|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (8528:3): [True: 8.79k, False: 4.76k]
  ------------------
 8529|       |			/*
 8530|       |			 * This for loop we are in takes in
 8531|       |			 * each net, if its's got space in cwnd and
 8532|       |			 * has data sent to it (when CMT is off) then it
 8533|       |			 * calls sctp_fill_outqueue for the net. This gets
 8534|       |			 * data on the send queue for that network.
 8535|       |			 *
 8536|       |			 * In sctp_fill_outqueue TSN's are assigned and
 8537|       |			 * data is copied out of the stream buffers. Note
 8538|       |			 * mostly copy by reference (we hope).
 8539|       |			 */
 8540|  8.79k|			net->window_probe = 0;
 8541|  8.79k|			if ((net != stcb->asoc.alternate) &&
  ------------------
  |  Branch (8541:8): [True: 8.75k, False: 37]
  ------------------
 8542|  8.75k|			    ((net->dest_state & SCTP_ADDR_PF) ||
  ------------------
  |  |  490|  8.75k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (8542:9): [True: 0, False: 8.75k]
  ------------------
 8543|  8.75k|			     ((net->dest_state & SCTP_ADDR_REACHABLE) == 0) ||
  ------------------
  |  |  481|  8.75k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (8543:9): [True: 0, False: 8.75k]
  ------------------
 8544|  8.75k|			     (net->dest_state & SCTP_ADDR_UNCONFIRMED))) {
  ------------------
  |  |  487|  8.75k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (8544:9): [True: 2.90k, False: 5.85k]
  ------------------
 8545|  2.90k|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  2.90k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  2.90k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (8545:9): [True: 0, False: 2.90k]
  ------------------
 8546|      0|					sctp_log_cwnd(stcb, net, 1,
 8547|      0|					              SCTP_CWND_LOG_FILL_OUTQ_CALLED);
  ------------------
  |  |  173|      0|#define SCTP_CWND_LOG_FILL_OUTQ_CALLED 69
  ------------------
 8548|      0|				}
 8549|  2.90k|				continue;
 8550|  2.90k|			}
 8551|  5.88k|			if ((stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins) &&
  ------------------
  |  Branch (8551:8): [True: 0, False: 5.88k]
  ------------------
 8552|      0|			    (net->flight_size == 0)) {
  ------------------
  |  Branch (8552:8): [True: 0, False: 0]
  ------------------
 8553|      0|				(*stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins)(stcb, net);
 8554|      0|			}
 8555|  5.88k|			if (net->flight_size >= net->cwnd) {
  ------------------
  |  Branch (8555:8): [True: 0, False: 5.88k]
  ------------------
 8556|       |				/* skip this network, no room - can't fill */
 8557|      0|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|      0|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (8557:9): [True: 0, False: 0]
  ------------------
 8558|      0|					sctp_log_cwnd(stcb, net, 3,
 8559|      0|					              SCTP_CWND_LOG_FILL_OUTQ_CALLED);
  ------------------
  |  |  173|      0|#define SCTP_CWND_LOG_FILL_OUTQ_CALLED 69
  ------------------
 8560|      0|				}
 8561|      0|				continue;
 8562|      0|			}
 8563|  5.88k|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.88k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  5.88k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (8563:8): [True: 0, False: 5.88k]
  ------------------
 8564|      0|				sctp_log_cwnd(stcb, net, 4, SCTP_CWND_LOG_FILL_OUTQ_CALLED);
  ------------------
  |  |  173|      0|#define SCTP_CWND_LOG_FILL_OUTQ_CALLED 69
  ------------------
 8565|      0|			}
 8566|  5.88k|			sctp_fill_outqueue(stcb, net, frag_point, eeor_mode, &quit_now, so_locked);
 8567|  5.88k|			if (quit_now) {
  ------------------
  |  Branch (8567:8): [True: 0, False: 5.88k]
  ------------------
 8568|       |				/* memory alloc failure */
 8569|      0|				no_data_chunks = 1;
 8570|      0|				break;
 8571|      0|			}
 8572|  5.88k|		}
 8573|  4.76k|	}
 8574|       |	/* now service each destination and send out what we can for it */
 8575|       |	/* Nothing to send? */
 8576|  32.9k|	if (TAILQ_EMPTY(&asoc->control_send_queue) &&
  ------------------
  |  Branch (8576:6): [True: 3.32k, False: 29.5k]
  ------------------
 8577|  32.9k|	    TAILQ_EMPTY(&asoc->asconf_send_queue) &&
  ------------------
  |  Branch (8577:6): [True: 3.32k, False: 0]
  ------------------
 8578|  32.9k|	    TAILQ_EMPTY(&asoc->send_queue)) {
  ------------------
  |  Branch (8578:6): [True: 0, False: 3.32k]
  ------------------
 8579|      0|		*reason_code = 8;
 8580|      0|		return (0);
 8581|      0|	}
 8582|       |
 8583|  32.9k|	if (asoc->sctp_cmt_on_off > 0) {
  ------------------
  |  Branch (8583:6): [True: 0, False: 32.9k]
  ------------------
 8584|       |		/* get the last start point */
 8585|      0|		start_at = asoc->last_net_cmt_send_started;
 8586|      0|		if (start_at == NULL) {
  ------------------
  |  Branch (8586:7): [True: 0, False: 0]
  ------------------
 8587|       |			/* null so to beginning */
 8588|      0|			start_at = TAILQ_FIRST(&asoc->nets);
 8589|      0|		} else {
 8590|      0|			start_at = TAILQ_NEXT(asoc->last_net_cmt_send_started, sctp_next);
 8591|      0|			if (start_at == NULL) {
  ------------------
  |  Branch (8591:8): [True: 0, False: 0]
  ------------------
 8592|      0|				start_at = TAILQ_FIRST(&asoc->nets);
 8593|      0|			}
 8594|      0|		}
 8595|      0|		asoc->last_net_cmt_send_started = start_at;
 8596|  32.9k|	} else {
 8597|  32.9k|		start_at = TAILQ_FIRST(&asoc->nets);
 8598|  32.9k|	}
 8599|   230k|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (8599:2): [True: 230k, False: 32.9k]
  ------------------
 8600|   230k|		if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8600:7): [True: 131k, False: 98.8k]
  ------------------
 8601|   131k|			if (asoc->alternate) {
  ------------------
  |  Branch (8601:8): [True: 543, False: 131k]
  ------------------
 8602|    543|				chk->whoTo = asoc->alternate;
 8603|   131k|			} else {
 8604|   131k|				chk->whoTo = asoc->primary_destination;
 8605|   131k|			}
 8606|   131k|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|   131k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 8607|   131k|		}
 8608|   230k|	}
 8609|  32.9k|	old_start_at = NULL;
 8610|  65.8k|again_one_more_time:
 8611|   111k|	for (net = start_at; net != NULL; net = TAILQ_NEXT(net, sctp_next)) {
  ------------------
  |  Branch (8611:23): [True: 78.4k, False: 32.8k]
  ------------------
 8612|       |		/* how much can we send? */
 8613|       |		/* SCTPDBG("Examine for sending net:%x\n", (uint32_t)net); */
 8614|  78.4k|		if (old_start_at && (old_start_at == net)) {
  ------------------
  |  Branch (8614:7): [True: 32.9k, False: 45.4k]
  |  Branch (8614:23): [True: 32.9k, False: 0]
  ------------------
 8615|       |			/* through list completely. */
 8616|  32.9k|			break;
 8617|  32.9k|		}
 8618|  45.4k|		tsns_sent = 0xa;
 8619|  45.4k|		if (TAILQ_EMPTY(&asoc->control_send_queue) &&
  ------------------
  |  Branch (8619:7): [True: 5.40k, False: 40.0k]
  ------------------
 8620|  45.4k|		    TAILQ_EMPTY(&asoc->asconf_send_queue) &&
  ------------------
  |  Branch (8620:7): [True: 5.40k, False: 0]
  ------------------
 8621|  5.40k|		    (net->flight_size >= net->cwnd)) {
  ------------------
  |  Branch (8621:7): [True: 0, False: 5.40k]
  ------------------
 8622|       |			/* Nothing on control or asconf and flight is full, we can skip
 8623|       |			 * even in the CMT case.
 8624|       |			 */
 8625|      0|			continue;
 8626|      0|		}
 8627|  45.4k|		bundle_at = 0;
 8628|  45.4k|		endoutchain = outchain = NULL;
 8629|  45.4k|		auth = NULL;
 8630|  45.4k|		auth_offset = 0;
 8631|  45.4k|		no_fragmentflg = 1;
 8632|  45.4k|		one_chunk = 0;
 8633|  45.4k|		if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  45.4k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (8633:7): [True: 8.76k, False: 36.7k]
  ------------------
 8634|  8.76k|			skip_data_for_this_net = 1;
 8635|  36.7k|		} else {
 8636|  36.7k|			skip_data_for_this_net = 0;
 8637|  36.7k|		}
 8638|  45.4k|		switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) {
 8639|      0|#ifdef INET
 8640|  4.94k|		case AF_INET:
  ------------------
  |  Branch (8640:3): [True: 4.94k, False: 40.5k]
  ------------------
 8641|  4.94k|			mtu = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|  4.94k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  4.94k|                              sizeof(struct sctphdr))
  ------------------
 8642|  4.94k|			break;
 8643|      0|#endif
 8644|      0|#ifdef INET6
 8645|  7.63k|		case AF_INET6:
  ------------------
  |  Branch (8645:3): [True: 7.63k, False: 37.8k]
  ------------------
 8646|  7.63k|			mtu = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  7.63k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  7.63k|                           sizeof(struct sctphdr))
  ------------------
 8647|  7.63k|			break;
 8648|      0|#endif
 8649|      0|#if defined(__Userspace__)
 8650|  32.9k|		case AF_CONN:
  ------------------
  |  | 1014|  32.9k|#define AF_CONN 123
  ------------------
  |  Branch (8650:3): [True: 32.9k, False: 12.5k]
  ------------------
 8651|  32.9k|			mtu = net->mtu - sizeof(struct sctphdr);
 8652|  32.9k|			break;
 8653|      0|#endif
 8654|      0|		default:
  ------------------
  |  Branch (8654:3): [True: 0, False: 45.4k]
  ------------------
 8655|       |			/* TSNH */
 8656|      0|			mtu = net->mtu;
 8657|      0|			break;
 8658|  45.4k|		}
 8659|  45.4k|		mx_mtu = mtu;
 8660|  45.4k|		to_out = 0;
 8661|  45.4k|		if (mtu > asoc->peers_rwnd) {
  ------------------
  |  Branch (8661:7): [True: 198, False: 45.2k]
  ------------------
 8662|    198|			if (asoc->total_flight > 0) {
  ------------------
  |  Branch (8662:8): [True: 11, False: 187]
  ------------------
 8663|       |				/* We have a packet in flight somewhere */
 8664|     11|				r_mtu = asoc->peers_rwnd;
 8665|    187|			} else {
 8666|       |				/* We are always allowed to send one MTU out */
 8667|    187|				one_chunk = 1;
 8668|    187|				r_mtu = mtu;
 8669|    187|			}
 8670|  45.2k|		} else {
 8671|  45.2k|			r_mtu = mtu;
 8672|  45.2k|		}
 8673|  45.4k|		error = 0;
 8674|       |		/************************/
 8675|       |		/* ASCONF transmission */
 8676|       |		/************************/
 8677|       |		/* Now first lets go through the asconf queue */
 8678|  45.4k|		TAILQ_FOREACH_SAFE(chk, &asoc->asconf_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  45.4k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  45.4k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 45.4k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  45.4k|              (var) = (tvar))
  ------------------
 8679|      0|			if (chk->rec.chunk_id.id != SCTP_ASCONF) {
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (8679:8): [True: 0, False: 0]
  ------------------
 8680|      0|				continue;
 8681|      0|			}
 8682|      0|			if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8682:8): [True: 0, False: 0]
  ------------------
 8683|      0|				if (asoc->alternate == NULL) {
  ------------------
  |  Branch (8683:9): [True: 0, False: 0]
  ------------------
 8684|      0|					if (asoc->primary_destination != net) {
  ------------------
  |  Branch (8684:10): [True: 0, False: 0]
  ------------------
 8685|      0|						break;
 8686|      0|					}
 8687|      0|				} else {
 8688|      0|					if (asoc->alternate != net) {
  ------------------
  |  Branch (8688:10): [True: 0, False: 0]
  ------------------
 8689|      0|						break;
 8690|      0|					}
 8691|      0|				}
 8692|      0|			} else {
 8693|      0|				if (chk->whoTo != net) {
  ------------------
  |  Branch (8693:9): [True: 0, False: 0]
  ------------------
 8694|      0|					break;
 8695|      0|				}
 8696|      0|			}
 8697|      0|			if (chk->data == NULL) {
  ------------------
  |  Branch (8697:8): [True: 0, False: 0]
  ------------------
 8698|      0|				break;
 8699|      0|			}
 8700|      0|			if (chk->sent != SCTP_DATAGRAM_UNSENT &&
  ------------------
  |  |  348|      0|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (8700:8): [True: 0, False: 0]
  ------------------
 8701|      0|			    chk->sent != SCTP_DATAGRAM_RESEND) {
  ------------------
  |  |  354|      0|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (8701:8): [True: 0, False: 0]
  ------------------
 8702|      0|				break;
 8703|      0|			}
 8704|       |			/*
 8705|       |			 * if no AUTH is yet included and this chunk
 8706|       |			 * requires it, make sure to account for it.  We
 8707|       |			 * don't apply the size until the AUTH chunk is
 8708|       |			 * actually added below in case there is no room for
 8709|       |			 * this chunk. NOTE: we overload the use of "omtu"
 8710|       |			 * here
 8711|       |			 */
 8712|      0|			if ((auth == NULL) &&
  ------------------
  |  Branch (8712:8): [True: 0, False: 0]
  ------------------
 8713|      0|			    sctp_auth_is_required_chunk(chk->rec.chunk_id.id,
  ------------------
  |  |  100|      0|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 0]
  |  |  |  Branch (100:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 8714|      0|							stcb->asoc.peer_auth_chunks)) {
 8715|      0|				omtu = sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id);
 8716|      0|			} else
 8717|      0|				omtu = 0;
 8718|       |			/* Here we do NOT factor the r_mtu */
 8719|      0|			if ((chk->send_size < (int)(mtu - omtu)) ||
  ------------------
  |  Branch (8719:8): [True: 0, False: 0]
  ------------------
 8720|      0|			    (chk->flags & CHUNK_FLAGS_FRAGMENT_OK)) {
  ------------------
  |  |  481|      0|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (8720:8): [True: 0, False: 0]
  ------------------
 8721|       |				/*
 8722|       |				 * We probably should glom the mbuf chain
 8723|       |				 * from the chk->data for control but the
 8724|       |				 * problem is it becomes yet one more level
 8725|       |				 * of tracking to do if for some reason
 8726|       |				 * output fails. Then I have got to
 8727|       |				 * reconstruct the merged control chain.. el
 8728|       |				 * yucko.. for now we take the easy way and
 8729|       |				 * do the copy
 8730|       |				 */
 8731|       |				/*
 8732|       |				 * Add an AUTH chunk, if chunk requires it
 8733|       |				 * save the offset into the chain for AUTH
 8734|       |				 */
 8735|      0|				if ((auth == NULL) &&
  ------------------
  |  Branch (8735:9): [True: 0, False: 0]
  ------------------
 8736|      0|				    (sctp_auth_is_required_chunk(chk->rec.chunk_id.id,
  ------------------
  |  |  100|      0|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (8736:9): [True: 0, False: 0]
  ------------------
 8737|      0|								 stcb->asoc.peer_auth_chunks))) {
 8738|      0|					outchain = sctp_add_auth_chunk(outchain,
 8739|      0|								       &endoutchain,
 8740|      0|								       &auth,
 8741|      0|								       &auth_offset,
 8742|      0|								       stcb,
 8743|      0|								       chk->rec.chunk_id.id);
 8744|      0|					SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8745|      0|				}
 8746|      0|				outchain = sctp_copy_mbufchain(chk->data, outchain, &endoutchain,
 8747|      0|							       (int)chk->rec.chunk_id.can_take_data,
 8748|      0|							       chk->send_size, chk->copy_by_ref);
 8749|      0|				if (outchain == NULL) {
  ------------------
  |  Branch (8749:9): [True: 0, False: 0]
  ------------------
 8750|      0|					*reason_code = 8;
 8751|      0|					SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 8752|      0|					return (ENOMEM);
 8753|      0|				}
 8754|      0|				SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8755|       |				/* update our MTU size */
 8756|      0|				if (mtu > (chk->send_size + omtu))
  ------------------
  |  Branch (8756:9): [True: 0, False: 0]
  ------------------
 8757|      0|					mtu -= (chk->send_size + omtu);
 8758|      0|				else
 8759|      0|					mtu = 0;
 8760|      0|				to_out += (chk->send_size + omtu);
 8761|       |				/* Do clear IP_DF ? */
 8762|      0|				if (chk->flags & CHUNK_FLAGS_FRAGMENT_OK) {
  ------------------
  |  |  481|      0|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (8762:9): [True: 0, False: 0]
  ------------------
 8763|      0|					no_fragmentflg = 0;
 8764|      0|				}
 8765|      0|				if (chk->rec.chunk_id.can_take_data)
  ------------------
  |  Branch (8765:9): [True: 0, False: 0]
  ------------------
 8766|      0|					chk->data = NULL;
 8767|       |				/*
 8768|       |				 * set hb flag since we can
 8769|       |				 * use these for RTO
 8770|       |				 */
 8771|      0|				hbflag = 1;
 8772|      0|				asconf = 1;
 8773|       |				/*
 8774|       |				 * should sysctl this: don't
 8775|       |				 * bundle data with ASCONF
 8776|       |				 * since it requires AUTH
 8777|       |				 */
 8778|      0|				no_data_chunks = 1;
 8779|      0|				chk->sent = SCTP_DATAGRAM_SENT;
  ------------------
  |  |  349|      0|#define SCTP_DATAGRAM_SENT		1
  ------------------
 8780|      0|				if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8780:9): [True: 0, False: 0]
  ------------------
 8781|      0|					chk->whoTo = net;
 8782|      0|					atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 8783|      0|				}
 8784|      0|				chk->snd_count++;
 8785|      0|				if (mtu == 0) {
  ------------------
  |  Branch (8785:9): [True: 0, False: 0]
  ------------------
 8786|       |					/*
 8787|       |					 * Ok we are out of room but we can
 8788|       |					 * output without effecting the
 8789|       |					 * flight size since this little guy
 8790|       |					 * is a control only packet.
 8791|       |					 */
 8792|      0|					sctp_timer_start(SCTP_TIMER_TYPE_ASCONF, inp, stcb, net);
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
 8793|       |					/*
 8794|       |					 * do NOT clear the asconf
 8795|       |					 * flag as it is used to do
 8796|       |					 * appropriate source address
 8797|       |					 * selection.
 8798|       |					 */
 8799|      0|					if (*now_filled == 0) {
  ------------------
  |  Branch (8799:10): [True: 0, False: 0]
  ------------------
 8800|      0|						(void)SCTP_GETTIME_TIMEVAL(now);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 8801|      0|						*now_filled = 1;
 8802|      0|					}
 8803|      0|					net->last_sent_time = *now;
 8804|      0|					hbflag = 0;
 8805|      0|					if ((error = sctp_lowlevel_chunk_output(inp, stcb, net,
  ------------------
  |  Branch (8805:10): [True: 0, False: 0]
  ------------------
 8806|      0|					                                        (struct sockaddr *)&net->ro._l_addr,
 8807|      0|					                                        outchain, auth_offset, auth,
 8808|      0|					                                        stcb->asoc.authinfo.active_keyid,
 8809|      0|					                                        no_fragmentflg, 0, asconf,
 8810|      0|					                                        inp->sctp_lport, stcb->rport,
  ------------------
  |  |  426|      0|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      0|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      0|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8811|      0|					                                        htonl(stcb->asoc.peer_vtag),
 8812|      0|					                                        net->port, NULL,
 8813|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 8814|       |					                                        0, 0,
 8815|       |#endif
 8816|      0|					                                        false, so_locked))) {
 8817|       |						/* error, we could not output */
 8818|      0|						SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
 8819|      0|						if (from_where == 0) {
  ------------------
  |  Branch (8819:11): [True: 0, False: 0]
  ------------------
 8820|      0|							SCTP_STAT_INCR(sctps_lowlevelerrusr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8821|      0|						}
 8822|      0|						if (error == ENOBUFS) {
  ------------------
  |  Branch (8822:11): [True: 0, False: 0]
  ------------------
 8823|      0|							asoc->ifp_had_enobuf = 1;
 8824|      0|							SCTP_STAT_INCR(sctps_lowlevelerr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8825|      0|						}
 8826|       |						/* error, could not output */
 8827|      0|						if (error == EHOSTUNREACH) {
  ------------------
  |  Branch (8827:11): [True: 0, False: 0]
  ------------------
 8828|       |							/*
 8829|       |							 * Destination went
 8830|       |							 * unreachable
 8831|       |							 * during this send
 8832|       |							 */
 8833|      0|							sctp_move_chunks_from_net(stcb, net);
 8834|      0|						}
 8835|      0|						asconf = 0;
 8836|      0|						*reason_code = 7;
 8837|      0|						break;
 8838|      0|					} else {
 8839|      0|						asoc->ifp_had_enobuf = 0;
 8840|      0|					}
 8841|       |					/*
 8842|       |					 * increase the number we sent, if a
 8843|       |					 * cookie is sent we don't tell them
 8844|       |					 * any was sent out.
 8845|       |					 */
 8846|      0|					outchain = endoutchain = NULL;
 8847|      0|					auth = NULL;
 8848|      0|					auth_offset = 0;
 8849|      0|					asconf = 0;
 8850|      0|					if (!no_out_cnt)
  ------------------
  |  Branch (8850:10): [True: 0, False: 0]
  ------------------
 8851|      0|						*num_out += ctl_cnt;
 8852|       |					/* recalc a clean slate and setup */
 8853|      0|					switch (net->ro._l_addr.sa.sa_family) {
 8854|      0|#ifdef INET
 8855|      0|						case AF_INET:
  ------------------
  |  Branch (8855:7): [True: 0, False: 0]
  ------------------
 8856|      0|							mtu = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      0|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      0|                              sizeof(struct sctphdr))
  ------------------
 8857|      0|							break;
 8858|      0|#endif
 8859|      0|#ifdef INET6
 8860|      0|						case AF_INET6:
  ------------------
  |  Branch (8860:7): [True: 0, False: 0]
  ------------------
 8861|      0|							mtu = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 8862|      0|							break;
 8863|      0|#endif
 8864|      0|#if defined(__Userspace__)
 8865|      0|						case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (8865:7): [True: 0, False: 0]
  ------------------
 8866|      0|							mtu = net->mtu - sizeof(struct sctphdr);
 8867|      0|							break;
 8868|      0|#endif
 8869|      0|						default:
  ------------------
  |  Branch (8869:7): [True: 0, False: 0]
  ------------------
 8870|       |							/* TSNH */
 8871|      0|							mtu = net->mtu;
 8872|      0|							break;
 8873|      0|					}
 8874|      0|					to_out = 0;
 8875|      0|					no_fragmentflg = 1;
 8876|      0|				}
 8877|      0|			}
 8878|      0|		}
 8879|  45.4k|		if (error != 0) {
  ------------------
  |  Branch (8879:7): [True: 0, False: 45.4k]
  ------------------
 8880|       |			/* try next net */
 8881|      0|			continue;
 8882|      0|		}
 8883|       |		/************************/
 8884|       |		/* Control transmission */
 8885|       |		/************************/
 8886|       |		/* Now first lets go through the control queue */
 8887|   782k|		TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  45.4k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   828k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 782k, False: 45.4k]
  |  |  |  Branch (1130:24): [True: 782k, False: 0]
  |  |  ------------------
  |  | 1131|   782k|              (var) = (tvar))
  ------------------
 8888|   782k|			if ((sack_goes_to) &&
  ------------------
  |  Branch (8888:8): [True: 0, False: 782k]
  ------------------
 8889|      0|			    (chk->rec.chunk_id.id == SCTP_ECN_ECHO) &&
  ------------------
  |  |  466|      0|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (8889:8): [True: 0, False: 0]
  ------------------
 8890|      0|			    (chk->whoTo != sack_goes_to)) {
  ------------------
  |  Branch (8890:8): [True: 0, False: 0]
  ------------------
 8891|       |				/*
 8892|       |				 * if we have a sack in queue, and we are looking at an
 8893|       |				 * ecn echo that is NOT queued to where the sack is going..
 8894|       |				 */
 8895|      0|				if (chk->whoTo == net) {
  ------------------
  |  Branch (8895:9): [True: 0, False: 0]
  ------------------
 8896|       |					/* Don't transmit it to where its going (current net) */
 8897|      0|					continue;
 8898|      0|				} else if (sack_goes_to == net) {
  ------------------
  |  Branch (8898:16): [True: 0, False: 0]
  ------------------
 8899|       |					/* But do transmit it to this address */
 8900|      0|					goto skip_net_check;
 8901|      0|				}
 8902|      0|			}
 8903|   782k|			if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8903:8): [True: 0, False: 782k]
  ------------------
 8904|      0|				if (asoc->alternate == NULL) {
  ------------------
  |  Branch (8904:9): [True: 0, False: 0]
  ------------------
 8905|      0|					if (asoc->primary_destination != net) {
  ------------------
  |  Branch (8905:10): [True: 0, False: 0]
  ------------------
 8906|      0|						continue;
 8907|      0|					}
 8908|      0|				} else {
 8909|      0|					if (asoc->alternate != net) {
  ------------------
  |  Branch (8909:10): [True: 0, False: 0]
  ------------------
 8910|      0|						continue;
 8911|      0|					}
 8912|      0|				}
 8913|   782k|			} else {
 8914|   782k|				if (chk->whoTo != net) {
  ------------------
  |  Branch (8914:9): [True: 554k, False: 228k]
  ------------------
 8915|   554k|					continue;
 8916|   554k|				}
 8917|   782k|			}
 8918|   228k|		skip_net_check:
 8919|   228k|			if (chk->data == NULL) {
  ------------------
  |  Branch (8919:8): [True: 0, False: 228k]
  ------------------
 8920|      0|				continue;
 8921|      0|			}
 8922|   228k|			if (chk->sent != SCTP_DATAGRAM_UNSENT) {
  ------------------
  |  |  348|   228k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (8922:8): [True: 15.2k, False: 213k]
  ------------------
 8923|       |				/*
 8924|       |				 * It must be unsent. Cookies and ASCONF's
 8925|       |				 * hang around but there timers will force
 8926|       |				 * when marked for resend.
 8927|       |				 */
 8928|  15.2k|				continue;
 8929|  15.2k|			}
 8930|       |			/*
 8931|       |			 * if no AUTH is yet included and this chunk
 8932|       |			 * requires it, make sure to account for it.  We
 8933|       |			 * don't apply the size until the AUTH chunk is
 8934|       |			 * actually added below in case there is no room for
 8935|       |			 * this chunk. NOTE: we overload the use of "omtu"
 8936|       |			 * here
 8937|       |			 */
 8938|   213k|			if ((auth == NULL) &&
  ------------------
  |  Branch (8938:8): [True: 212k, False: 1.48k]
  ------------------
 8939|   212k|			    sctp_auth_is_required_chunk(chk->rec.chunk_id.id,
  ------------------
  |  |  100|   212k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 791, False: 211k]
  |  |  |  Branch (100:51): [True: 58.9k, False: 153k]
  |  |  ------------------
  ------------------
 8940|   213k|							stcb->asoc.peer_auth_chunks)) {
 8941|    791|				omtu = sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id);
 8942|    791|			} else
 8943|   212k|				omtu = 0;
 8944|       |			/* Here we do NOT factor the r_mtu */
 8945|   213k|			if ((chk->send_size <= (int)(mtu - omtu)) ||
  ------------------
  |  Branch (8945:8): [True: 172k, False: 40.6k]
  ------------------
 8946|   172k|			    (chk->flags & CHUNK_FLAGS_FRAGMENT_OK)) {
  ------------------
  |  |  481|  40.6k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (8946:8): [True: 46, False: 40.6k]
  ------------------
 8947|       |				/*
 8948|       |				 * We probably should glom the mbuf chain
 8949|       |				 * from the chk->data for control but the
 8950|       |				 * problem is it becomes yet one more level
 8951|       |				 * of tracking to do if for some reason
 8952|       |				 * output fails. Then I have got to
 8953|       |				 * reconstruct the merged control chain.. el
 8954|       |				 * yucko.. for now we take the easy way and
 8955|       |				 * do the copy
 8956|       |				 */
 8957|       |				/*
 8958|       |				 * Add an AUTH chunk, if chunk requires it
 8959|       |				 * save the offset into the chain for AUTH
 8960|       |				 */
 8961|   172k|				if ((auth == NULL) &&
  ------------------
  |  Branch (8961:9): [True: 171k, False: 1.29k]
  ------------------
 8962|   171k|				    (sctp_auth_is_required_chunk(chk->rec.chunk_id.id,
  ------------------
  |  |  100|   171k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 45.3k, False: 126k]
  |  |  ------------------
  ------------------
  |  Branch (8962:9): [True: 790, False: 170k]
  ------------------
 8963|   171k|								 stcb->asoc.peer_auth_chunks))) {
 8964|    790|					outchain = sctp_add_auth_chunk(outchain,
 8965|    790|								       &endoutchain,
 8966|    790|								       &auth,
 8967|    790|								       &auth_offset,
 8968|    790|								       stcb,
 8969|    790|								       chk->rec.chunk_id.id);
 8970|    790|					SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|    790|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    790|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    790|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    790|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8971|    790|				}
 8972|   172k|				outchain = sctp_copy_mbufchain(chk->data, outchain, &endoutchain,
 8973|   172k|							       (int)chk->rec.chunk_id.can_take_data,
 8974|   172k|							       chk->send_size, chk->copy_by_ref);
 8975|   172k|				if (outchain == NULL) {
  ------------------
  |  Branch (8975:9): [True: 0, False: 172k]
  ------------------
 8976|      0|					*reason_code = 8;
 8977|      0|					SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 8978|      0|					return (ENOMEM);
 8979|      0|				}
 8980|   172k|				SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|   172k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|   172k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|   172k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|   172k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8981|       |				/* update our MTU size */
 8982|   172k|				if (mtu > (chk->send_size + omtu))
  ------------------
  |  Branch (8982:9): [True: 170k, False: 1.89k]
  ------------------
 8983|   170k|					mtu -= (chk->send_size + omtu);
 8984|  1.89k|				else
 8985|  1.89k|					mtu = 0;
 8986|   172k|				to_out += (chk->send_size + omtu);
 8987|       |				/* Do clear IP_DF ? */
 8988|   172k|				if (chk->flags & CHUNK_FLAGS_FRAGMENT_OK) {
  ------------------
  |  |  481|   172k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (8988:9): [True: 8.65k, False: 164k]
  ------------------
 8989|  8.65k|					no_fragmentflg = 0;
 8990|  8.65k|				}
 8991|   172k|				if (chk->rec.chunk_id.can_take_data)
  ------------------
  |  Branch (8991:9): [True: 58.7k, False: 114k]
  ------------------
 8992|  58.7k|					chk->data = NULL;
 8993|       |				/* Mark things to be removed, if needed */
 8994|   172k|				if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|   172k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (8994:9): [True: 5.16k, False: 167k]
  ------------------
 8995|   167k|				    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK) || /* EY */
  ------------------
  |  |  472|   167k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (8995:9): [True: 374, False: 167k]
  ------------------
 8996|   167k|				    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_REQUEST) ||
  ------------------
  |  |  458|   167k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (8996:9): [True: 26.8k, False: 140k]
  ------------------
 8997|   140k|				    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_ACK) ||
  ------------------
  |  |  459|   140k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (8997:9): [True: 24.0k, False: 116k]
  ------------------
 8998|   116k|				    (chk->rec.chunk_id.id == SCTP_SHUTDOWN) ||
  ------------------
  |  |  461|   116k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (8998:9): [True: 69, False: 116k]
  ------------------
 8999|   116k|				    (chk->rec.chunk_id.id == SCTP_SHUTDOWN_ACK) ||
  ------------------
  |  |  462|   116k|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (8999:9): [True: 743, False: 115k]
  ------------------
 9000|   115k|				    (chk->rec.chunk_id.id == SCTP_OPERATION_ERROR) ||
  ------------------
  |  |  463|   115k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (9000:9): [True: 96.3k, False: 19.3k]
  ------------------
 9001|  19.3k|				    (chk->rec.chunk_id.id == SCTP_COOKIE_ACK) ||
  ------------------
  |  |  465|  19.3k|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (9001:9): [True: 476, False: 18.9k]
  ------------------
 9002|  18.9k|				    (chk->rec.chunk_id.id == SCTP_ECN_CWR) ||
  ------------------
  |  |  467|  18.9k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (9002:9): [True: 362, False: 18.5k]
  ------------------
 9003|  18.5k|				    (chk->rec.chunk_id.id == SCTP_PACKET_DROPPED) ||
  ------------------
  |  |  479|  18.5k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (9003:9): [True: 0, False: 18.5k]
  ------------------
 9004|   155k|				    (chk->rec.chunk_id.id == SCTP_ASCONF_ACK)) {
  ------------------
  |  |  477|  18.5k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (9004:9): [True: 768, False: 17.7k]
  ------------------
 9005|   155k|					if (chk->rec.chunk_id.id == SCTP_HEARTBEAT_REQUEST) {
  ------------------
  |  |  458|   155k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (9005:10): [True: 26.8k, False: 128k]
  ------------------
 9006|  26.8k|						hbflag = 1;
 9007|  26.8k|					}
 9008|       |					/* remove these chunks at the end */
 9009|   155k|					if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|   155k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (9009:10): [True: 5.16k, False: 149k]
  ------------------
 9010|   149k|					    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK)) {
  ------------------
  |  |  472|   149k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (9010:10): [True: 374, False: 149k]
  ------------------
 9011|       |						/* turn off the timer */
 9012|  5.53k|						if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|  5.53k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  5.53k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 5.53k]
  |  |  ------------------
  ------------------
 9013|      0|							sctp_timer_stop(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 9014|      0|							                inp, stcb, NULL,
 9015|      0|							                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_1);
  ------------------
  |  |  763|      0|#define SCTP_FROM_SCTP_OUTPUT       0x90000000
  ------------------
              							                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_1);
  ------------------
  |  |  769|      0|#define SCTP_LOC_1  0x00000001
  ------------------
 9016|      0|						}
 9017|  5.53k|					}
 9018|   155k|					ctl_cnt++;
 9019|   155k|				} else {
 9020|       |					/*
 9021|       |					 * Other chunks, since they have
 9022|       |					 * timers running (i.e. COOKIE)
 9023|       |					 * we just "trust" that it
 9024|       |					 * gets sent or retransmitted.
 9025|       |					 */
 9026|  17.7k|					ctl_cnt++;
 9027|  17.7k|					if (chk->rec.chunk_id.id == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  17.7k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (9027:10): [True: 7.88k, False: 9.89k]
  ------------------
 9028|  7.88k|						cookie = 1;
 9029|  7.88k|						no_out_cnt = 1;
 9030|  9.89k|					} else if (chk->rec.chunk_id.id == SCTP_ECN_ECHO) {
  ------------------
  |  |  466|  9.89k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (9030:17): [True: 0, False: 9.89k]
  ------------------
 9031|       |						/*
 9032|       |						 * Increment ecne send count here
 9033|       |						 * this means we may be over-zealous in
 9034|       |						 * our counting if the send fails, but its
 9035|       |						 * the best place to do it (we used to do
 9036|       |						 * it in the queue of the chunk, but that did
 9037|       |						 * not tell how many times it was sent.
 9038|       |						 */
 9039|      0|						SCTP_STAT_INCR(sctps_sendecne);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9040|      0|					}
 9041|  17.7k|					chk->sent = SCTP_DATAGRAM_SENT;
  ------------------
  |  |  349|  17.7k|#define SCTP_DATAGRAM_SENT		1
  ------------------
 9042|  17.7k|					if (chk->whoTo == NULL) {
  ------------------
  |  Branch (9042:10): [True: 0, False: 17.7k]
  ------------------
 9043|      0|						chk->whoTo = net;
 9044|      0|						atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9045|      0|					}
 9046|  17.7k|					chk->snd_count++;
 9047|  17.7k|				}
 9048|   172k|				if (mtu == 0) {
  ------------------
  |  Branch (9048:9): [True: 1.89k, False: 170k]
  ------------------
 9049|       |					/*
 9050|       |					 * Ok we are out of room but we can
 9051|       |					 * output without effecting the
 9052|       |					 * flight size since this little guy
 9053|       |					 * is a control only packet.
 9054|       |					 */
 9055|  1.89k|					switch (asoc->snd_edmid) {
 9056|      0|					case SCTP_EDMID_LOWER_LAYER_DTLS:
  ------------------
  |  |  810|      0|#define SCTP_EDMID_LOWER_LAYER_DTLS 1
  ------------------
  |  Branch (9056:6): [True: 0, False: 1.89k]
  ------------------
 9057|      0|						use_zero_crc = true;
 9058|      0|						break;
 9059|  1.89k|					default:
  ------------------
  |  Branch (9059:6): [True: 1.89k, False: 0]
  ------------------
 9060|  1.89k|						use_zero_crc = false;
 9061|  1.89k|						break;
 9062|  1.89k|					}
 9063|  1.89k|					if (asconf) {
  ------------------
  |  Branch (9063:10): [True: 0, False: 1.89k]
  ------------------
 9064|      0|						sctp_timer_start(SCTP_TIMER_TYPE_ASCONF, inp, stcb, net);
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
 9065|      0|						use_zero_crc = false;
 9066|       |						/*
 9067|       |						 * do NOT clear the asconf
 9068|       |						 * flag as it is used to do
 9069|       |						 * appropriate source address
 9070|       |						 * selection.
 9071|       |						 */
 9072|      0|					}
 9073|  1.89k|					if (cookie) {
  ------------------
  |  Branch (9073:10): [True: 8, False: 1.88k]
  ------------------
 9074|      8|						sctp_timer_start(SCTP_TIMER_TYPE_COOKIE, inp, stcb, net);
  ------------------
  |  |  537|      8|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
 9075|      8|						use_zero_crc = false;
 9076|      8|						cookie = 0;
 9077|      8|					}
 9078|       |					/* Only HB or ASCONF advances time */
 9079|  1.89k|					if (hbflag) {
  ------------------
  |  Branch (9079:10): [True: 934, False: 961]
  ------------------
 9080|    934|						if (*now_filled == 0) {
  ------------------
  |  Branch (9080:11): [True: 43, False: 891]
  ------------------
 9081|     43|							(void)SCTP_GETTIME_TIMEVAL(now);
  ------------------
  |  |  991|     43|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 9082|     43|							*now_filled = 1;
 9083|     43|						}
 9084|    934|						net->last_sent_time = *now;
 9085|    934|						hbflag = 0;
 9086|    934|					}
 9087|  1.89k|					if ((error = sctp_lowlevel_chunk_output(inp, stcb, net,
  ------------------
  |  Branch (9087:10): [True: 10, False: 1.88k]
  ------------------
 9088|  1.89k|					                                        (struct sockaddr *)&net->ro._l_addr,
 9089|  1.89k|					                                        outchain,
 9090|  1.89k|					                                        auth_offset, auth,
 9091|  1.89k|					                                        stcb->asoc.authinfo.active_keyid,
 9092|  1.89k|					                                        no_fragmentflg, 0, asconf,
 9093|  1.89k|					                                        inp->sctp_lport, stcb->rport,
  ------------------
  |  |  426|  1.89k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  1.89k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  1.89k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9094|  1.89k|					                                        htonl(stcb->asoc.peer_vtag),
 9095|  1.89k|					                                        net->port, NULL,
 9096|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 9097|       |					                                        0, 0,
 9098|       |#endif
 9099|  1.89k|					                                        use_zero_crc, so_locked))) {
 9100|       |						/* error, we could not output */
 9101|     10|						SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
 9102|     10|						if (from_where == 0) {
  ------------------
  |  Branch (9102:11): [True: 0, False: 10]
  ------------------
 9103|      0|							SCTP_STAT_INCR(sctps_lowlevelerrusr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9104|      0|						}
 9105|     10|						if (error == ENOBUFS) {
  ------------------
  |  Branch (9105:11): [True: 0, False: 10]
  ------------------
 9106|      0|							asoc->ifp_had_enobuf = 1;
 9107|      0|							SCTP_STAT_INCR(sctps_lowlevelerr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9108|      0|						}
 9109|     10|						if (error == EHOSTUNREACH) {
  ------------------
  |  Branch (9109:11): [True: 3, False: 7]
  ------------------
 9110|       |							/*
 9111|       |							 * Destination went
 9112|       |							 * unreachable
 9113|       |							 * during this send
 9114|       |							 */
 9115|      3|							sctp_move_chunks_from_net(stcb, net);
 9116|      3|						}
 9117|     10|						asconf = 0;
 9118|     10|						*reason_code = 7;
 9119|     10|						break;
 9120|  1.88k|					} else {
 9121|  1.88k|						asoc->ifp_had_enobuf = 0;
 9122|  1.88k|					}
 9123|       |					/*
 9124|       |					 * increase the number we sent, if a
 9125|       |					 * cookie is sent we don't tell them
 9126|       |					 * any was sent out.
 9127|       |					 */
 9128|  1.88k|					outchain = endoutchain = NULL;
 9129|  1.88k|					auth = NULL;
 9130|  1.88k|					auth_offset = 0;
 9131|  1.88k|					asconf = 0;
 9132|  1.88k|					if (!no_out_cnt)
  ------------------
  |  Branch (9132:10): [True: 1.87k, False: 9]
  ------------------
 9133|  1.87k|						*num_out += ctl_cnt;
 9134|       |					/* recalc a clean slate and setup */
 9135|  1.88k|					switch (net->ro._l_addr.sa.sa_family) {
 9136|      0|#ifdef INET
 9137|      0|						case AF_INET:
  ------------------
  |  Branch (9137:7): [True: 0, False: 1.88k]
  ------------------
 9138|      0|							mtu = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      0|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      0|                              sizeof(struct sctphdr))
  ------------------
 9139|      0|							break;
 9140|      0|#endif
 9141|      0|#ifdef INET6
 9142|      0|						case AF_INET6:
  ------------------
  |  Branch (9142:7): [True: 0, False: 1.88k]
  ------------------
 9143|      0|							mtu = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 9144|      0|							break;
 9145|      0|#endif
 9146|      0|#if defined(__Userspace__)
 9147|  1.88k|						case AF_CONN:
  ------------------
  |  | 1014|  1.88k|#define AF_CONN 123
  ------------------
  |  Branch (9147:7): [True: 1.88k, False: 0]
  ------------------
 9148|  1.88k|							mtu = net->mtu - sizeof(struct sctphdr);
 9149|  1.88k|							break;
 9150|      0|#endif
 9151|      0|						default:
  ------------------
  |  Branch (9151:7): [True: 0, False: 1.88k]
  ------------------
 9152|       |							/* TSNH */
 9153|      0|							mtu = net->mtu;
 9154|      0|							break;
 9155|  1.88k|					}
 9156|  1.88k|					to_out = 0;
 9157|  1.88k|					no_fragmentflg = 1;
 9158|  1.88k|				}
 9159|   172k|			}
 9160|   213k|		}
 9161|  45.4k|		if (error != 0) {
  ------------------
  |  Branch (9161:7): [True: 10, False: 45.4k]
  ------------------
 9162|       |			/* try next net */
 9163|     10|			continue;
 9164|     10|		}
 9165|       |		/* JRI: if dest is in PF state, do not send data to it */
 9166|  45.4k|		if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (9166:7): [True: 0, False: 45.4k]
  ------------------
 9167|      0|		    (net != stcb->asoc.alternate) &&
  ------------------
  |  Branch (9167:7): [True: 0, False: 0]
  ------------------
 9168|      0|		    (net->dest_state & SCTP_ADDR_PF)) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (9168:7): [True: 0, False: 0]
  ------------------
 9169|      0|			goto no_data_fill;
 9170|      0|		}
 9171|  45.4k|		if (net->flight_size >= net->cwnd) {
  ------------------
  |  Branch (9171:7): [True: 0, False: 45.4k]
  ------------------
 9172|      0|			goto no_data_fill;
 9173|      0|		}
 9174|  45.4k|		if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (9174:7): [True: 0, False: 45.4k]
  ------------------
 9175|      0|		    (SCTP_BASE_SYSCTL(sctp_buffer_splitting) & SCTP_RECV_BUFFER_SPLITTING) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		    (SCTP_BASE_SYSCTL(sctp_buffer_splitting) & SCTP_RECV_BUFFER_SPLITTING) &&
  ------------------
  |  |  943|      0|#define SCTP_RECV_BUFFER_SPLITTING 0x00000002
  ------------------
  |  Branch (9175:7): [True: 0, False: 0]
  ------------------
 9176|      0|		    (net->flight_size > max_rwnd_per_dest)) {
  ------------------
  |  Branch (9176:7): [True: 0, False: 0]
  ------------------
 9177|      0|			goto no_data_fill;
 9178|      0|		}
 9179|       |		/*
 9180|       |		 * We need a specific accounting for the usage of the
 9181|       |		 * send buffer. We also need to check the number of messages
 9182|       |		 * per net. For now, this is better than nothing and it
 9183|       |		 * disabled by default...
 9184|       |		 */
 9185|  45.4k|		if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (9185:7): [True: 0, False: 45.4k]
  ------------------
 9186|      0|		    (SCTP_BASE_SYSCTL(sctp_buffer_splitting) & SCTP_SEND_BUFFER_SPLITTING) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		    (SCTP_BASE_SYSCTL(sctp_buffer_splitting) & SCTP_SEND_BUFFER_SPLITTING) &&
  ------------------
  |  |  942|      0|#define SCTP_SEND_BUFFER_SPLITTING 0x00000001
  ------------------
  |  Branch (9186:7): [True: 0, False: 0]
  ------------------
 9187|      0|		    (max_send_per_dest > 0) &&
  ------------------
  |  Branch (9187:7): [True: 0, False: 0]
  ------------------
 9188|      0|		    (net->flight_size > max_send_per_dest)) {
  ------------------
  |  Branch (9188:7): [True: 0, False: 0]
  ------------------
 9189|      0|			goto no_data_fill;
 9190|      0|		}
 9191|       |		/*********************/
 9192|       |		/* Data transmission */
 9193|       |		/*********************/
 9194|       |		/*
 9195|       |		 * if AUTH for DATA is required and no AUTH has been added
 9196|       |		 * yet, account for this in the mtu now... if no data can be
 9197|       |		 * bundled, this adjustment won't matter anyways since the
 9198|       |		 * packet will be going out...
 9199|       |		 */
 9200|  45.4k|		data_auth_reqd = sctp_auth_is_required_chunk(SCTP_DATA,
  ------------------
  |  |  100|  45.4k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 2.18k, False: 43.2k]
  |  |  ------------------
  ------------------
 9201|  45.4k|							     stcb->asoc.peer_auth_chunks);
 9202|  45.4k|		if (data_auth_reqd && (auth == NULL)) {
  ------------------
  |  Branch (9202:7): [True: 96, False: 45.3k]
  |  Branch (9202:25): [True: 84, False: 12]
  ------------------
 9203|     84|			mtu -= sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id);
 9204|     84|		}
 9205|       |		/* now lets add any data within the MTU constraints */
 9206|  45.4k|		switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) {
 9207|      0|#ifdef INET
 9208|  4.94k|		case AF_INET:
  ------------------
  |  Branch (9208:3): [True: 4.94k, False: 40.5k]
  ------------------
 9209|  4.94k|			if (net->mtu > SCTP_MIN_V4_OVERHEAD)
  ------------------
  |  |  588|  4.94k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  4.94k|                              sizeof(struct sctphdr))
  ------------------
  |  Branch (9209:8): [True: 4.94k, False: 0]
  ------------------
 9210|  4.94k|				omtu = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|  4.94k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  4.94k|                              sizeof(struct sctphdr))
  ------------------
 9211|      0|			else
 9212|      0|				omtu = 0;
 9213|  4.94k|			break;
 9214|      0|#endif
 9215|      0|#ifdef INET6
 9216|  7.62k|		case AF_INET6:
  ------------------
  |  Branch (9216:3): [True: 7.62k, False: 37.8k]
  ------------------
 9217|  7.62k|			if (net->mtu > SCTP_MIN_OVERHEAD)
  ------------------
  |  |  564|  7.62k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  7.62k|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (9217:8): [True: 7.62k, False: 0]
  ------------------
 9218|  7.62k|				omtu = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  7.62k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  7.62k|                           sizeof(struct sctphdr))
  ------------------
 9219|      0|			else
 9220|      0|				omtu = 0;
 9221|  7.62k|			break;
 9222|      0|#endif
 9223|      0|#if defined(__Userspace__)
 9224|  32.9k|		case AF_CONN:
  ------------------
  |  | 1014|  32.9k|#define AF_CONN 123
  ------------------
  |  Branch (9224:3): [True: 32.9k, False: 12.5k]
  ------------------
 9225|  32.9k|			if (net->mtu > sizeof(struct sctphdr)) {
  ------------------
  |  Branch (9225:8): [True: 32.9k, False: 0]
  ------------------
 9226|  32.9k|				omtu = net->mtu - sizeof(struct sctphdr);
 9227|  32.9k|			} else {
 9228|      0|				omtu = 0;
 9229|      0|			}
 9230|  32.9k|			break;
 9231|      0|#endif
 9232|      0|		default:
  ------------------
  |  Branch (9232:3): [True: 0, False: 45.4k]
  ------------------
 9233|       |			/* TSNH */
 9234|      0|			omtu = 0;
 9235|      0|			break;
 9236|  45.4k|		}
 9237|  45.4k|		if ((((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|  45.4k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  45.4k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|  45.4k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (9237:9): [True: 19.2k, False: 26.2k]
  ------------------
 9238|  26.2k|		      (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  472|  26.2k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  26.2k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		      (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  461|  26.2k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (9238:9): [True: 199, False: 26.0k]
  ------------------
 9239|  19.4k|		     (skip_data_for_this_net == 0)) ||
  ------------------
  |  Branch (9239:8): [True: 14.5k, False: 4.93k]
  ------------------
 9240|  30.9k|		    (cookie)) {
  ------------------
  |  Branch (9240:7): [True: 7.87k, False: 23.1k]
  ------------------
 9241|  22.3k|			TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  22.3k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  28.4k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 6.04k, False: 22.3k]
  |  |  |  Branch (1130:24): [True: 6.04k, False: 0]
  |  |  ------------------
  |  | 1131|  22.3k|              (var) = (tvar))
  ------------------
 9242|  6.04k|				if (no_data_chunks) {
  ------------------
  |  Branch (9242:9): [True: 0, False: 6.04k]
  ------------------
 9243|       |					/* let only control go out */
 9244|      0|					*reason_code = 1;
 9245|      0|					break;
 9246|      0|				}
 9247|  6.04k|				if (net->flight_size >= net->cwnd) {
  ------------------
  |  Branch (9247:9): [True: 0, False: 6.04k]
  ------------------
 9248|       |					/* skip this net, no room for data */
 9249|      0|					*reason_code = 2;
 9250|      0|					break;
 9251|      0|				}
 9252|  6.04k|				if ((chk->whoTo != NULL) &&
  ------------------
  |  Branch (9252:9): [True: 0, False: 6.04k]
  ------------------
 9253|      0|				    (chk->whoTo != net)) {
  ------------------
  |  Branch (9253:9): [True: 0, False: 0]
  ------------------
 9254|       |					/* Don't send the chunk on this net */
 9255|      0|					continue;
 9256|      0|				}
 9257|       |
 9258|  6.04k|				if (asoc->sctp_cmt_on_off == 0) {
  ------------------
  |  Branch (9258:9): [True: 6.04k, False: 0]
  ------------------
 9259|  6.04k|					if ((asoc->alternate) &&
  ------------------
  |  Branch (9259:10): [True: 1.06k, False: 4.97k]
  ------------------
 9260|  1.06k|					    (asoc->alternate != net) &&
  ------------------
  |  Branch (9260:10): [True: 960, False: 109]
  ------------------
 9261|    960|					    (chk->whoTo == NULL)) {
  ------------------
  |  Branch (9261:10): [True: 960, False: 0]
  ------------------
 9262|    960|						continue;
 9263|  5.08k|					} else if ((net != asoc->primary_destination) &&
  ------------------
  |  Branch (9263:17): [True: 1.41k, False: 3.67k]
  ------------------
 9264|  1.41k|						   (asoc->alternate == NULL) &&
  ------------------
  |  Branch (9264:10): [True: 1.30k, False: 109]
  ------------------
 9265|  1.30k|						   (chk->whoTo == NULL)) {
  ------------------
  |  Branch (9265:10): [True: 1.30k, False: 0]
  ------------------
 9266|  1.30k|						continue;
 9267|  1.30k|					}
 9268|  6.04k|				}
 9269|  3.78k|				if ((chk->send_size > omtu) && ((chk->flags & CHUNK_FLAGS_FRAGMENT_OK) == 0)) {
  ------------------
  |  |  481|      0|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (9269:9): [True: 0, False: 3.78k]
  |  Branch (9269:36): [True: 0, False: 0]
  ------------------
 9270|       |					/*-
 9271|       |					 * strange, we have a chunk that is
 9272|       |					 * to big for its destination and
 9273|       |					 * yet no fragment ok flag.
 9274|       |					 * Something went wrong when the
 9275|       |					 * PMTU changed...we did not mark
 9276|       |					 * this chunk for some reason?? I
 9277|       |					 * will fix it here by letting IP
 9278|       |					 * fragment it for now and printing
 9279|       |					 * a warning. This really should not
 9280|       |					 * happen ...
 9281|       |					 */
 9282|      0|					SCTP_PRINTF("Warning chunk of %d bytes > mtu:%d and yet PMTU disc missed\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 9283|      0|						    chk->send_size, mtu);
 9284|      0|					chk->flags |= CHUNK_FLAGS_FRAGMENT_OK;
  ------------------
  |  |  481|      0|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
 9285|      0|				}
 9286|  3.78k|				if (SCTP_BASE_SYSCTL(sctp_enable_sack_immediately) &&
  ------------------
  |  |  590|  7.56k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 3.78k, False: 0]
  |  |  ------------------
  ------------------
 9287|  3.78k|				    (asoc->state & SCTP_STATE_SHUTDOWN_PENDING)) {
  ------------------
  |  |  463|  3.78k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (9287:9): [True: 0, False: 3.78k]
  ------------------
 9288|      0|					struct sctp_data_chunk *dchkh;
 9289|       |
 9290|      0|					dchkh = mtod(chk->data, struct sctp_data_chunk *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9291|      0|					dchkh->ch.chunk_flags |= SCTP_DATA_SACK_IMMEDIATELY;
  ------------------
  |  |  516|      0|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
 9292|      0|				}
 9293|  3.78k|				if (((chk->send_size <= mtu) && (chk->send_size <= r_mtu)) ||
  ------------------
  |  Branch (9293:10): [True: 3.77k, False: 14]
  |  Branch (9293:37): [True: 3.77k, False: 0]
  ------------------
 9294|  3.77k|				    ((chk->flags & CHUNK_FLAGS_FRAGMENT_OK) && (chk->send_size <= asoc->peers_rwnd))) {
  ------------------
  |  |  481|     14|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (9294:10): [True: 0, False: 14]
  |  Branch (9294:52): [True: 0, False: 0]
  ------------------
 9295|       |					/* ok we will add this one */
 9296|       |
 9297|       |					/*
 9298|       |					 * Add an AUTH chunk, if chunk
 9299|       |					 * requires it, save the offset into
 9300|       |					 * the chain for AUTH
 9301|       |					 */
 9302|  3.77k|					if (data_auth_reqd) {
  ------------------
  |  Branch (9302:10): [True: 35, False: 3.73k]
  ------------------
 9303|     35|						if (auth == NULL) {
  ------------------
  |  Branch (9303:11): [True: 26, False: 9]
  ------------------
 9304|     26|							outchain = sctp_add_auth_chunk(outchain,
 9305|     26|										       &endoutchain,
 9306|     26|										       &auth,
 9307|     26|										       &auth_offset,
 9308|     26|										       stcb,
 9309|     26|										       SCTP_DATA);
  ------------------
  |  |  454|     26|#define SCTP_DATA		0x00
  ------------------
 9310|     26|							auth_keyid = chk->auth_keyid;
 9311|     26|							override_ok = 0;
 9312|     26|							SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|     26|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     26|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     26|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     26|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9313|     26|						} else if (override_ok) {
  ------------------
  |  Branch (9313:18): [True: 9, False: 0]
  ------------------
 9314|       |							/* use this data's keyid */
 9315|      9|							auth_keyid = chk->auth_keyid;
 9316|      9|							override_ok = 0;
 9317|      9|						} else if (auth_keyid != chk->auth_keyid) {
  ------------------
  |  Branch (9317:18): [True: 0, False: 0]
  ------------------
 9318|       |							/* different keyid, so done bundling */
 9319|      0|							break;
 9320|      0|						}
 9321|     35|					}
 9322|  3.77k|					outchain = sctp_copy_mbufchain(chk->data, outchain, &endoutchain, 0,
 9323|  3.77k|								       chk->send_size, chk->copy_by_ref);
 9324|  3.77k|					if (outchain == NULL) {
  ------------------
  |  Branch (9324:10): [True: 0, False: 3.77k]
  ------------------
 9325|      0|						SCTPDBG(SCTP_DEBUG_OUTPUT3, "No memory?\n");
 9326|      0|						if (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (9326:11): [True: 0, False: 0]
  ------------------
 9327|      0|							sctp_timer_start(SCTP_TIMER_TYPE_SEND, inp, stcb, net);
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 9328|      0|						}
 9329|      0|						*reason_code = 3;
 9330|      0|						SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
 9331|      0|						return (ENOMEM);
 9332|      0|					}
 9333|       |					/* update our MTU size */
 9334|       |					/* Do clear IP_DF ? */
 9335|  3.77k|					if (chk->flags & CHUNK_FLAGS_FRAGMENT_OK) {
  ------------------
  |  |  481|  3.77k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (9335:10): [True: 0, False: 3.77k]
  ------------------
 9336|      0|						no_fragmentflg = 0;
 9337|      0|					}
 9338|       |					/* unsigned subtraction of mtu */
 9339|  3.77k|					if (mtu > chk->send_size)
  ------------------
  |  Branch (9339:10): [True: 3.76k, False: 3]
  ------------------
 9340|  3.76k|						mtu -= chk->send_size;
 9341|      3|					else
 9342|      3|						mtu = 0;
 9343|       |					/* unsigned subtraction of r_mtu */
 9344|  3.77k|					if (r_mtu > chk->send_size)
  ------------------
  |  Branch (9344:10): [True: 3.77k, False: 0]
  ------------------
 9345|  3.77k|						r_mtu -= chk->send_size;
 9346|      0|					else
 9347|      0|						r_mtu = 0;
 9348|       |
 9349|  3.77k|					to_out += chk->send_size;
 9350|  3.77k|					if ((to_out > mx_mtu) && no_fragmentflg) {
  ------------------
  |  Branch (9350:10): [True: 6, False: 3.76k]
  |  Branch (9350:31): [True: 0, False: 6]
  ------------------
 9351|      0|#ifdef INVARIANTS
 9352|      0|						panic("Exceeding mtu of %d out size is %d", mx_mtu, to_out);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 9353|       |#else
 9354|       |						SCTP_PRINTF("Exceeding mtu of %d out size is %d\n",
 9355|       |							    mx_mtu, to_out);
 9356|       |#endif
 9357|      0|					}
 9358|  3.77k|					chk->window_probe = 0;
 9359|  3.77k|					data_list[bundle_at++] = chk;
 9360|  3.77k|					if (bundle_at >= SCTP_MAX_DATA_BUNDLING) {
  ------------------
  |  |  876|  3.77k|#define SCTP_MAX_DATA_BUNDLING		256
  ------------------
  |  Branch (9360:10): [True: 0, False: 3.77k]
  ------------------
 9361|      0|						break;
 9362|      0|					}
 9363|  3.77k|					if (chk->sent == SCTP_DATAGRAM_UNSENT) {
  ------------------
  |  |  348|  3.77k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (9363:10): [True: 3.77k, False: 0]
  ------------------
 9364|  3.77k|						if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == 0) {
  ------------------
  |  |  515|  3.77k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (9364:11): [True: 3.77k, False: 0]
  ------------------
 9365|  3.77k|							SCTP_STAT_INCR_COUNTER64(sctps_outorderchunks);
  ------------------
  |  | 1128|  3.77k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  3.77k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  3.77k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  3.77k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9366|  3.77k|						} else {
 9367|      0|							SCTP_STAT_INCR_COUNTER64(sctps_outunorderchunks);
  ------------------
  |  | 1128|      0|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9368|      0|						}
 9369|  3.77k|						if (((chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) == SCTP_DATA_LAST_FRAG) &&
  ------------------
  |  |  512|  3.77k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
              						if (((chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) == SCTP_DATA_LAST_FRAG) &&
  ------------------
  |  |  512|  3.77k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (9369:11): [True: 3.77k, False: 0]
  ------------------
 9370|  3.77k|						    ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == 0))
  ------------------
  |  |  513|  3.77k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (9370:11): [True: 0, False: 3.77k]
  ------------------
 9371|       |							/* Count number of user msg's that were fragmented
 9372|       |							 * we do this by counting when we see a LAST fragment
 9373|       |							 * only.
 9374|       |							 */
 9375|  3.77k|							SCTP_STAT_INCR_COUNTER64(sctps_fragusrmsgs);
  ------------------
  |  | 1128|  3.77k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  3.77k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9376|  3.77k|					}
 9377|  3.77k|					if ((mtu == 0) || (r_mtu == 0) || (one_chunk)) {
  ------------------
  |  Branch (9377:10): [True: 3, False: 3.76k]
  |  Branch (9377:24): [True: 0, False: 3.76k]
  |  Branch (9377:40): [True: 0, False: 3.76k]
  ------------------
 9378|      3|						if ((one_chunk) && (stcb->asoc.total_flight == 0)) {
  ------------------
  |  Branch (9378:11): [True: 0, False: 3]
  |  Branch (9378:26): [True: 0, False: 0]
  ------------------
 9379|      0|							data_list[0]->window_probe = 1;
 9380|      0|							net->window_probe = 1;
 9381|      0|						}
 9382|      3|						break;
 9383|      3|					}
 9384|  3.77k|				} else {
 9385|       |					/*
 9386|       |					 * Must be sent in order of the
 9387|       |					 * TSN's (on a network)
 9388|       |					 */
 9389|     14|					break;
 9390|     14|				}
 9391|  3.78k|			}	/* for (chunk gather loop for this net) */
 9392|  22.3k|		}		/* if asoc.state OPEN */
 9393|  45.4k|	no_data_fill:
 9394|       |		/* Is there something to send for this destination? */
 9395|  45.4k|		if (outchain) {
  ------------------
  |  Branch (9395:7): [True: 23.3k, False: 22.1k]
  ------------------
 9396|  23.3k|			switch (asoc->snd_edmid) {
 9397|      0|			case SCTP_EDMID_LOWER_LAYER_DTLS:
  ------------------
  |  |  810|      0|#define SCTP_EDMID_LOWER_LAYER_DTLS 1
  ------------------
  |  Branch (9397:4): [True: 0, False: 23.3k]
  ------------------
 9398|      0|				use_zero_crc = true;
 9399|      0|				break;
 9400|  23.3k|			default:
  ------------------
  |  Branch (9400:4): [True: 23.3k, False: 0]
  ------------------
 9401|  23.3k|				use_zero_crc = false;
 9402|  23.3k|				break;
 9403|  23.3k|			}
 9404|       |			/* We may need to start a control timer or two */
 9405|  23.3k|			if (asconf) {
  ------------------
  |  Branch (9405:8): [True: 0, False: 23.3k]
  ------------------
 9406|      0|				sctp_timer_start(SCTP_TIMER_TYPE_ASCONF, inp,
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
 9407|      0|						 stcb, net);
 9408|      0|				use_zero_crc = false;
 9409|       |				/*
 9410|       |				 * do NOT clear the asconf flag as it is used
 9411|       |				 * to do appropriate source address selection.
 9412|       |				 */
 9413|      0|			}
 9414|  23.3k|			if (cookie) {
  ------------------
  |  Branch (9414:8): [True: 7.87k, False: 15.4k]
  ------------------
 9415|  7.87k|				sctp_timer_start(SCTP_TIMER_TYPE_COOKIE, inp, stcb, net);
  ------------------
  |  |  537|  7.87k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
 9416|  7.87k|				use_zero_crc = false;
 9417|  7.87k|				cookie = 0;
 9418|  7.87k|			}
 9419|       |			/* must start a send timer if data is being sent */
 9420|  23.3k|			if (bundle_at && (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer))) {
  ------------------
  |  |  102|  3.77k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  3.77k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (9420:8): [True: 3.77k, False: 19.6k]
  |  Branch (9420:21): [True: 2.82k, False: 948]
  ------------------
 9421|       |				/*
 9422|       |				 * no timer running on this destination
 9423|       |				 * restart it.
 9424|       |				 */
 9425|  2.82k|				sctp_timer_start(SCTP_TIMER_TYPE_SEND, inp, stcb, net);
  ------------------
  |  |  532|  2.82k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 9426|  2.82k|			}
 9427|  23.3k|			if (bundle_at || hbflag) {
  ------------------
  |  Branch (9427:8): [True: 3.77k, False: 19.6k]
  |  Branch (9427:21): [True: 2.41k, False: 17.1k]
  ------------------
 9428|       |				/* For data/asconf and hb set time */
 9429|  6.18k|				if (*now_filled == 0) {
  ------------------
  |  Branch (9429:9): [True: 4.43k, False: 1.74k]
  ------------------
 9430|  4.43k|					(void)SCTP_GETTIME_TIMEVAL(now);
  ------------------
  |  |  991|  4.43k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 9431|  4.43k|					*now_filled = 1;
 9432|  4.43k|				}
 9433|  6.18k|				net->last_sent_time = *now;
 9434|  6.18k|			}
 9435|       |			/* Now send it, if there is anything to send :> */
 9436|  23.3k|			if ((error = sctp_lowlevel_chunk_output(inp,
  ------------------
  |  Branch (9436:8): [True: 2.68k, False: 20.6k]
  ------------------
 9437|  23.3k|			                                        stcb,
 9438|  23.3k|			                                        net,
 9439|  23.3k|			                                        (struct sockaddr *)&net->ro._l_addr,
 9440|  23.3k|			                                        outchain,
 9441|  23.3k|			                                        auth_offset,
 9442|  23.3k|			                                        auth,
 9443|  23.3k|			                                        auth_keyid,
 9444|  23.3k|			                                        no_fragmentflg,
 9445|  23.3k|			                                        bundle_at,
 9446|  23.3k|			                                        asconf,
 9447|  23.3k|			                                        inp->sctp_lport, stcb->rport,
  ------------------
  |  |  426|  23.3k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  23.3k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  23.3k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9448|  23.3k|			                                        htonl(stcb->asoc.peer_vtag),
 9449|  23.3k|			                                        net->port, NULL,
 9450|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 9451|       |			                                        0, 0,
 9452|       |#endif
 9453|  23.3k|			                                        use_zero_crc,
 9454|  23.3k|			                                        so_locked))) {
 9455|       |				/* error, we could not output */
 9456|  2.68k|				SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
 9457|  2.68k|				if (from_where == 0) {
  ------------------
  |  Branch (9457:9): [True: 0, False: 2.68k]
  ------------------
 9458|      0|					SCTP_STAT_INCR(sctps_lowlevelerrusr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9459|      0|				}
 9460|  2.68k|				if (error == ENOBUFS) {
  ------------------
  |  Branch (9460:9): [True: 0, False: 2.68k]
  ------------------
 9461|      0|					asoc->ifp_had_enobuf = 1;
 9462|      0|					SCTP_STAT_INCR(sctps_lowlevelerr);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9463|      0|				}
 9464|  2.68k|				if (error == EHOSTUNREACH) {
  ------------------
  |  Branch (9464:9): [True: 1.93k, False: 749]
  ------------------
 9465|       |					/*
 9466|       |					 * Destination went unreachable
 9467|       |					 * during this send
 9468|       |					 */
 9469|  1.93k|					sctp_move_chunks_from_net(stcb, net);
 9470|  1.93k|				}
 9471|  2.68k|				asconf = 0;
 9472|  2.68k|				*reason_code = 6;
 9473|       |				/*-
 9474|       |				 * I add this line to be paranoid. As far as
 9475|       |				 * I can tell the continue, takes us back to
 9476|       |				 * the top of the for, but just to make sure
 9477|       |				 * I will reset these again here.
 9478|       |				 */
 9479|  2.68k|				ctl_cnt = 0;
 9480|  2.68k|				continue; /* This takes us back to the for() for the nets. */
 9481|  20.6k|			} else {
 9482|  20.6k|				asoc->ifp_had_enobuf = 0;
 9483|  20.6k|			}
 9484|  20.6k|			endoutchain = NULL;
 9485|  20.6k|			auth = NULL;
 9486|  20.6k|			auth_offset = 0;
 9487|  20.6k|			asconf = 0;
 9488|  20.6k|			if (!no_out_cnt) {
  ------------------
  |  Branch (9488:8): [True: 12.8k, False: 7.88k]
  ------------------
 9489|  12.8k|				*num_out += (ctl_cnt + bundle_at);
 9490|  12.8k|			}
 9491|  20.6k|			if (bundle_at) {
  ------------------
  |  Branch (9491:8): [True: 3.34k, False: 17.3k]
  ------------------
 9492|       |				/* setup for a RTO measurement */
 9493|  3.34k|				tsns_sent = data_list[0]->rec.data.tsn;
 9494|       |				/* fill time if not already filled */
 9495|  3.34k|				if (*now_filled == 0) {
  ------------------
  |  Branch (9495:9): [True: 0, False: 3.34k]
  ------------------
 9496|      0|					(void)SCTP_GETTIME_TIMEVAL(&asoc->time_last_sent);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 9497|      0|					*now_filled = 1;
 9498|      0|					*now = asoc->time_last_sent;
 9499|  3.34k|				} else {
 9500|  3.34k|					asoc->time_last_sent = *now;
 9501|  3.34k|				}
 9502|  3.34k|				if (net->rto_needed) {
  ------------------
  |  Branch (9502:9): [True: 3.05k, False: 287]
  ------------------
 9503|  3.05k|					data_list[0]->do_rtt = 1;
 9504|  3.05k|					net->rto_needed = 0;
 9505|  3.05k|				}
 9506|  3.34k|				SCTP_STAT_INCR_BY(sctps_senddata, bundle_at);
  ------------------
  |  | 1123|  3.34k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  ------------------
  |  |  |  |   94|  3.34k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 9507|  3.34k|				sctp_clean_up_datalist(stcb, asoc, data_list, bundle_at, net);
 9508|  3.34k|			}
 9509|  20.6k|			if (one_chunk) {
  ------------------
  |  Branch (9509:8): [True: 89, False: 20.6k]
  ------------------
 9510|     89|				break;
 9511|     89|			}
 9512|  20.6k|		}
 9513|  42.7k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  42.7k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  42.7k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (9513:7): [True: 0, False: 42.7k]
  ------------------
 9514|      0|			sctp_log_cwnd(stcb, net, tsns_sent, SCTP_CWND_LOG_FROM_SEND);
  ------------------
  |  |  165|      0|#define SCTP_CWND_LOG_FROM_SEND     61
  ------------------
 9515|      0|		}
 9516|  42.7k|	}
 9517|  65.8k|	if (old_start_at == NULL) {
  ------------------
  |  Branch (9517:6): [True: 32.9k, False: 32.9k]
  ------------------
 9518|  32.9k|		old_start_at = start_at;
 9519|  32.9k|		start_at = TAILQ_FIRST(&asoc->nets);
 9520|  32.9k|		if (old_start_at)
  ------------------
  |  Branch (9520:7): [True: 32.9k, False: 0]
  ------------------
 9521|  32.9k|			goto again_one_more_time;
 9522|  32.9k|	}
 9523|       |
 9524|       |	/*
 9525|       |	 * At the end there should be no NON timed chunks hanging on this
 9526|       |	 * queue.
 9527|       |	 */
 9528|  32.9k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  32.9k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  32.9k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (9528:6): [True: 0, False: 32.9k]
  ------------------
 9529|      0|		sctp_log_cwnd(stcb, net, *num_out, SCTP_CWND_LOG_FROM_SEND);
  ------------------
  |  |  165|      0|#define SCTP_CWND_LOG_FROM_SEND     61
  ------------------
 9530|      0|	}
 9531|  32.9k|	if ((*num_out == 0) && (*reason_code == 0)) {
  ------------------
  |  Branch (9531:6): [True: 20.0k, False: 12.8k]
  |  Branch (9531:25): [True: 19.3k, False: 745]
  ------------------
 9532|  19.3k|		*reason_code = 4;
 9533|  19.3k|	} else {
 9534|  13.5k|		*reason_code = 5;
 9535|  13.5k|	}
 9536|  32.9k|	sctp_clean_up_ctl(stcb, asoc, so_locked);
 9537|  32.9k|	return (0);
 9538|  65.8k|}
sctp_output.c:sctp_fill_outqueue:
 8279|  5.88k|{
 8280|  5.88k|	struct sctp_association *asoc;
 8281|  5.88k|	struct sctp_stream_out *strq;
 8282|  5.88k|	uint32_t space_left, moved, total_moved;
 8283|  5.88k|	int bail, giveup;
 8284|       |
 8285|  5.88k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.88k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.88k|	do {                         \
  |  |  |  |  113|  5.88k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.88k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.88k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.88k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8286|  5.88k|	asoc = &stcb->asoc;
 8287|  5.88k|	total_moved = 0;
 8288|  5.88k|	switch (net->ro._l_addr.sa.sa_family) {
 8289|      0|#ifdef INET
 8290|      8|		case AF_INET:
  ------------------
  |  Branch (8290:3): [True: 8, False: 5.87k]
  ------------------
 8291|      8|			space_left = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      8|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      8|                              sizeof(struct sctphdr))
  ------------------
 8292|      8|			break;
 8293|      0|#endif
 8294|      0|#ifdef INET6
 8295|  1.11k|		case AF_INET6:
  ------------------
  |  Branch (8295:3): [True: 1.11k, False: 4.77k]
  ------------------
 8296|  1.11k|			space_left = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  1.11k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  1.11k|                           sizeof(struct sctphdr))
  ------------------
 8297|  1.11k|			break;
 8298|      0|#endif
 8299|      0|#if defined(__Userspace__)
 8300|  4.76k|		case AF_CONN:
  ------------------
  |  | 1014|  4.76k|#define AF_CONN 123
  ------------------
  |  Branch (8300:3): [True: 4.76k, False: 1.12k]
  ------------------
 8301|  4.76k|			space_left = net->mtu - sizeof(struct sctphdr);
 8302|  4.76k|			break;
 8303|      0|#endif
 8304|      0|		default:
  ------------------
  |  Branch (8304:3): [True: 0, False: 5.88k]
  ------------------
 8305|       |			/* TSNH */
 8306|      0|			space_left = net->mtu;
 8307|      0|			break;
 8308|  5.88k|	}
 8309|       |	/* Need an allowance for the data chunk header too */
 8310|  5.88k|	space_left -= SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  5.88k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.66k, False: 1.22k]
  |  |  ------------------
  |  |  135|  5.88k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.88k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8311|       |
 8312|       |	/* must make even word boundary */
 8313|  5.88k|	space_left &= 0xfffffffc;
 8314|  5.88k|	strq = stcb->asoc.ss_functions.sctp_ss_select_stream(stcb, net, asoc);
 8315|  5.88k|	giveup = 0;
 8316|  5.88k|	bail = 0;
 8317|  10.6k|	while ((space_left > 0) && (strq != NULL)) {
  ------------------
  |  Branch (8317:9): [True: 10.6k, False: 0]
  |  Branch (8317:29): [True: 4.76k, False: 5.88k]
  ------------------
 8318|  4.76k|		moved = sctp_move_to_outqueue(stcb, net, strq, space_left,
 8319|  4.76k|		                              frag_point, &giveup, eeor_mode,
 8320|  4.76k|		                              &bail, so_locked);
 8321|  4.76k|		if ((giveup != 0) || (bail != 0)) {
  ------------------
  |  Branch (8321:7): [True: 0, False: 4.76k]
  |  Branch (8321:24): [True: 0, False: 4.76k]
  ------------------
 8322|      0|			break;
 8323|      0|		}
 8324|  4.76k|		strq = stcb->asoc.ss_functions.sctp_ss_select_stream(stcb, net, asoc);
 8325|  4.76k|		total_moved += moved;
 8326|  4.76k|		if (space_left >= moved) {
  ------------------
  |  Branch (8326:7): [True: 4.76k, False: 0]
  ------------------
 8327|  4.76k|			space_left -= moved;
 8328|  4.76k|		} else {
 8329|      0|			space_left = 0;
 8330|      0|		}
 8331|  4.76k|		if (space_left >= SCTP_DATA_CHUNK_OVERHEAD(stcb)) {
  ------------------
  |  |  134|  4.76k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.53k, False: 1.22k]
  |  |  ------------------
  |  |  135|  4.76k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  4.76k|                                        sizeof(struct sctp_data_chunk))
  ------------------
  |  Branch (8331:7): [True: 4.76k, False: 0]
  ------------------
 8332|  4.76k|			space_left -= SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  4.76k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.53k, False: 1.22k]
  |  |  ------------------
  |  |  135|  4.76k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  4.76k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8333|  4.76k|		} else {
 8334|      0|			space_left = 0;
 8335|      0|		}
 8336|  4.76k|		space_left &= 0xfffffffc;
 8337|  4.76k|	}
 8338|  5.88k|	if (bail != 0)
  ------------------
  |  Branch (8338:6): [True: 0, False: 5.88k]
  ------------------
 8339|      0|		*quit_now = 1;
 8340|       |
 8341|  5.88k|	stcb->asoc.ss_functions.sctp_ss_packet_done(stcb, net, asoc);
 8342|       |
 8343|  5.88k|	if (total_moved == 0) {
  ------------------
  |  Branch (8343:6): [True: 1.12k, False: 4.76k]
  ------------------
 8344|  1.12k|		if ((stcb->asoc.sctp_cmt_on_off == 0) &&
  ------------------
  |  Branch (8344:7): [True: 1.12k, False: 0]
  ------------------
 8345|  1.12k|		    (net == stcb->asoc.primary_destination)) {
  ------------------
  |  Branch (8345:7): [True: 14, False: 1.11k]
  ------------------
 8346|       |			/* ran dry for primary network net */
 8347|     14|			SCTP_STAT_INCR(sctps_primary_randry);
  ------------------
  |  | 1112|     14|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     14|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     14|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8348|  1.11k|		} else if (stcb->asoc.sctp_cmt_on_off > 0) {
  ------------------
  |  Branch (8348:14): [True: 0, False: 1.11k]
  ------------------
 8349|       |			/* ran dry with CMT on */
 8350|      0|			SCTP_STAT_INCR(sctps_cmt_randry);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8351|      0|		}
 8352|  1.12k|	}
 8353|  5.88k|}
sctp_output.c:sctp_move_to_outqueue:
 7816|  4.76k|{
 7817|       |	/* Move from the stream to the send_queue keeping track of the total */
 7818|  4.76k|	struct sctp_association *asoc;
 7819|  4.76k|	struct sctp_stream_queue_pending *sp;
 7820|  4.76k|	struct sctp_tmit_chunk *chk;
 7821|  4.76k|	struct sctp_data_chunk *dchkh=NULL;
 7822|  4.76k|	struct sctp_idata_chunk *ndchkh=NULL;
 7823|  4.76k|	uint32_t to_move, length;
 7824|  4.76k|	int leading;
 7825|  4.76k|	uint8_t rcv_flags = 0;
 7826|  4.76k|	uint8_t some_taken;
 7827|       |
 7828|  4.76k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  4.76k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  4.76k|	do {                         \
  |  |  |  |  113|  4.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4.76k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  4.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7829|  4.76k|	asoc = &stcb->asoc;
 7830|  4.76k|one_more_time:
 7831|       |	/*sa_ignore FREED_MEMORY*/
 7832|  4.76k|	sp = TAILQ_FIRST(&strq->outqueue);
 7833|  4.76k|	if (sp == NULL) {
  ------------------
  |  Branch (7833:6): [True: 0, False: 4.76k]
  ------------------
 7834|      0|		sp = TAILQ_FIRST(&strq->outqueue);
 7835|      0|		if (sp) {
  ------------------
  |  Branch (7835:7): [True: 0, False: 0]
  ------------------
 7836|      0|			goto one_more_time;
 7837|      0|		}
 7838|      0|		if ((sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_EXPLICIT_EOR) == 0) &&
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (7838:7): [True: 0, False: 0]
  ------------------
 7839|      0|		    (stcb->asoc.idata_supported == 0) &&
  ------------------
  |  Branch (7839:7): [True: 0, False: 0]
  ------------------
 7840|      0|		    (strq->last_msg_incomplete)) {
  ------------------
  |  Branch (7840:7): [True: 0, False: 0]
  ------------------
 7841|      0|			SCTP_PRINTF("Huh? Stream:%d lm_in_c=%d but queue is NULL\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7842|      0|			            strq->sid,
 7843|      0|			            strq->last_msg_incomplete);
 7844|      0|			strq->last_msg_incomplete = 0;
 7845|      0|		}
 7846|      0|		to_move = 0;
 7847|      0|		goto out_of;
 7848|      0|	}
 7849|  4.76k|	if ((sp->msg_is_complete) && (sp->length == 0)) {
  ------------------
  |  Branch (7849:6): [True: 4.76k, False: 0]
  |  Branch (7849:31): [True: 0, False: 4.76k]
  ------------------
 7850|      0|		if (sp->sender_all_done) {
  ------------------
  |  Branch (7850:7): [True: 0, False: 0]
  ------------------
 7851|       |			/* We are doing deferred cleanup. Last
 7852|       |			 * time through when we took all the data
 7853|       |			 * the sender_all_done was not set.
 7854|       |			 */
 7855|      0|			if ((sp->put_last_out == 0) && (sp->discard_rest == 0)) {
  ------------------
  |  Branch (7855:8): [True: 0, False: 0]
  |  Branch (7855:35): [True: 0, False: 0]
  ------------------
 7856|      0|				SCTP_PRINTF("Gak, put out entire msg with NO end!-1\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7857|      0|				SCTP_PRINTF("sender_done:%d len:%d msg_comp:%d put_last_out:%d\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7858|      0|				            sp->sender_all_done,
 7859|      0|				            sp->length,
 7860|      0|				            sp->msg_is_complete,
 7861|      0|				            sp->put_last_out);
 7862|      0|			}
 7863|      0|			atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 7864|      0|			TAILQ_REMOVE(&strq->outqueue, sp, next);
  ------------------
  |  Branch (7864:4): [True: 0, False: 0]
  |  Branch (7864:4): [Folded, False: 0]
  ------------------
 7865|      0|			stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, strq, sp);
 7866|      0|			if ((strq->state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|      0|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (7866:8): [True: 0, False: 0]
  ------------------
 7867|      0|			    (strq->chunks_on_queues == 0) &&
  ------------------
  |  Branch (7867:8): [True: 0, False: 0]
  ------------------
 7868|      0|			    TAILQ_EMPTY(&strq->outqueue)) {
  ------------------
  |  Branch (7868:8): [True: 0, False: 0]
  ------------------
 7869|      0|				stcb->asoc.trigger_reset = 1;
 7870|      0|			}
 7871|      0|			if (sp->net) {
  ------------------
  |  Branch (7871:8): [True: 0, False: 0]
  ------------------
 7872|      0|				sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 7873|      0|				sp->net = NULL;
 7874|      0|			}
 7875|      0|			if (sp->data) {
  ------------------
  |  Branch (7875:8): [True: 0, False: 0]
  ------------------
 7876|      0|				sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 7877|      0|				sp->data = NULL;
 7878|      0|			}
 7879|      0|			sctp_free_a_strmoq(stcb, sp, so_locked);
  ------------------
  |  |  125|      0|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|      0|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  131|      0|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|}
  ------------------
 7880|       |			/* back to get the next msg */
 7881|      0|			goto one_more_time;
 7882|      0|		} else {
 7883|       |			/* sender just finished this but
 7884|       |			 * still holds a reference
 7885|       |			 */
 7886|      0|			*giveup = 1;
 7887|      0|			to_move = 0;
 7888|      0|			goto out_of;
 7889|      0|		}
 7890|  4.76k|	} else {
 7891|       |		/* is there some to get */
 7892|  4.76k|		if (sp->length == 0) {
  ------------------
  |  Branch (7892:7): [True: 0, False: 4.76k]
  ------------------
 7893|       |			/* no */
 7894|      0|			*giveup = 1;
 7895|      0|			to_move = 0;
 7896|      0|			goto out_of;
 7897|  4.76k|		} else if (sp->discard_rest) {
  ------------------
  |  Branch (7897:14): [True: 0, False: 4.76k]
  ------------------
 7898|       |			/* Whack down the size */
 7899|      0|			atomic_subtract_int(&stcb->asoc.total_output_queue_size, sp->length);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 7900|      0|			if ((stcb->sctp_socket != NULL) &&
  ------------------
  |  Branch (7900:8): [True: 0, False: 0]
  ------------------
 7901|      0|			    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7901:9): [True: 0, False: 0]
  ------------------
 7902|      0|			     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7902:9): [True: 0, False: 0]
  ------------------
 7903|      0|				SCTP_SB_DECR(&stcb->sctp_socket->so_snd, sp->length);
  ------------------
  |  |  973|      0|#define SCTP_SB_DECR(sb, decr)					\
  |  |  974|      0|{								\
  |  |  975|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  976|      0|}
  ------------------
 7904|      0|			}
 7905|      0|			if (sp->data) {
  ------------------
  |  Branch (7905:8): [True: 0, False: 0]
  ------------------
 7906|      0|				sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 7907|      0|				sp->data = NULL;
 7908|      0|				sp->tail_mbuf = NULL;
 7909|      0|			}
 7910|      0|			sp->length = 0;
 7911|      0|			sp->some_taken = 1;
 7912|      0|			*giveup = 1;
 7913|      0|			to_move = 0;
 7914|      0|			goto out_of;
 7915|      0|		}
 7916|  4.76k|	}
 7917|  4.76k|	some_taken = sp->some_taken;
 7918|  4.76k|	length = sp->length;
 7919|  4.76k|	if (sp->msg_is_complete) {
  ------------------
  |  Branch (7919:6): [True: 4.76k, False: 0]
  ------------------
 7920|       |		/* The message is complete */
 7921|  4.76k|		to_move = min(length, frag_point);
  ------------------
  |  |   66|  4.76k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 4.76k]
  |  |  ------------------
  ------------------
 7922|  4.76k|		if (to_move == length) {
  ------------------
  |  Branch (7922:7): [True: 4.76k, False: 0]
  ------------------
 7923|       |			/* All of it fits in the MTU */
 7924|  4.76k|			if (sp->some_taken) {
  ------------------
  |  Branch (7924:8): [True: 0, False: 4.76k]
  ------------------
 7925|      0|				rcv_flags |= SCTP_DATA_LAST_FRAG;
  ------------------
  |  |  512|      0|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
 7926|  4.76k|			} else {
 7927|  4.76k|				rcv_flags |= SCTP_DATA_NOT_FRAG;
  ------------------
  |  |  514|  4.76k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
 7928|  4.76k|			}
 7929|  4.76k|			sp->put_last_out = 1;
 7930|  4.76k|			if (sp->sinfo_flags & SCTP_SACK_IMMEDIATELY) {
  ------------------
  |  |  263|  4.76k|#define SCTP_SACK_IMMEDIATELY 0x4000 /* Set I-Bit */
  ------------------
  |  Branch (7930:8): [True: 0, False: 4.76k]
  ------------------
 7931|      0|				rcv_flags |= SCTP_DATA_SACK_IMMEDIATELY;
  ------------------
  |  |  516|      0|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
 7932|      0|			}
 7933|  4.76k|		} else {
 7934|       |			/* Not all of it fits, we fragment */
 7935|      0|			if (sp->some_taken == 0) {
  ------------------
  |  Branch (7935:8): [True: 0, False: 0]
  ------------------
 7936|      0|				rcv_flags |= SCTP_DATA_FIRST_FRAG;
  ------------------
  |  |  513|      0|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
 7937|      0|			}
 7938|      0|			sp->some_taken = 1;
 7939|      0|		}
 7940|  4.76k|	} else {
 7941|      0|		to_move = sctp_can_we_split_this(stcb, length, space_left, frag_point, eeor_mode);
 7942|      0|		if (to_move > 0) {
  ------------------
  |  Branch (7942:7): [True: 0, False: 0]
  ------------------
 7943|      0|			if (to_move >= length) {
  ------------------
  |  Branch (7943:8): [True: 0, False: 0]
  ------------------
 7944|      0|				to_move = length;
 7945|      0|			}
 7946|      0|			if (sp->some_taken == 0) {
  ------------------
  |  Branch (7946:8): [True: 0, False: 0]
  ------------------
 7947|      0|				rcv_flags |= SCTP_DATA_FIRST_FRAG;
  ------------------
  |  |  513|      0|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
 7948|      0|				sp->some_taken = 1;
 7949|      0|			}
 7950|      0|		} else {
 7951|       |			/* Nothing to take. */
 7952|      0|			*giveup = 1;
 7953|      0|			to_move = 0;
 7954|      0|			goto out_of;
 7955|      0|		}
 7956|      0|	}
 7957|       |
 7958|       |	/* If we reach here, we can copy out a chunk */
 7959|  4.76k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  4.76k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  4.76k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  2.18k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  2.18k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  2.18k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 2.18k, False: 0]
  |  |  ------------------
  |  |  173|  2.18k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  2.18k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.18k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  2.18k|			(_chk)->whoTo = NULL; \
  |  |  175|  2.18k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  2.18k|		} \
  |  |  177|  2.57k|	} else { \
  |  |  178|  2.57k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.57k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.57k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.57k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.57k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.57k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.57k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.57k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.57k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.57k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.57k|	} \
  |  |  185|  4.76k|}
  ------------------
  |  Branch (7959:2): [True: 11, False: 2.56k]
  |  Branch (7959:2): [Folded, False: 2.57k]
  |  Branch (7959:2): [True: 2.18k, False: 2.57k]
  ------------------
 7960|  4.76k|	if (chk == NULL) {
  ------------------
  |  Branch (7960:6): [True: 0, False: 4.76k]
  ------------------
 7961|       |		/* No chunk memory */
 7962|      0|		*giveup = 1;
 7963|      0|		to_move = 0;
 7964|      0|		goto out_of;
 7965|      0|	}
 7966|       |	/* Setup for unordered if needed by looking
 7967|       |	 * at the user sent info flags.
 7968|       |	 */
 7969|  4.76k|	if (sp->sinfo_flags & SCTP_UNORDERED) {
  ------------------
  |  |  259|  4.76k|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
  |  Branch (7969:6): [True: 0, False: 4.76k]
  ------------------
 7970|      0|		rcv_flags |= SCTP_DATA_UNORDERED;
  ------------------
  |  |  515|      0|#define SCTP_DATA_UNORDERED        0x04
  ------------------
 7971|      0|	}
 7972|  4.76k|	if (SCTP_BASE_SYSCTL(sctp_enable_sack_immediately) &&
  ------------------
  |  |  590|  9.52k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 4.76k, False: 0]
  |  |  ------------------
  ------------------
 7973|  4.76k|	    (sp->sinfo_flags & SCTP_EOF) == SCTP_EOF) {
  ------------------
  |  |  257|  4.76k|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
              	    (sp->sinfo_flags & SCTP_EOF) == SCTP_EOF) {
  ------------------
  |  |  257|  4.76k|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (7973:6): [True: 0, False: 4.76k]
  ------------------
 7974|      0|		rcv_flags |= SCTP_DATA_SACK_IMMEDIATELY;
  ------------------
  |  |  516|      0|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
 7975|      0|	}
 7976|       |	/* clear out the chunk before setting up */
 7977|  4.76k|	memset(chk, 0, sizeof(*chk));
 7978|  4.76k|	chk->rec.data.rcv_flags = rcv_flags;
 7979|       |
 7980|  4.76k|	if (to_move >= length) {
  ------------------
  |  Branch (7980:6): [True: 4.76k, False: 0]
  ------------------
 7981|       |		/* we think we can steal the whole thing */
 7982|  4.76k|		if (to_move < sp->length) {
  ------------------
  |  Branch (7982:7): [True: 0, False: 4.76k]
  ------------------
 7983|       |			/* bail, it changed */
 7984|      0|			goto dont_do_it;
 7985|      0|		}
 7986|  4.76k|		chk->data = sp->data;
 7987|  4.76k|		chk->last_mbuf = sp->tail_mbuf;
 7988|       |		/* register the stealing */
 7989|  4.76k|		sp->data = sp->tail_mbuf = NULL;
 7990|  4.76k|	} else {
 7991|      0|		struct mbuf *m;
 7992|      0|	dont_do_it:
 7993|      0|		chk->data = SCTP_M_COPYM(sp->data, 0, to_move, M_NOWAIT);
  ------------------
  |  |  770|      0|#define SCTP_M_COPYM	m_copym
  ------------------
              		chk->data = SCTP_M_COPYM(sp->data, 0, to_move, M_NOWAIT);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 7994|      0|		chk->last_mbuf = NULL;
 7995|      0|		if (chk->data == NULL) {
  ------------------
  |  Branch (7995:7): [True: 0, False: 0]
  ------------------
 7996|      0|			sp->some_taken = some_taken;
 7997|      0|			sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (7997:4): [Folded, False: 0]
  ------------------
 7998|      0|			*bail = 1;
 7999|      0|			to_move = 0;
 8000|      0|			goto out_of;
 8001|      0|		}
 8002|       |#ifdef SCTP_MBUF_LOGGING
 8003|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 8004|       |			sctp_log_mbc(chk->data, SCTP_MBUF_ICOPY);
 8005|       |		}
 8006|       |#endif
 8007|       |		/* Pull off the data */
 8008|      0|		m_adj(sp->data, to_move);
 8009|       |		/* Now lets work our way down and compact it */
 8010|      0|		m = sp->data;
 8011|      0|		while (m && (SCTP_BUF_LEN(m) == 0)) {
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (8011:10): [True: 0, False: 0]
  |  Branch (8011:15): [True: 0, False: 0]
  ------------------
 8012|      0|			sp->data = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 8013|      0|			SCTP_BUF_NEXT(m) = NULL;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 8014|      0|			if (sp->tail_mbuf == m) {
  ------------------
  |  Branch (8014:8): [True: 0, False: 0]
  ------------------
 8015|       |				/*-
 8016|       |				 * Freeing tail? TSNH since
 8017|       |				 * we supposedly were taking less
 8018|       |				 * than the sp->length.
 8019|       |				 */
 8020|      0|#ifdef INVARIANTS
 8021|      0|				panic("Huh, freeing tail? - TSNH");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 8022|       |#else
 8023|       |				SCTP_PRINTF("Huh, freeing tail? - TSNH\n");
 8024|       |				sp->tail_mbuf = sp->data = NULL;
 8025|       |				sp->length = 0;
 8026|       |#endif
 8027|      0|			}
 8028|      0|			sctp_m_free(m);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
 8029|      0|			m = sp->data;
 8030|      0|		}
 8031|      0|	}
 8032|  4.76k|	if (SCTP_BUF_IS_EXTENDED(chk->data)) {
  ------------------
  |  |  806|  4.76k|#define SCTP_BUF_IS_EXTENDED(m) (m->m_flags & M_EXT)
  |  |  ------------------
  |  |  |  |  221|  4.76k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_BUF_IS_EXTENDED(m) (m->m_flags & M_EXT)
  |  |  ------------------
  |  |  |  |  233|  4.76k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (806:33): [True: 0, False: 4.76k]
  |  |  ------------------
  ------------------
 8033|      0|		chk->copy_by_ref = 1;
 8034|  4.76k|	} else {
 8035|  4.76k|		chk->copy_by_ref = 0;
 8036|  4.76k|	}
 8037|       |	/* get last_mbuf and counts of mb usage
 8038|       |	 * This is ugly but hopefully its only one mbuf.
 8039|       |	 */
 8040|  4.76k|	if (chk->last_mbuf == NULL) {
  ------------------
  |  Branch (8040:6): [True: 0, False: 4.76k]
  ------------------
 8041|      0|		chk->last_mbuf = chk->data;
 8042|      0|		while (SCTP_BUF_NEXT(chk->last_mbuf) != NULL) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (8042:10): [True: 0, False: 0]
  ------------------
 8043|      0|			chk->last_mbuf = SCTP_BUF_NEXT(chk->last_mbuf);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 8044|      0|		}
 8045|      0|	}
 8046|       |
 8047|  4.76k|	if (to_move > length) {
  ------------------
  |  Branch (8047:6): [True: 0, False: 4.76k]
  ------------------
 8048|       |		/*- This should not happen either
 8049|       |		 * since we always lower to_move to the size
 8050|       |		 * of sp->length if its larger.
 8051|       |		 */
 8052|      0|#ifdef INVARIANTS
 8053|      0|		panic("Huh, how can to_move be larger?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 8054|       |#else
 8055|       |		SCTP_PRINTF("Huh, how can to_move be larger?\n");
 8056|       |		sp->length = 0;
 8057|       |#endif
 8058|  4.76k|	} else {
 8059|  4.76k|		atomic_subtract_int(&sp->length, to_move);
  ------------------
  |  |   97|  4.76k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 8060|  4.76k|	}
 8061|  4.76k|	leading = SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  4.76k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.53k, False: 1.22k]
  |  |  ------------------
  |  |  135|  4.76k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  4.76k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8062|  4.76k|	if (M_LEADINGSPACE(chk->data) < leading) {
  ------------------
  |  |  343|  4.76k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  4.76k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  4.76k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (343:3): [True: 0, False: 4.76k]
  |  |  ------------------
  |  |  344|  4.76k|	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  ------------------
  |  |  |  |  326|      0|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|      0|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|      0|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|      0|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  328|      0|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  ------------------
  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  345|  4.76k|	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  ------------------
  |  |  |  |  221|  4.76k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  ------------------
  |  |  |  |  234|  4.76k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  ------------------
  |  |  |  |  226|      0|#define	m_pktdat	M_dat.MH.MH_dat.MH_databuf
  |  |  ------------------
  |  |  |  Branch (345:6): [True: 0, False: 4.76k]
  |  |  ------------------
  |  |  346|  4.76k|	    (m)->m_data - (m)->m_dat)
  |  |  ------------------
  |  |  |  |  219|  4.76k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    (m)->m_data - (m)->m_dat)
  |  |  ------------------
  |  |  |  |  227|  4.76k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  ------------------
  |  Branch (8062:6): [True: 0, False: 4.76k]
  ------------------
 8063|       |		/* Not enough room for a chunk header, get some */
 8064|      0|		struct mbuf *m;
 8065|       |
 8066|      0|		m = sctp_get_mbuf_for_msg(1, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m = sctp_get_mbuf_for_msg(1, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 8067|      0|		if (m == NULL) {
  ------------------
  |  Branch (8067:7): [True: 0, False: 0]
  ------------------
 8068|       |			/*
 8069|       |			 * we're in trouble here. _PREPEND below will free
 8070|       |			 * all the data if there is no leading space, so we
 8071|       |			 * must put the data back and restore.
 8072|       |			 */
 8073|      0|			if (sp->data == NULL) {
  ------------------
  |  Branch (8073:8): [True: 0, False: 0]
  ------------------
 8074|       |				/* unsteal the data */
 8075|      0|				sp->data = chk->data;
 8076|      0|				sp->tail_mbuf = chk->last_mbuf;
 8077|      0|			} else {
 8078|      0|				struct mbuf *m_tmp;
 8079|       |				/* reassemble the data */
 8080|      0|				m_tmp = sp->data;
 8081|      0|				sp->data = chk->data;
 8082|      0|				SCTP_BUF_NEXT(chk->last_mbuf) = m_tmp;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 8083|      0|			}
 8084|      0|			sp->some_taken = some_taken;
 8085|      0|			atomic_add_int(&sp->length, to_move);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 8086|      0|			chk->data = NULL;
 8087|      0|			*bail = 1;
 8088|      0|			sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|      0|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|      0|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|      0|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  149|      0|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|      0|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|      0|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  155|      0|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  156|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  157|      0|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|      0|		} else { \
  |  |  159|      0|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|      0|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|      0|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|      0|		} \
  |  |  163|      0|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|      0|}
  ------------------
  |  Branch (8088:4): [Folded, False: 0]
  ------------------
 8089|      0|			to_move = 0;
 8090|      0|			goto out_of;
 8091|      0|		} else {
 8092|      0|			SCTP_BUF_LEN(m) = 0;
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 8093|      0|			SCTP_BUF_NEXT(m) = chk->data;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 8094|      0|			chk->data = m;
 8095|      0|			M_ALIGN(chk->data, 4);
  ------------------
  |  |  387|      0|#define	M_ALIGN(m, len) do {						\
  |  |  388|      0|        KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)),                     \
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  389|      0|                ("%s: M_ALIGN not normal mbuf", __func__));             \
  |  |  390|      0|        KASSERT((m)->m_data == (m)->m_dat,                              \
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  391|      0|                ("%s: M_ALIGN not a virgin mbuf", __func__));           \
  |  |  392|      0|	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  393|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (393:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 8096|      0|		}
 8097|      0|	}
 8098|  4.76k|	SCTP_BUF_PREPEND(chk->data, SCTP_DATA_CHUNK_OVERHEAD(stcb), M_NOWAIT);
  ------------------
  |  |  810|  4.76k|#define SCTP_BUF_PREPEND	M_PREPEND
  |  |  ------------------
  |  |  |  |  367|  4.76k|#define	M_PREPEND(m, plen, how) do {					\
  |  |  |  |  368|  4.76k|	struct mbuf **_mmp = &(m);					\
  |  |  |  |  369|  4.76k|	struct mbuf *_mm = *_mmp;					\
  |  |  |  |  370|  9.52k|	int _mplen = (plen);						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (370:16): [True: 3.53k, False: 1.22k]
  |  |  |  |  ------------------
  |  |  |  |  371|  4.76k|	int __mhow = (how);						\
  |  |  |  |  372|  4.76k|									\
  |  |  |  |  373|  4.76k|	if (M_LEADINGSPACE(_mm) >= _mplen) {				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  343|  4.76k|	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|  4.76k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  233|  4.76k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (343:3): [True: 0, False: 4.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  344|  4.76k|	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  326|      0|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  236|      0|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (326:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  327|      0|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  233|      0|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (327:6): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  328|      0|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (328:5): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0):	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  225|      0|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  4.76k|	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|  4.76k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  234|  4.76k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  226|      0|#define	m_pktdat	M_dat.MH.MH_dat.MH_databuf
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (345:6): [True: 0, False: 4.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  346|  4.76k|	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|  4.76k|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|  4.76k|#define	m_dat		M_dat.M_databuf
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (373:6): [True: 4.76k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  374|  4.76k|		_mm->m_data -= _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  4.76k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |  375|  4.76k|		_mm->m_len += _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|  4.76k|#define	m_len		m_hdr.mh_len
  |  |  |  |  ------------------
  |  |  |  |  376|  4.76k|	} else								\
  |  |  |  |  377|  4.76k|		_mm = m_prepend(_mm, _mplen, __mhow);			\
  |  |  |  |  378|  4.76k|	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  4.76k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  234|  4.76k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (378:6): [True: 4.76k, False: 0]
  |  |  |  |  |  Branch (378:21): [True: 0, False: 4.76k]
  |  |  |  |  ------------------
  |  |  |  |  379|  4.76k|		_mm->m_pkthdr.len += _mplen;				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  |  |  ------------------
  |  |  |  |  380|  4.76k|	*_mmp = _mm;							\
  |  |  |  |  381|  4.76k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (381:10): [Folded, False: 4.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8099|  4.76k|	if (chk->data == NULL) {
  ------------------
  |  Branch (8099:6): [True: 0, False: 4.76k]
  ------------------
 8100|       |		/* HELP, TSNH since we assured it would not above? */
 8101|      0|#ifdef INVARIANTS
 8102|      0|		panic("prepend fails HELP?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 8103|       |#else
 8104|       |		SCTP_PRINTF("prepend fails HELP?\n");
 8105|       |		sctp_free_a_chunk(stcb, chk, so_locked);
 8106|       |#endif
 8107|      0|		*bail = 1;
 8108|      0|		to_move = 0;
 8109|      0|		goto out_of;
 8110|      0|	}
 8111|  4.76k|	sctp_snd_sb_alloc(stcb, SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  285|  4.76k|#define sctp_snd_sb_alloc(stcb, sz)  \
  |  |  286|  4.76k|do { \
  |  |  287|  4.76k|	atomic_add_int(&stcb->asoc.total_output_queue_size,sz); \
  |  |  ------------------
  |  |  |  |   94|  9.52k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (94:62): [True: 3.53k, False: 1.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  288|  4.76k|	if ((stcb->sctp_socket != NULL) && \
  |  |  ------------------
  |  |  |  Branch (288:6): [True: 4.76k, False: 0]
  |  |  ------------------
  |  |  289|  4.76k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|  4.76k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (289:7): [True: 4.76k, False: 0]
  |  |  ------------------
  |  |  290|  4.76k|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (290:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  291|  4.76k|		SCTP_SB_INCR(&stcb->sctp_socket->so_snd, sz); \
  |  |  ------------------
  |  |  |  |  969|  4.76k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|  4.76k|{						\
  |  |  |  |  971|  4.76k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  9.52k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (94:62): [True: 3.53k, False: 1.22k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  972|  4.76k|}
  |  |  ------------------
  |  |  292|  4.76k|	} \
  |  |  293|  4.76k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 4.76k]
  |  |  ------------------
  ------------------
 8112|  4.76k|	chk->book_size = chk->send_size = (uint16_t)(to_move + SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|  4.76k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.53k, False: 1.22k]
  |  |  ------------------
  |  |  135|  4.76k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  4.76k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8113|  4.76k|	chk->book_size_scale = 0;
 8114|  4.76k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  4.76k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 8115|       |
 8116|  4.76k|	chk->flags = 0;
 8117|  4.76k|	chk->asoc = &stcb->asoc;
 8118|  4.76k|	chk->pad_inplace = 0;
 8119|  4.76k|	chk->no_fr_allowed = 0;
 8120|  4.76k|	if (stcb->asoc.idata_supported == 0) {
  ------------------
  |  Branch (8120:6): [True: 1.22k, False: 3.53k]
  ------------------
 8121|  1.22k|		if (rcv_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|  1.22k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (8121:7): [True: 0, False: 1.22k]
  ------------------
 8122|       |			/* Just use 0. The receiver ignores the values. */
 8123|      0|			chk->rec.data.mid = 0;
 8124|  1.22k|		} else {
 8125|  1.22k|			chk->rec.data.mid = strq->next_mid_ordered;
 8126|  1.22k|			if (rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|  1.22k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (8126:8): [True: 1.22k, False: 0]
  ------------------
 8127|  1.22k|				strq->next_mid_ordered++;
 8128|  1.22k|			}
 8129|  1.22k|		}
 8130|  3.53k|	} else {
 8131|  3.53k|		if (rcv_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|  3.53k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (8131:7): [True: 0, False: 3.53k]
  ------------------
 8132|      0|			chk->rec.data.mid = strq->next_mid_unordered;
 8133|      0|			if (rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|      0|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (8133:8): [True: 0, False: 0]
  ------------------
 8134|      0|				strq->next_mid_unordered++;
 8135|      0|			}
 8136|  3.53k|		} else {
 8137|  3.53k|			chk->rec.data.mid = strq->next_mid_ordered;
 8138|  3.53k|			if (rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|  3.53k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (8138:8): [True: 3.53k, False: 0]
  ------------------
 8139|  3.53k|				strq->next_mid_ordered++;
 8140|  3.53k|			}
 8141|  3.53k|		}
 8142|  3.53k|	}
 8143|  4.76k|	chk->rec.data.sid = sp->sid;
 8144|  4.76k|	chk->rec.data.ppid = sp->ppid;
 8145|  4.76k|	chk->rec.data.context = sp->context;
 8146|  4.76k|	chk->rec.data.doing_fast_retransmit = 0;
 8147|       |
 8148|  4.76k|	chk->rec.data.timetodrop = sp->ts;
 8149|  4.76k|	chk->flags = sp->act_flags;
 8150|       |
 8151|  4.76k|	if (sp->net) {
  ------------------
  |  Branch (8151:6): [True: 0, False: 4.76k]
  ------------------
 8152|      0|		chk->whoTo = sp->net;
 8153|      0|		atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 8154|      0|	} else
 8155|  4.76k|		chk->whoTo = NULL;
 8156|       |
 8157|  4.76k|	if (sp->holds_key_ref) {
  ------------------
  |  Branch (8157:6): [True: 0, False: 4.76k]
  ------------------
 8158|      0|		chk->auth_keyid = sp->auth_keyid;
 8159|      0|		sctp_auth_key_acquire(stcb, chk->auth_keyid);
 8160|      0|		chk->holds_key_ref = 1;
 8161|      0|	}
 8162|  4.76k|	stcb->asoc.ss_functions.sctp_ss_scheduled(stcb, net, asoc, strq, to_move);
 8163|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 8164|       |	chk->rec.data.tsn = atomic_fetchadd_int(&asoc->sending_seq, 1);
 8165|       |#else
 8166|  4.76k|	chk->rec.data.tsn = asoc->sending_seq++;
 8167|  4.76k|#endif
 8168|  4.76k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_AT_SEND_2_OUTQ) {
  ------------------
  |  |  590|  4.76k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_AT_SEND_2_OUTQ) {
  ------------------
  |  |  668|  4.76k|#define SCTP_LOG_AT_SEND_2_OUTQ				0x08000000
  ------------------
  |  Branch (8168:6): [True: 0, False: 4.76k]
  ------------------
 8169|      0|		sctp_misc_ints(SCTP_STRMOUT_LOG_SEND,
  ------------------
  |  |  210|      0|#define SCTP_STRMOUT_LOG_SEND	   106
  ------------------
 8170|      0|		               (uint32_t)(uintptr_t)stcb, sp->length,
 8171|      0|		               (uint32_t)((chk->rec.data.sid << 16) | (0x0000ffff & chk->rec.data.mid)),
 8172|      0|		               chk->rec.data.tsn);
 8173|      0|	}
 8174|  4.76k|	if (stcb->asoc.idata_supported == 0) {
  ------------------
  |  Branch (8174:6): [True: 1.22k, False: 3.53k]
  ------------------
 8175|  1.22k|		dchkh = mtod(chk->data, struct sctp_data_chunk *);
  ------------------
  |  |   96|  1.22k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.22k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 8176|  3.53k|	} else {
 8177|  3.53k|		ndchkh = mtod(chk->data, struct sctp_idata_chunk *);
  ------------------
  |  |   96|  3.53k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  3.53k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 8178|  3.53k|	}
 8179|       |	/*
 8180|       |	 * Put the rest of the things in place now. Size was done
 8181|       |	 * earlier in previous loop prior to padding.
 8182|       |	 */
 8183|       |
 8184|  4.76k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  4.76k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  4.76k|	do {                         \
  |  |  |  |  113|  4.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4.76k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  4.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8185|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 8186|       |	if (asoc->tsn_out_at >= SCTP_TSN_LOG_SIZE) {
 8187|       |		asoc->tsn_out_at = 0;
 8188|       |		asoc->tsn_out_wrapped = 1;
 8189|       |	}
 8190|       |	asoc->out_tsnlog[asoc->tsn_out_at].tsn = chk->rec.data.tsn;
 8191|       |	asoc->out_tsnlog[asoc->tsn_out_at].strm = chk->rec.data.sid;
 8192|       |	asoc->out_tsnlog[asoc->tsn_out_at].seq = chk->rec.data.mid;
 8193|       |	asoc->out_tsnlog[asoc->tsn_out_at].sz = chk->send_size;
 8194|       |	asoc->out_tsnlog[asoc->tsn_out_at].flgs = chk->rec.data.rcv_flags;
 8195|       |	asoc->out_tsnlog[asoc->tsn_out_at].stcb = (void *)stcb;
 8196|       |	asoc->out_tsnlog[asoc->tsn_out_at].in_pos = asoc->tsn_out_at;
 8197|       |	asoc->out_tsnlog[asoc->tsn_out_at].in_out = 2;
 8198|       |	asoc->tsn_out_at++;
 8199|       |#endif
 8200|  4.76k|	if (stcb->asoc.idata_supported == 0) {
  ------------------
  |  Branch (8200:6): [True: 1.22k, False: 3.53k]
  ------------------
 8201|  1.22k|		dchkh->ch.chunk_type = SCTP_DATA;
  ------------------
  |  |  454|  1.22k|#define SCTP_DATA		0x00
  ------------------
 8202|  1.22k|		dchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
 8203|  1.22k|		dchkh->dp.tsn = htonl(chk->rec.data.tsn);
 8204|  1.22k|		dchkh->dp.sid = htons(strq->sid);
 8205|  1.22k|		dchkh->dp.ssn = htons((uint16_t)chk->rec.data.mid);
 8206|  1.22k|		dchkh->dp.ppid = chk->rec.data.ppid;
 8207|  1.22k|		dchkh->ch.chunk_length = htons(chk->send_size);
 8208|  3.53k|	} else {
 8209|  3.53k|		ndchkh->ch.chunk_type = SCTP_IDATA;
  ------------------
  |  |  474|  3.53k|#define SCTP_IDATA		0x40
  ------------------
 8210|  3.53k|		ndchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
 8211|  3.53k|		ndchkh->dp.tsn = htonl(chk->rec.data.tsn);
 8212|  3.53k|		ndchkh->dp.sid = htons(strq->sid);
 8213|  3.53k|		ndchkh->dp.reserved = htons(0);
 8214|  3.53k|		ndchkh->dp.mid = htonl(chk->rec.data.mid);
 8215|  3.53k|		if (sp->fsn == 0)
  ------------------
  |  Branch (8215:7): [True: 3.53k, False: 0]
  ------------------
 8216|  3.53k|			ndchkh->dp.ppid_fsn.ppid = chk->rec.data.ppid;
 8217|      0|		else
 8218|      0|			ndchkh->dp.ppid_fsn.fsn = htonl(sp->fsn);
 8219|  3.53k|		sp->fsn++;
 8220|  3.53k|		ndchkh->ch.chunk_length = htons(chk->send_size);
 8221|  3.53k|	}
 8222|       |	/* Now advance the chk->send_size by the actual pad needed. */
 8223|  4.76k|	if (chk->send_size < SCTP_SIZE32(chk->book_size)) {
  ------------------
  |  |  383|  4.76k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (8223:6): [True: 4.76k, False: 0]
  ------------------
 8224|       |		/* need a pad */
 8225|  4.76k|		struct mbuf *lm;
 8226|  4.76k|		int pads;
 8227|       |
 8228|  4.76k|		pads = SCTP_SIZE32(chk->book_size) - chk->send_size;
  ------------------
  |  |  383|  4.76k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 8229|  4.76k|		lm = sctp_pad_lastmbuf(chk->data, pads, chk->last_mbuf);
 8230|  4.76k|		if (lm != NULL) {
  ------------------
  |  Branch (8230:7): [True: 4.76k, False: 0]
  ------------------
 8231|  4.76k|			chk->last_mbuf = lm;
 8232|  4.76k|			chk->pad_inplace = 1;
 8233|  4.76k|		}
 8234|  4.76k|		chk->send_size += pads;
 8235|  4.76k|	}
 8236|  4.76k|	if (PR_SCTP_ENABLED(chk->flags)) {
  ------------------
  |  |  281|  4.76k|#define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  280|  4.76k|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  272|  4.76k|#define SCTP_PR_SCTP_NONE 0x0000 /* Reliable transfer */
  |  |  ------------------
  |  |  |  Branch (281:36): [True: 0, False: 4.76k]
  |  |  ------------------
  |  |  282|  4.76k|                                   (PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL))
  |  |  ------------------
  |  |  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |                                                  (PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL))
  |  |  ------------------
  |  |  |  |  278|      0|#define SCTP_PR_SCTP_ALL  0x000f /* Used for aggregated stats */
  |  |  ------------------
  |  |  |  Branch (282:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 8237|      0|		asoc->pr_sctp_cnt++;
 8238|      0|	}
 8239|  4.76k|	if (sp->msg_is_complete && (sp->length == 0) && (sp->sender_all_done)) {
  ------------------
  |  Branch (8239:6): [True: 4.76k, False: 0]
  |  Branch (8239:29): [True: 4.76k, False: 0]
  |  Branch (8239:50): [True: 4.76k, False: 0]
  ------------------
 8240|       |		/* All done pull and kill the message */
 8241|  4.76k|		if (sp->put_last_out == 0) {
  ------------------
  |  Branch (8241:7): [True: 0, False: 4.76k]
  ------------------
 8242|      0|			SCTP_PRINTF("Gak, put out entire msg with NO end!-2\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 8243|      0|			SCTP_PRINTF("sender_done:%d len:%d msg_comp:%d put_last_out:%d\n",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 8244|      0|			            sp->sender_all_done,
 8245|      0|			            sp->length,
 8246|      0|			            sp->msg_is_complete,
 8247|      0|			            sp->put_last_out);
 8248|      0|		}
 8249|  4.76k|		atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|  4.76k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 8250|  4.76k|		TAILQ_REMOVE(&strq->outqueue, sp, next);
  ------------------
  |  Branch (8250:3): [True: 0, False: 4.76k]
  |  Branch (8250:3): [Folded, False: 4.76k]
  ------------------
 8251|  4.76k|		stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, strq, sp);
 8252|  4.76k|		if ((strq->state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|  4.76k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (8252:7): [True: 32, False: 4.73k]
  ------------------
 8253|     32|		    (strq->chunks_on_queues == 0) &&
  ------------------
  |  Branch (8253:7): [True: 32, False: 0]
  ------------------
 8254|  4.76k|		    TAILQ_EMPTY(&strq->outqueue)) {
  ------------------
  |  Branch (8254:7): [True: 32, False: 0]
  ------------------
 8255|     32|			stcb->asoc.trigger_reset = 1;
 8256|     32|		}
 8257|  4.76k|		if (sp->net) {
  ------------------
  |  Branch (8257:7): [True: 0, False: 4.76k]
  ------------------
 8258|      0|			sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 8259|      0|			sp->net = NULL;
 8260|      0|		}
 8261|  4.76k|		if (sp->data) {
  ------------------
  |  Branch (8261:7): [True: 0, False: 4.76k]
  ------------------
 8262|      0|			sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 8263|      0|			sp->data = NULL;
 8264|      0|		}
 8265|  4.76k|		sctp_free_a_strmoq(stcb, sp, so_locked);
  ------------------
  |  |  125|  4.76k|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|  4.76k|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 4.76k]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|  4.76k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|  4.76k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  4.76k|	free(element);  \
  |  |  |  |  709|  4.76k|}
  |  |  ------------------
  |  |  131|  4.76k|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|  4.76k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  4.76k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|  4.76k|}
  ------------------
 8266|  4.76k|	}
 8267|  4.76k|	asoc->chunks_on_out_queue++;
 8268|  4.76k|	strq->chunks_on_queues++;
 8269|  4.76k|	TAILQ_INSERT_TAIL(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (8269:2): [Folded, False: 4.76k]
  ------------------
 8270|  4.76k|	asoc->send_queue_cnt++;
 8271|  4.76k|out_of:
 8272|  4.76k|	return (to_move);
 8273|  4.76k|}
sctp_output.c:sctp_clean_up_datalist:
 7624|  3.34k|{
 7625|  3.34k|	int i;
 7626|  3.34k|	struct sctp_tmit_chunk *tp1;
 7627|       |
 7628|  6.69k|	for (i = 0; i < bundle_at; i++) {
  ------------------
  |  Branch (7628:14): [True: 3.34k, False: 3.34k]
  ------------------
 7629|       |		/* off of the send queue */
 7630|  3.34k|		TAILQ_REMOVE(&asoc->send_queue, data_list[i], sctp_next);
  ------------------
  |  Branch (7630:3): [True: 0, False: 3.34k]
  |  Branch (7630:3): [Folded, False: 3.34k]
  ------------------
 7631|  3.34k|		asoc->send_queue_cnt--;
 7632|  3.34k|		if (i > 0) {
  ------------------
  |  Branch (7632:7): [True: 0, False: 3.34k]
  ------------------
 7633|       |			/*
 7634|       |			 * Any chunk NOT 0 you zap the time chunk 0 gets
 7635|       |			 * zapped or set based on if a RTO measurement is
 7636|       |			 * needed.
 7637|       |			 */
 7638|      0|			data_list[i]->do_rtt = 0;
 7639|      0|		}
 7640|       |		/* record time */
 7641|  3.34k|		data_list[i]->sent_rcv_time = net->last_sent_time;
 7642|  3.34k|		data_list[i]->rec.data.cwnd_at_send = net->cwnd;
 7643|  3.34k|		data_list[i]->rec.data.fast_retran_tsn = data_list[i]->rec.data.tsn;
 7644|  3.34k|		if (data_list[i]->whoTo == NULL) {
  ------------------
  |  Branch (7644:7): [True: 3.34k, False: 0]
  ------------------
 7645|  3.34k|			data_list[i]->whoTo = net;
 7646|  3.34k|			atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|  3.34k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 7647|  3.34k|		}
 7648|       |		/* on to the sent queue */
 7649|  3.34k|		tp1 = TAILQ_LAST(&asoc->sent_queue, sctpchunk_listhead);
 7650|  3.34k|		if ((tp1) && SCTP_TSN_GT(tp1->rec.data.tsn, data_list[i]->rec.data.tsn)) {
  ------------------
  |  |  889|    287|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    287|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 287, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 287]
  |  |  |  |  ------------------
  |  |  |  |  884|    287|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 287]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (7650:7): [True: 287, False: 3.05k]
  ------------------
 7651|      0|			struct sctp_tmit_chunk *tpp;
 7652|       |
 7653|       |			/* need to move back */
 7654|      0|		back_up_more:
 7655|      0|			tpp = TAILQ_PREV(tp1, sctpchunk_listhead, sctp_next);
 7656|      0|			if (tpp == NULL) {
  ------------------
  |  Branch (7656:8): [True: 0, False: 0]
  ------------------
 7657|      0|				TAILQ_INSERT_BEFORE(tp1, data_list[i], sctp_next);
  ------------------
  |  Branch (7657:5): [Folded, False: 0]
  ------------------
 7658|      0|				goto all_done;
 7659|      0|			}
 7660|      0|			tp1 = tpp;
 7661|      0|			if (SCTP_TSN_GT(tp1->rec.data.tsn, data_list[i]->rec.data.tsn)) {
  ------------------
  |  |  889|      0|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|      0|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|      0|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7662|      0|				goto back_up_more;
 7663|      0|			}
 7664|      0|			TAILQ_INSERT_AFTER(&asoc->sent_queue, tp1, data_list[i], sctp_next);
  ------------------
  |  Branch (7664:4): [True: 0, False: 0]
  |  Branch (7664:4): [Folded, False: 0]
  ------------------
 7665|  3.34k|		} else {
 7666|  3.34k|			TAILQ_INSERT_TAIL(&asoc->sent_queue,
  ------------------
  |  Branch (7666:4): [Folded, False: 3.34k]
  ------------------
 7667|  3.34k|					  data_list[i],
 7668|  3.34k|					  sctp_next);
 7669|  3.34k|		}
 7670|  3.34k|	all_done:
 7671|       |		/* This does not lower until the cum-ack passes it */
 7672|  3.34k|		asoc->sent_queue_cnt++;
 7673|  3.34k|		if ((asoc->peers_rwnd <= 0) &&
  ------------------
  |  Branch (7673:7): [True: 0, False: 3.34k]
  ------------------
 7674|      0|		    (asoc->total_flight == 0) &&
  ------------------
  |  Branch (7674:7): [True: 0, False: 0]
  ------------------
 7675|      0|		    (bundle_at == 1)) {
  ------------------
  |  Branch (7675:7): [True: 0, False: 0]
  ------------------
 7676|       |			/* Mark the chunk as being a window probe */
 7677|      0|			SCTP_STAT_INCR(sctps_windowprobed);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7678|      0|		}
 7679|       |#ifdef SCTP_AUDITING_ENABLED
 7680|       |		sctp_audit_log(0xC2, 3);
 7681|       |#endif
 7682|  3.34k|		data_list[i]->sent = SCTP_DATAGRAM_SENT;
  ------------------
  |  |  349|  3.34k|#define SCTP_DATAGRAM_SENT		1
  ------------------
 7683|  3.34k|		data_list[i]->snd_count = 1;
 7684|  3.34k|		data_list[i]->rec.data.chunk_was_revoked = 0;
 7685|  3.34k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  590|  3.34k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  646|  3.34k|#define SCTP_FLIGHT_LOGGING_ENABLE			0x00000020
  ------------------
  |  Branch (7685:7): [True: 0, False: 3.34k]
  ------------------
 7686|      0|			sctp_misc_ints(SCTP_FLIGHT_LOG_UP,
  ------------------
  |  |  212|      0|#define SCTP_FLIGHT_LOG_UP         108
  ------------------
 7687|      0|				       data_list[i]->whoTo->flight_size,
 7688|      0|				       data_list[i]->book_size,
 7689|      0|				       (uint32_t)(uintptr_t)data_list[i]->whoTo,
 7690|      0|				       data_list[i]->rec.data.tsn);
 7691|      0|		}
 7692|  3.34k|		sctp_flight_size_increase(data_list[i]);
  ------------------
  |  |  296|  3.34k|#define sctp_flight_size_increase(tp1) do { \
  |  |  297|  3.34k|	(tp1)->whoTo->flight_size += (tp1)->book_size; \
  |  |  298|  3.34k|} while (0)
  |  |  ------------------
  |  |  |  Branch (298:10): [Folded, False: 3.34k]
  |  |  ------------------
  ------------------
 7693|  3.34k|		sctp_total_flight_increase(stcb, data_list[i]);
  ------------------
  |  |  350|  3.34k|#define sctp_total_flight_increase(stcb, tp1) do { \
  |  |  351|  3.34k|	(stcb)->asoc.total_flight_count++; \
  |  |  352|  3.34k|	(stcb)->asoc.total_flight += (tp1)->book_size; \
  |  |  353|  3.34k|} while (0)
  |  |  ------------------
  |  |  |  Branch (353:10): [Folded, False: 3.34k]
  |  |  ------------------
  ------------------
 7694|  3.34k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  590|  3.34k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  661|  3.34k|#define SCTP_LOG_RWND_ENABLE    			0x00100000
  ------------------
  |  Branch (7694:7): [True: 0, False: 3.34k]
  ------------------
 7695|      0|			sctp_log_rwnd(SCTP_DECREASE_PEER_RWND,
  ------------------
  |  |  141|      0|#define SCTP_DECREASE_PEER_RWND     37
  ------------------
 7696|      0|			      asoc->peers_rwnd, data_list[i]->send_size, SCTP_BASE_SYSCTL(sctp_peer_chunk_oh));
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 7697|      0|		}
 7698|  3.34k|		asoc->peers_rwnd = sctp_sbspace_sub(asoc->peers_rwnd,
  ------------------
  |  |   93|  3.34k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 3.34k, False: 0]
  |  |  ------------------
  ------------------
 7699|  3.34k|						    (uint32_t) (data_list[i]->send_size + SCTP_BASE_SYSCTL(sctp_peer_chunk_oh)));
 7700|  3.34k|		if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (7700:7): [True: 11, False: 3.33k]
  ------------------
 7701|       |			/* SWS sender side engages */
 7702|     11|			asoc->peers_rwnd = 0;
 7703|     11|		}
 7704|  3.34k|	}
 7705|  3.34k|	if (asoc->cc_functions.sctp_cwnd_update_packet_transmitted) {
  ------------------
  |  Branch (7705:6): [True: 0, False: 3.34k]
  ------------------
 7706|      0|		(*asoc->cc_functions.sctp_cwnd_update_packet_transmitted)(stcb, net);
 7707|      0|	}
 7708|  3.34k|}
sctp_output.c:sctp_clean_up_ctl:
 7712|  32.9k|{
 7713|  32.9k|	struct sctp_tmit_chunk *chk, *nchk;
 7714|       |
 7715|   230k|	TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  32.9k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   263k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 230k, False: 32.9k]
  |  |  |  Branch (1130:24): [True: 230k, False: 0]
  |  |  ------------------
  |  | 1131|   230k|              (var) = (tvar))
  ------------------
 7716|   230k|		if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|   230k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (7716:7): [True: 5.18k, False: 225k]
  ------------------
 7717|   225k|		    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK) ||	/* EY */
  ------------------
  |  |  472|   225k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (7717:7): [True: 387, False: 224k]
  ------------------
 7718|   224k|		    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_REQUEST) ||
  ------------------
  |  |  458|   224k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (7718:7): [True: 39.0k, False: 185k]
  ------------------
 7719|   185k|		    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_ACK) ||
  ------------------
  |  |  459|   185k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (7719:7): [True: 26.1k, False: 159k]
  ------------------
 7720|   159k|		    (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) ||
  ------------------
  |  |  487|   159k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (7720:7): [True: 64, False: 159k]
  ------------------
 7721|   159k|		    (chk->rec.chunk_id.id == SCTP_SHUTDOWN) ||
  ------------------
  |  |  461|   159k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (7721:7): [True: 71, False: 159k]
  ------------------
 7722|   159k|		    (chk->rec.chunk_id.id == SCTP_SHUTDOWN_ACK) ||
  ------------------
  |  |  462|   159k|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (7722:7): [True: 743, False: 158k]
  ------------------
 7723|   158k|		    (chk->rec.chunk_id.id == SCTP_OPERATION_ERROR) ||
  ------------------
  |  |  463|   158k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (7723:7): [True: 122k, False: 36.2k]
  ------------------
 7724|  36.2k|		    (chk->rec.chunk_id.id == SCTP_PACKET_DROPPED) ||
  ------------------
  |  |  479|  36.2k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (7724:7): [True: 0, False: 36.2k]
  ------------------
 7725|  36.2k|		    (chk->rec.chunk_id.id == SCTP_COOKIE_ACK) ||
  ------------------
  |  |  465|  36.2k|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (7725:7): [True: 476, False: 35.8k]
  ------------------
 7726|  35.8k|		    (chk->rec.chunk_id.id == SCTP_ECN_CWR) ||
  ------------------
  |  |  467|  35.8k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (7726:7): [True: 362, False: 35.4k]
  ------------------
 7727|   195k|		    (chk->rec.chunk_id.id == SCTP_ASCONF_ACK)) {
  ------------------
  |  |  477|  35.4k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (7727:7): [True: 768, False: 34.6k]
  ------------------
 7728|       |			/* Stray chunks must be cleaned up */
 7729|   205k|	clean_up_anyway:
 7730|   205k|			TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (7730:4): [True: 196k, False: 8.79k]
  |  Branch (7730:4): [Folded, False: 205k]
  ------------------
 7731|   205k|			asoc->ctrl_queue_cnt--;
 7732|   205k|			if (chk->data) {
  ------------------
  |  Branch (7732:8): [True: 146k, False: 58.7k]
  ------------------
 7733|   146k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|   146k|#define sctp_m_freem m_freem
  ------------------
 7734|   146k|				chk->data = NULL;
 7735|   146k|			}
 7736|   205k|			if (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) {
  ------------------
  |  |  487|   205k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (7736:8): [True: 64, False: 204k]
  ------------------
 7737|     64|				asoc->fwd_tsn_cnt--;
 7738|     64|			}
 7739|   205k|			sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|   205k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|   205k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 205k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|   205k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 205k, False: 0]
  |  |  ------------------
  |  |  149|   205k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|   205k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   205k|	do {                         \
  |  |  |  |  |  |  113|   205k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 205k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   205k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 205k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|   205k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 205k, False: 0]
  |  |  ------------------
  |  |  151|   205k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|   205k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|   205k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 205k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|   205k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|   205k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|   205k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 499, False: 204k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|    499|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 499, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|    499|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|    499|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|    499|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|    499|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|    499|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|    499|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 499, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|    499|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|    499|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|    499|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|    499|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|    499|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|    499|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 499]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|    499|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 499]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|    499|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|    499|			} \
  |  |  |  |  235|    499|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 499]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|    499|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|    499|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|    499|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|    499|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|    499|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|    499|	free(element);  \
  |  |  |  |  |  |  709|    499|}
  |  |  |  |  ------------------
  |  |  |  |  242|    499|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|    499|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|    499|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|    499|		} \
  |  |  |  |  244|   205k|	} \
  |  |  |  |  245|   205k|}
  |  |  ------------------
  |  |  152|   205k|			(_chk)->whoTo = NULL; \
  |  |  153|   205k|		} \
  |  |  154|   205k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|   205k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 185k, False: 19.1k]
  |  |  ------------------
  |  |  155|   205k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  19.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|  19.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 19.1k]
  |  |  ------------------
  |  |  156|   185k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|   185k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|   185k|	free(element);  \
  |  |  |  |  709|   185k|}
  |  |  ------------------
  |  |  157|   185k|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|   185k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|   185k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|   185k|		} else { \
  |  |  159|  19.1k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  19.1k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  19.1k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  19.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  19.1k|		} \
  |  |  163|   205k|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|   205k|}
  ------------------
  |  Branch (7739:4): [Folded, False: 19.1k]
  ------------------
 7740|   205k|		} else if (chk->rec.chunk_id.id == SCTP_STREAM_RESET) {
  ------------------
  |  |  481|  34.6k|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (7740:14): [True: 14.8k, False: 19.8k]
  ------------------
 7741|       |			/* special handling, we must look into the param */
 7742|  14.8k|			if (chk != asoc->str_reset) {
  ------------------
  |  Branch (7742:8): [True: 9.21k, False: 5.63k]
  ------------------
 7743|  9.21k|				goto clean_up_anyway;
 7744|  9.21k|			}
 7745|  14.8k|		}
 7746|   230k|	}
 7747|  32.9k|}
sctp_output.c:sctp_send_resp_msg:
11741|    801|{
11742|    801|	struct mbuf *o_pak;
11743|    801|	struct mbuf *mout;
11744|    801|	struct sctphdr *shout;
11745|    801|	struct sctp_chunkhdr *ch;
11746|    801|#if defined(INET) || defined(INET6)
11747|    801|	struct udphdr *udp;
11748|    801|#endif
11749|    801|	int ret, len, cause_len, padding_len;
11750|    801|#ifdef INET
11751|       |#if defined(__APPLE__) && !defined(__Userspace__)
11752|       |	sctp_route_t ro;
11753|       |#endif
11754|    801|	struct sockaddr_in *src_sin, *dst_sin;
11755|    801|	struct ip *ip;
11756|    801|#endif
11757|    801|#ifdef INET6
11758|    801|	struct sockaddr_in6 *src_sin6, *dst_sin6;
11759|    801|	struct ip6_hdr *ip6;
11760|    801|#endif
11761|       |
11762|       |	/* Compute the length of the cause and add final padding. */
11763|    801|	cause_len = 0;
11764|    801|	if (cause != NULL) {
  ------------------
  |  Branch (11764:6): [True: 269, False: 532]
  ------------------
11765|    269|		struct mbuf *m_at, *m_last = NULL;
11766|       |
11767|    577|		for (m_at = cause; m_at; m_at = SCTP_BUF_NEXT(m_at)) {
  ------------------
  |  |  802|    308|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    308|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11767:22): [True: 308, False: 269]
  ------------------
11768|    308|			if (SCTP_BUF_NEXT(m_at) == NULL)
  ------------------
  |  |  802|    308|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    308|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11768:8): [True: 269, False: 39]
  ------------------
11769|    269|				m_last = m_at;
11770|    308|			cause_len += SCTP_BUF_LEN(m_at);
  ------------------
  |  |  801|    308|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    308|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11771|    308|		}
11772|    269|		padding_len = cause_len % 4;
11773|    269|		if (padding_len != 0) {
  ------------------
  |  Branch (11773:7): [True: 165, False: 104]
  ------------------
11774|    165|			padding_len = 4 - padding_len;
11775|    165|		}
11776|    269|		if (padding_len != 0) {
  ------------------
  |  Branch (11776:7): [True: 165, False: 104]
  ------------------
11777|    165|			if (sctp_add_pad_tombuf(m_last, padding_len) == NULL) {
  ------------------
  |  Branch (11777:8): [True: 0, False: 165]
  ------------------
11778|      0|				sctp_m_freem(cause);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11779|      0|				return;
11780|      0|			}
11781|    165|		}
11782|    532|	} else {
11783|    532|		padding_len = 0;
11784|    532|	}
11785|       |	/* Get an mbuf for the header. */
11786|    801|	len = sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr);
11787|    801|	switch (dst->sa_family) {
11788|      0|#ifdef INET
11789|      0|	case AF_INET:
  ------------------
  |  Branch (11789:2): [True: 0, False: 801]
  ------------------
11790|      0|		len += sizeof(struct ip);
11791|      0|		break;
11792|      0|#endif
11793|      0|#ifdef INET6
11794|      0|	case AF_INET6:
  ------------------
  |  Branch (11794:2): [True: 0, False: 801]
  ------------------
11795|      0|		len += sizeof(struct ip6_hdr);
11796|      0|		break;
11797|      0|#endif
11798|    801|	default:
  ------------------
  |  Branch (11798:2): [True: 801, False: 0]
  ------------------
11799|    801|		break;
11800|    801|	}
11801|    801|#if defined(INET) || defined(INET6)
11802|    801|	if (port) {
  ------------------
  |  Branch (11802:6): [True: 0, False: 801]
  ------------------
11803|      0|		len += sizeof(struct udphdr);
11804|      0|	}
11805|    801|#endif
11806|       |#if defined(__APPLE__) && !defined(__Userspace__)
11807|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
11808|       |	mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_NOWAIT, 1, MT_DATA);
11809|       |#else
11810|       |	mout = sctp_get_mbuf_for_msg(len + SCTP_MAX_LINKHDR, 1, M_NOWAIT, 1, MT_DATA);
11811|       |#endif
11812|       |#else
11813|    801|	mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    801|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    801|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
11814|    801|#endif
11815|    801|	if (mout == NULL) {
  ------------------
  |  Branch (11815:6): [True: 0, False: 801]
  ------------------
11816|      0|		if (cause) {
  ------------------
  |  Branch (11816:7): [True: 0, False: 0]
  ------------------
11817|      0|			sctp_m_freem(cause);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11818|      0|		}
11819|      0|		return;
11820|      0|	}
11821|       |#if defined(__APPLE__) && !defined(__Userspace__)
11822|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
11823|       |	SCTP_BUF_RESV_UF(mout, max_linkhdr);
11824|       |#else
11825|       |	SCTP_BUF_RESV_UF(mout, SCTP_MAX_LINKHDR);
11826|       |#endif
11827|       |#else
11828|    801|	SCTP_BUF_RESV_UF(mout, max_linkhdr);
  ------------------
  |  |  804|    801|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    801|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11829|    801|#endif
11830|    801|	SCTP_BUF_LEN(mout) = len;
  ------------------
  |  |  801|    801|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    801|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11831|    801|	SCTP_BUF_NEXT(mout) = cause;
  ------------------
  |  |  802|    801|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    801|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
11832|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11833|       |	M_SETFIB(mout, fibnum);
11834|       |	mout->m_pkthdr.flowid = mflowid;
11835|       |	M_HASHTYPE_SET(mout, mflowtype);
11836|       |#endif
11837|    801|#ifdef INET
11838|    801|	ip = NULL;
11839|    801|#endif
11840|    801|#ifdef INET6
11841|    801|	ip6 = NULL;
11842|    801|#endif
11843|    801|	switch (dst->sa_family) {
11844|      0|#ifdef INET
11845|      0|	case AF_INET:
  ------------------
  |  Branch (11845:2): [True: 0, False: 801]
  ------------------
11846|      0|		src_sin = (struct sockaddr_in *)src;
11847|      0|		dst_sin = (struct sockaddr_in *)dst;
11848|      0|		ip = mtod(mout, struct ip *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11849|      0|		ip->ip_v = IPVERSION;
11850|      0|		ip->ip_hl = (sizeof(struct ip) >> 2);
11851|      0|		ip->ip_tos = 0;
11852|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11853|       |		ip->ip_off = htons(IP_DF);
11854|       |#elif defined(WITH_CONVERT_IP_OFF) || defined(__APPLE__)
11855|       |		ip->ip_off = IP_DF;
11856|       |#else
11857|      0|		ip->ip_off = htons(IP_DF);
11858|      0|#endif
11859|      0|#if defined(__Userspace__)
11860|      0|		ip->ip_id = htons(ip_id++);
11861|       |#elif defined(__FreeBSD__)
11862|       |		ip_fillid(ip, V_ip_random_id);
11863|       |#elif defined(__APPLE__)
11864|       |#if RANDOM_IP_ID
11865|       |		ip->ip_id = ip_randomid();
11866|       |#else
11867|       |		ip->ip_id = htons(ip_id++);
11868|       |#endif
11869|       |#else
11870|       |		ip->ip_id = ip_id++;
11871|       |#endif
11872|      0|		ip->ip_ttl = MODULE_GLOBAL(ip_defttl);
  ------------------
  |  |   65|      0|#define MODULE_GLOBAL(_B) (_B)
  ------------------
11873|      0|		if (port) {
  ------------------
  |  Branch (11873:7): [True: 0, False: 0]
  ------------------
11874|      0|			ip->ip_p = IPPROTO_UDP;
11875|      0|		} else {
11876|      0|			ip->ip_p = IPPROTO_SCTP;
11877|      0|		}
11878|      0|		ip->ip_src.s_addr = dst_sin->sin_addr.s_addr;
11879|      0|		ip->ip_dst.s_addr = src_sin->sin_addr.s_addr;
11880|      0|		ip->ip_sum = 0;
11881|      0|		len = sizeof(struct ip);
11882|      0|		shout = (struct sctphdr *)((caddr_t)ip + len);
11883|      0|		break;
11884|      0|#endif
11885|      0|#ifdef INET6
11886|      0|	case AF_INET6:
  ------------------
  |  Branch (11886:2): [True: 0, False: 801]
  ------------------
11887|      0|		src_sin6 = (struct sockaddr_in6 *)src;
11888|      0|		dst_sin6 = (struct sockaddr_in6 *)dst;
11889|      0|		ip6 = mtod(mout, struct ip6_hdr *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11890|      0|		ip6->ip6_flow = htonl(0x60000000);
11891|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11892|       |		if (V_ip6_auto_flowlabel) {
11893|       |			ip6->ip6_flow |= (htonl(ip6_randomflowlabel()) & IPV6_FLOWLABEL_MASK);
11894|       |		}
11895|       |#endif
11896|      0|#if defined(__Userspace__)
11897|      0|		ip6->ip6_hlim = IPv6_HOP_LIMIT;
  ------------------
  |  |  951|      0|#define IPv6_HOP_LIMIT 128
  ------------------
11898|       |#else
11899|       |		ip6->ip6_hlim = MODULE_GLOBAL(ip6_defhlim);
11900|       |#endif
11901|      0|		if (port) {
  ------------------
  |  Branch (11901:7): [True: 0, False: 0]
  ------------------
11902|      0|			ip6->ip6_nxt = IPPROTO_UDP;
11903|      0|		} else {
11904|      0|			ip6->ip6_nxt = IPPROTO_SCTP;
11905|      0|		}
11906|      0|		ip6->ip6_src = dst_sin6->sin6_addr;
11907|      0|		ip6->ip6_dst = src_sin6->sin6_addr;
11908|      0|		len = sizeof(struct ip6_hdr);
11909|      0|		shout = (struct sctphdr *)((caddr_t)ip6 + len);
11910|      0|		break;
11911|      0|#endif
11912|    801|	default:
  ------------------
  |  Branch (11912:2): [True: 801, False: 0]
  ------------------
11913|    801|		len = 0;
11914|    801|		shout = mtod(mout, struct sctphdr *);
  ------------------
  |  |   96|    801|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    801|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11915|    801|		break;
11916|    801|	}
11917|    801|#if defined(INET) || defined(INET6)
11918|    801|	if (port) {
  ------------------
  |  Branch (11918:6): [True: 0, False: 801]
  ------------------
11919|      0|		if (htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)) == 0) {
  ------------------
  |  Branch (11919:7): [True: 0, False: 0]
  ------------------
11920|      0|			sctp_m_freem(mout);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11921|      0|			return;
11922|      0|		}
11923|      0|		udp = (struct udphdr *)shout;
11924|      0|		udp->uh_sport = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port));
11925|      0|		udp->uh_dport = port;
11926|      0|		udp->uh_sum = 0;
11927|      0|		udp->uh_ulen = htons((uint16_t)(sizeof(struct udphdr) +
11928|      0|		                                sizeof(struct sctphdr) +
11929|      0|		                                sizeof(struct sctp_chunkhdr) +
11930|      0|		                                cause_len + padding_len));
11931|      0|		len += sizeof(struct udphdr);
11932|      0|		shout = (struct sctphdr *)((caddr_t)shout + sizeof(struct udphdr));
11933|    801|	} else {
11934|    801|		udp = NULL;
11935|    801|	}
11936|    801|#endif
11937|    801|	shout->src_port = sh->dest_port;
11938|    801|	shout->dest_port = sh->src_port;
11939|    801|	shout->checksum = 0;
11940|    801|	if (vtag) {
  ------------------
  |  Branch (11940:6): [True: 554, False: 247]
  ------------------
11941|    554|		shout->v_tag = htonl(vtag);
11942|    554|	} else {
11943|    247|		shout->v_tag = sh->v_tag;
11944|    247|	}
11945|    801|	len += sizeof(struct sctphdr);
11946|    801|	ch = (struct sctp_chunkhdr *)((caddr_t)shout + sizeof(struct sctphdr));
11947|    801|	ch->chunk_type = type;
11948|    801|	if (vtag) {
  ------------------
  |  Branch (11948:6): [True: 554, False: 247]
  ------------------
11949|    554|		ch->chunk_flags = 0;
11950|    554|	} else {
11951|    247|		ch->chunk_flags = SCTP_HAD_NO_TCB;
  ------------------
  |  |  493|    247|#define SCTP_HAD_NO_TCB		0x01
  ------------------
11952|    247|	}
11953|    801|	ch->chunk_length = htons((uint16_t)(sizeof(struct sctp_chunkhdr) + cause_len));
11954|    801|	len += sizeof(struct sctp_chunkhdr);
11955|    801|	len += cause_len + padding_len;
11956|       |
11957|    801|	if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) {
  ------------------
  |  |  922|    801|#define SCTP_GET_HEADER_FOR_OUTPUT(o_pak) 0
  |  |  ------------------
  |  |  |  Branch (922:43): [Folded, False: 801]
  |  |  ------------------
  ------------------
11958|      0|		sctp_m_freem(mout);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11959|      0|		return;
11960|      0|	}
11961|    801|	SCTP_ATTACH_CHAIN(o_pak, mout, len);
  ------------------
  |  |  931|    801|#define SCTP_ATTACH_CHAIN(pak, m, packet_length) do { \
  |  |  932|    801|                                                  pak = m; \
  |  |  933|    801|                                                  pak->m_pkthdr.len = packet_length; \
  |  |  ------------------
  |  |  |  |  224|    801|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  |  |  934|    801|                          } while(0)
  |  |  ------------------
  |  |  |  Branch (934:35): [Folded, False: 801]
  |  |  ------------------
  ------------------
11962|    801|	switch (dst->sa_family) {
11963|      0|#ifdef INET
11964|      0|	case AF_INET:
  ------------------
  |  Branch (11964:2): [True: 0, False: 801]
  ------------------
11965|       |#if defined(__APPLE__) && !defined(__Userspace__)
11966|       |		/* zap the stack pointer to the route */
11967|       |		memset(&ro, 0, sizeof(sctp_route_t));
11968|       |#endif
11969|      0|		if (port) {
  ------------------
  |  Branch (11969:7): [True: 0, False: 0]
  ------------------
11970|       |#if !defined(_WIN32) && !defined(__Userspace__)
11971|       |#if defined(__FreeBSD__)
11972|       |			if (V_udp_cksum) {
11973|       |				udp->uh_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP));
11974|       |			} else {
11975|       |				udp->uh_sum = 0;
11976|       |			}
11977|       |#else
11978|       |			udp->uh_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP));
11979|       |#endif
11980|       |#else
11981|      0|			udp->uh_sum = 0;
11982|      0|#endif
11983|      0|		}
11984|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11985|       |		ip->ip_len = htons(len);
11986|       |#elif defined(__APPLE__) || defined(__Userspace__)
11987|       |		ip->ip_len = len;
11988|       |#else
11989|       |		ip->ip_len = htons(len);
11990|       |#endif
11991|      0|		if (port) {
  ------------------
  |  Branch (11991:7): [True: 0, False: 0]
  ------------------
11992|      0|			shout->checksum = sctp_calculate_cksum(mout, sizeof(struct ip) + sizeof(struct udphdr));
11993|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11994|       |#if !defined(_WIN32) && !defined(__Userspace__)
11995|       |#if defined(__FreeBSD__)
11996|       |			if (V_udp_cksum) {
11997|       |				SCTP_ENABLE_UDP_CSUM(o_pak);
11998|       |			}
11999|       |#else
12000|       |			SCTP_ENABLE_UDP_CSUM(o_pak);
12001|       |#endif
12002|       |#endif
12003|      0|		} else {
12004|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12005|       |			mout->m_pkthdr.csum_flags = CSUM_SCTP;
12006|       |			mout->m_pkthdr.csum_data = offsetof(struct sctphdr, checksum);
12007|       |			SCTP_STAT_INCR(sctps_sendhwcrc);
12008|       |#else
12009|      0|			shout->checksum = sctp_calculate_cksum(mout, sizeof(struct ip));
12010|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12011|      0|#endif
12012|      0|		}
12013|       |#ifdef SCTP_PACKET_LOGGING
12014|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) {
12015|       |			sctp_packet_log(o_pak);
12016|       |		}
12017|       |#endif
12018|       |#if defined(__APPLE__) && !defined(__Userspace__)
12019|       |		SCTP_IP_OUTPUT(ret, o_pak, &ro, NULL, vrf_id);
12020|       |		/* Free the route if we got one back */
12021|       |		if (ro.ro_rt) {
12022|       |			RTFREE(ro.ro_rt);
12023|       |			ro.ro_rt = NULL;
12024|       |		}
12025|       |#else
12026|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12027|       |		SCTP_PROBE5(send, NULL, NULL, ip, NULL, shout);
12028|       |#endif
12029|      0|		SCTP_IP_OUTPUT(ret, o_pak, NULL, NULL, vrf_id);
  ------------------
  |  | 1056|      0|#define SCTP_IP_OUTPUT(result, o_pak, ro, inp, vrf_id) sctp_userspace_ip_output(&result, o_pak, ro, inp, vrf_id);
  ------------------
12030|      0|#endif
12031|      0|		break;
12032|      0|#endif
12033|      0|#ifdef INET6
12034|      0|	case AF_INET6:
  ------------------
  |  Branch (12034:2): [True: 0, False: 801]
  ------------------
12035|      0|		ip6->ip6_plen = htons((uint16_t)(len - sizeof(struct ip6_hdr)));
12036|      0|		if (port) {
  ------------------
  |  Branch (12036:7): [True: 0, False: 0]
  ------------------
12037|      0|			shout->checksum = sctp_calculate_cksum(mout, sizeof(struct ip6_hdr) + sizeof(struct udphdr));
12038|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12039|       |#if !defined(__Userspace__)
12040|       |#if defined(_WIN32)
12041|       |			udp->uh_sum = 0;
12042|       |#else
12043|       |			if ((udp->uh_sum = in6_cksum(o_pak, IPPROTO_UDP, sizeof(struct ip6_hdr), len - sizeof(struct ip6_hdr))) == 0) {
12044|       |				udp->uh_sum = 0xffff;
12045|       |			}
12046|       |#endif
12047|       |#endif
12048|      0|		} else {
12049|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12050|       |			mout->m_pkthdr.csum_flags = CSUM_SCTP_IPV6;
12051|       |			mout->m_pkthdr.csum_data = offsetof(struct sctphdr, checksum);
12052|       |			SCTP_STAT_INCR(sctps_sendhwcrc);
12053|       |#else
12054|      0|			shout->checksum = sctp_calculate_cksum(mout, sizeof(struct ip6_hdr));
12055|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12056|      0|#endif
12057|      0|		}
12058|       |#ifdef SCTP_PACKET_LOGGING
12059|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) {
12060|       |			sctp_packet_log(o_pak);
12061|       |		}
12062|       |#endif
12063|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12064|       |		SCTP_PROBE5(send, NULL, NULL, ip6, NULL, shout);
12065|       |#endif
12066|      0|		SCTP_IP6_OUTPUT(ret, o_pak, NULL, NULL, NULL, vrf_id);
  ------------------
  |  | 1062|      0|#define SCTP_IP6_OUTPUT(result, o_pak, ro, ifp, inp, vrf_id) sctp_userspace_ip6_output(&result, o_pak, ro, inp, vrf_id);
  ------------------
12067|      0|		break;
12068|      0|#endif
12069|      0|#if defined(__Userspace__)
12070|    801|	case AF_CONN:
  ------------------
  |  | 1014|    801|#define AF_CONN 123
  ------------------
  |  Branch (12070:2): [True: 801, False: 0]
  ------------------
12071|    801|	{
12072|    801|		char *buffer;
12073|    801|		struct sockaddr_conn *sconn;
12074|       |
12075|    801|		sconn = (struct sockaddr_conn *)src;
12076|    801|		if (SCTP_BASE_VAR(crc32c_offloaded) == 0) {
  ------------------
  |  |  591|    801|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (12076:7): [True: 0, False: 801]
  ------------------
12077|      0|			shout->checksum = sctp_calculate_cksum(o_pak, 0);
12078|      0|			SCTP_STAT_INCR(sctps_sendswcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12079|    801|		} else {
12080|    801|			SCTP_STAT_INCR(sctps_sendhwcrc);
  ------------------
  |  | 1112|    801|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    801|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    801|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12081|    801|		}
12082|       |#ifdef SCTP_PACKET_LOGGING
12083|       |		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) {
12084|       |			sctp_packet_log(mout);
12085|       |		}
12086|       |#endif
12087|       |		/* Don't alloc/free for each packet */
12088|    801|		if ((buffer = malloc(len)) != NULL) {
  ------------------
  |  Branch (12088:7): [True: 801, False: 0]
  ------------------
12089|    801|			m_copydata(o_pak, 0, len, buffer);
12090|    801|			ret = SCTP_BASE_VAR(conn_output)(sconn->sconn_addr, buffer, len, 0, 0);
  ------------------
  |  |  591|    801|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
12091|    801|			free(buffer);
12092|    801|		} else {
12093|      0|			ret = ENOMEM;
12094|      0|		}
12095|    801|		sctp_m_freem(o_pak);
  ------------------
  |  |   52|    801|#define sctp_m_freem m_freem
  ------------------
12096|    801|		break;
12097|      0|	}
12098|      0|#endif
12099|      0|	default:
  ------------------
  |  Branch (12099:2): [True: 0, False: 801]
  ------------------
12100|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT1, "Unknown protocol (TSNH) type %d\n",
12101|      0|		        dst->sa_family);
12102|      0|		sctp_m_freem(mout);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
12103|      0|		SCTP_LTRACE_ERR_RET_PKT(mout, NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, EFAULT);
12104|      0|		return;
12105|    801|	}
12106|    801|	SCTPDBG(SCTP_DEBUG_OUTPUT3, "return from send is %d\n", ret);
12107|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12108|       |	if (port) {
12109|       |		UDPSTAT_INC(udps_opackets);
12110|       |	}
12111|       |#endif
12112|    801|	SCTP_STAT_INCR(sctps_sendpackets);
  ------------------
  |  | 1112|    801|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    801|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    801|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12113|    801|	SCTP_STAT_INCR_COUNTER64(sctps_outpackets);
  ------------------
  |  | 1128|    801|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    801|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    801|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    801|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12114|    801|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|    801|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    801|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    801|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    801|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12115|    801|	if (ret) {
  ------------------
  |  Branch (12115:6): [True: 0, False: 801]
  ------------------
12116|      0|		SCTP_STAT_INCR(sctps_senderrors);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12117|      0|	}
12118|    801|	return;
12119|    801|}
sctp_output.c:sctp_add_stream_reset_out:
12548|  9.89k|{
12549|  9.89k|	uint16_t len, old_len, i;
12550|  9.89k|	struct sctp_stream_reset_out_request *req_out;
12551|  9.89k|	struct sctp_chunkhdr *ch;
12552|  9.89k|	int at;
12553|  9.89k|	int number_entries=0;
12554|       |
12555|  9.89k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  9.89k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  9.89k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12556|  9.89k|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|  9.89k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12557|       |	/* get to new offset for the param. */
12558|  9.89k|	req_out = (struct sctp_stream_reset_out_request *)((caddr_t)ch + len);
12559|       |	/* now how long will this param be? */
12560|  2.55M|	for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (12560:14): [True: 2.54M, False: 9.89k]
  ------------------
12561|  2.54M|		if ((stcb->asoc.strmout[i].state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|  2.54M|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (12561:7): [True: 573k, False: 1.97M]
  ------------------
12562|   573k|		    (stcb->asoc.strmout[i].chunks_on_queues == 0) &&
  ------------------
  |  Branch (12562:7): [True: 570k, False: 2.13k]
  ------------------
12563|  2.54M|		    TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) {
  ------------------
  |  Branch (12563:7): [True: 569k, False: 1.60k]
  ------------------
12564|   569k|			number_entries++;
12565|   569k|		}
12566|  2.54M|	}
12567|  9.89k|	if (number_entries == 0) {
  ------------------
  |  Branch (12567:6): [True: 7.57k, False: 2.32k]
  ------------------
12568|  7.57k|		return (0);
12569|  7.57k|	}
12570|  2.32k|	if (number_entries == stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (12570:6): [True: 867, False: 1.45k]
  ------------------
12571|    867|		number_entries = 0;
12572|    867|	}
12573|  2.32k|	if (number_entries > SCTP_MAX_STREAMS_AT_ONCE_RESET) {
  ------------------
  |  |  697|  2.32k|#define SCTP_MAX_STREAMS_AT_ONCE_RESET 200
  ------------------
  |  Branch (12573:6): [True: 1.35k, False: 970]
  ------------------
12574|  1.35k|		number_entries = SCTP_MAX_STREAMS_AT_ONCE_RESET;
  ------------------
  |  |  697|  1.35k|#define SCTP_MAX_STREAMS_AT_ONCE_RESET 200
  ------------------
12575|  1.35k|	}
12576|  2.32k|	len = (uint16_t)(sizeof(struct sctp_stream_reset_out_request) + (sizeof(uint16_t) * number_entries));
12577|  2.32k|	req_out->ph.param_type = htons(SCTP_STR_RESET_OUT_REQUEST);
12578|  2.32k|	req_out->ph.param_length = htons(len);
12579|  2.32k|	req_out->request_seq = htonl(seq);
12580|  2.32k|	req_out->response_seq = htonl(resp_seq);
12581|  2.32k|	req_out->send_reset_at_tsn = htonl(last_sent);
12582|  2.32k|	at = 0;
12583|  2.32k|	if (number_entries) {
  ------------------
  |  Branch (12583:6): [True: 1.45k, False: 867]
  ------------------
12584|   286k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (12584:15): [True: 286k, False: 0]
  ------------------
12585|   286k|			if ((stcb->asoc.strmout[i].state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|   286k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (12585:8): [True: 272k, False: 14.4k]
  ------------------
12586|   272k|			    (stcb->asoc.strmout[i].chunks_on_queues == 0) &&
  ------------------
  |  Branch (12586:8): [True: 270k, False: 1.35k]
  ------------------
12587|   286k|			    TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) {
  ------------------
  |  Branch (12587:8): [True: 270k, False: 4]
  ------------------
12588|   270k|				req_out->list_of_streams[at] = htons(i);
12589|   270k|				at++;
12590|   270k|				stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_IN_FLIGHT;
  ------------------
  |  |  672|   270k|#define SCTP_STREAM_RESET_IN_FLIGHT  0x04
  ------------------
12591|   270k|				if (at >= number_entries) {
  ------------------
  |  Branch (12591:9): [True: 1.45k, False: 269k]
  ------------------
12592|  1.45k|					break;
12593|  1.45k|				}
12594|   270k|			}
12595|   286k|		}
12596|  1.45k|	} else {
12597|   223k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (12597:15): [True: 222k, False: 867]
  ------------------
12598|   222k|			stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_IN_FLIGHT;
  ------------------
  |  |  672|   222k|#define SCTP_STREAM_RESET_IN_FLIGHT  0x04
  ------------------
12599|   222k|		}
12600|    867|	}
12601|  2.32k|	if (SCTP_SIZE32(len) > len) {
  ------------------
  |  |  383|  2.32k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (12601:6): [True: 43, False: 2.27k]
  ------------------
12602|       |		/*-
12603|       |		 * Need to worry about the pad we may end up adding to the
12604|       |		 * end. This is easy since the struct is either aligned to 4
12605|       |		 * bytes or 2 bytes off.
12606|       |		 */
12607|     43|		req_out->list_of_streams[number_entries] = 0;
12608|     43|	}
12609|       |	/* now fix the chunk length */
12610|  2.32k|	ch->chunk_length = htons(len + old_len);
12611|  2.32k|	chk->book_size = len + old_len;
12612|  2.32k|	chk->book_size_scale = 0;
12613|  2.32k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  2.32k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12614|  2.32k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  2.32k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.32k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12615|  2.32k|	return (1);
12616|  9.89k|}
sctp_output.c:sctp_add_an_out_stream:
12814|     44|{
12815|     44|	uint16_t len, old_len;
12816|     44|	struct sctp_chunkhdr *ch;
12817|     44|	struct sctp_stream_reset_add_strm *addstr;
12818|       |
12819|     44|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|     44|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     44|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12820|     44|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|     44|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12821|       |
12822|       |	/* get to new offset for the param. */
12823|     44|	addstr = (struct sctp_stream_reset_add_strm *)((caddr_t)ch + len);
12824|       |	/* now how long will this param be? */
12825|     44|	len = sizeof(struct sctp_stream_reset_add_strm);
12826|       |
12827|       |	/* Fill it out. */
12828|     44|	addstr->ph.param_type = htons(SCTP_STR_RESET_ADD_OUT_STREAMS);
12829|     44|	addstr->ph.param_length = htons(len);
12830|     44|	addstr->request_seq = htonl(seq);
12831|     44|	addstr->number_of_streams = htons(adding);
12832|     44|	addstr->reserved = 0;
12833|       |
12834|       |	/* now fix the chunk length */
12835|     44|	ch->chunk_length = htons(len + old_len);
12836|     44|	chk->send_size = len + old_len;
12837|     44|	chk->book_size = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  383|     44|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12838|     44|	chk->book_size_scale = 0;
12839|     44|	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  801|     44|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     44|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  383|     44|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12840|     44|	return;
12841|     44|}
sctp_output.c:sctp_add_stream_reset_in:
12622|  2.19k|{
12623|  2.19k|	uint16_t len, old_len, i;
12624|  2.19k|	struct sctp_stream_reset_in_request *req_in;
12625|  2.19k|	struct sctp_chunkhdr *ch;
12626|       |
12627|  2.19k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  2.19k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.19k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12628|  2.19k|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|  2.19k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12629|       |
12630|       |	/* get to new offset for the param. */
12631|  2.19k|	req_in = (struct sctp_stream_reset_in_request *)((caddr_t)ch + len);
12632|       |	/* now how long will this param be? */
12633|  2.19k|	len = (uint16_t)(sizeof(struct sctp_stream_reset_in_request) + (sizeof(uint16_t) * number_entries));
12634|  2.19k|	req_in->ph.param_type = htons(SCTP_STR_RESET_IN_REQUEST);
12635|  2.19k|	req_in->ph.param_length = htons(len);
12636|  2.19k|	req_in->request_seq = htonl(seq);
12637|  2.19k|	if (number_entries) {
  ------------------
  |  Branch (12637:6): [True: 0, False: 2.19k]
  ------------------
12638|      0|		for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (12638:15): [True: 0, False: 0]
  ------------------
12639|      0|			req_in->list_of_streams[i] = htons(list[i]);
12640|      0|		}
12641|      0|	}
12642|  2.19k|	if (SCTP_SIZE32(len) > len) {
  ------------------
  |  |  383|  2.19k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (12642:6): [True: 0, False: 2.19k]
  ------------------
12643|       |		/*-
12644|       |		 * Need to worry about the pad we may end up adding to the
12645|       |		 * end. This is easy since the struct is either aligned to 4
12646|       |		 * bytes or 2 bytes off.
12647|       |		 */
12648|      0|		req_in->list_of_streams[number_entries] = 0;
12649|      0|	}
12650|       |	/* now fix the chunk length */
12651|  2.19k|	ch->chunk_length = htons(len + old_len);
12652|  2.19k|	chk->book_size = len + old_len;
12653|  2.19k|	chk->book_size_scale = 0;
12654|  2.19k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  2.19k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12655|  2.19k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  2.19k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.19k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12656|  2.19k|	return;
12657|  2.19k|}
sctp_output.c:sctp_copy_it_in:
13356|  5.42k|{
13357|       |	/*-
13358|       |	 * This routine must be very careful in its work. Protocol
13359|       |	 * processing is up and running so care must be taken to spl...()
13360|       |	 * when you need to do something that may effect the stcb/asoc. The
13361|       |	 * sb is locked however. When data is copied the protocol processing
13362|       |	 * should be enabled since this is a slower operation...
13363|       |	 */
13364|  5.42k|	struct sctp_stream_queue_pending *sp;
13365|  5.42k|	int resv_in_first;
13366|       |
13367|  5.42k|	*error = 0;
13368|  5.42k|	sctp_alloc_a_strmoq(stcb, sp);
  ------------------
  |  |  134|  5.42k|#define sctp_alloc_a_strmoq(_stcb, _strmoq) { \
  |  |  135|  5.42k|	(_strmoq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_strmoq), struct sctp_stream_queue_pending); \
  |  |  ------------------
  |  |  |  |  703|  5.42k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  136|  5.42k|	if ((_strmoq)) { \
  |  |  ------------------
  |  |  |  Branch (136:6): [True: 5.42k, False: 0]
  |  |  ------------------
  |  |  137|  5.42k|		memset(_strmoq, 0, sizeof(struct sctp_stream_queue_pending)); \
  |  |  138|  5.42k|		SCTP_INCR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  688|  5.42k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.42k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  139|  5.42k|		(_strmoq)->holds_key_ref = 0; \
  |  |  140|  5.42k|	} \
  |  |  141|  5.42k|}
  ------------------
13369|  5.42k|	if (sp == NULL) {
  ------------------
  |  Branch (13369:6): [True: 0, False: 5.42k]
  ------------------
13370|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, net, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
13371|      0|		*error = ENOMEM;
13372|      0|		goto out_now;
13373|      0|	}
13374|  5.42k|	sp->act_flags = 0;
13375|  5.42k|	sp->sender_all_done = 0;
13376|  5.42k|	sp->sinfo_flags = srcv->sinfo_flags;
13377|  5.42k|	sp->timetolive = srcv->sinfo_timetolive;
13378|  5.42k|	sp->ppid = srcv->sinfo_ppid;
13379|  5.42k|	sp->context = srcv->sinfo_context;
13380|  5.42k|	sp->fsn = 0;
13381|  5.42k|	(void)SCTP_GETTIME_TIMEVAL(&sp->ts);
  ------------------
  |  |  991|  5.42k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
13382|  5.42k|	sp->sid = srcv->sinfo_stream;
13383|       |#if defined(__APPLE__) && !defined(__Userspace__)
13384|       |#if defined(APPLE_LEOPARD)
13385|       |	sp->length = (uint32_t)min(uio->uio_resid, max_send_len);
13386|       |#else
13387|       |	sp->length = (uint32_t)min(uio_resid(uio), max_send_len);
13388|       |#endif
13389|       |#else
13390|  5.42k|	sp->length = (uint32_t)min(uio->uio_resid, max_send_len);
  ------------------
  |  |   66|  5.42k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 5.42k]
  |  |  ------------------
  ------------------
13391|  5.42k|#endif
13392|       |#if defined(__APPLE__) && !defined(__Userspace__)
13393|       |#if defined(APPLE_LEOPARD)
13394|       |	if ((sp->length == (uint32_t)uio->uio_resid) &&
13395|       |#else
13396|       |	if ((sp->length == (uint32_t)uio_resid(uio)) &&
13397|       |#endif
13398|       |#else
13399|  5.42k|	if ((sp->length == (uint32_t)uio->uio_resid) &&
  ------------------
  |  Branch (13399:6): [True: 5.42k, False: 0]
  ------------------
13400|  5.42k|#endif
13401|  5.42k|	    ((user_marks_eor == 0) ||
  ------------------
  |  Branch (13401:7): [True: 5.42k, False: 0]
  ------------------
13402|      0|	     (srcv->sinfo_flags & SCTP_EOF) ||
  ------------------
  |  |  257|      0|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (13402:7): [True: 0, False: 0]
  ------------------
13403|  5.42k|	     (user_marks_eor && (srcv->sinfo_flags & SCTP_EOR)))) {
  ------------------
  |  |  262|      0|#define SCTP_EOR              0x2000 /* end of message signal */
  ------------------
  |  Branch (13403:8): [True: 0, False: 0]
  |  Branch (13403:26): [True: 0, False: 0]
  ------------------
13404|  5.42k|		sp->msg_is_complete = 1;
13405|  5.42k|	} else {
13406|      0|		sp->msg_is_complete = 0;
13407|      0|	}
13408|  5.42k|	sp->sender_all_done = 0;
13409|  5.42k|	sp->some_taken = 0;
13410|  5.42k|	sp->put_last_out = 0;
13411|  5.42k|	resv_in_first = SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  5.42k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.54k, False: 880]
  |  |  ------------------
  |  |  135|  5.42k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.42k|                                        sizeof(struct sctp_data_chunk))
  ------------------
13412|  5.42k|	sp->data = sp->tail_mbuf = NULL;
13413|  5.42k|	if (sp->length == 0) {
  ------------------
  |  Branch (13413:6): [True: 0, False: 5.42k]
  ------------------
13414|      0|		goto skip_copy;
13415|      0|	}
13416|  5.42k|	if (srcv->sinfo_keynumber_valid) {
  ------------------
  |  Branch (13416:6): [True: 0, False: 5.42k]
  ------------------
13417|      0|		sp->auth_keyid = srcv->sinfo_keynumber;
13418|  5.42k|	} else {
13419|  5.42k|		sp->auth_keyid = stcb->asoc.authinfo.active_keyid;
13420|  5.42k|	}
13421|  5.42k|	if (sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.peer_auth_chunks)) {
  ------------------
  |  |  100|  5.42k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 5.42k]
  |  |  |  Branch (100:51): [True: 1.38k, False: 4.04k]
  |  |  ------------------
  ------------------
13422|      0|		sctp_auth_key_acquire(stcb, sp->auth_keyid);
13423|      0|		sp->holds_key_ref = 1;
13424|      0|	}
13425|       |#if defined(__APPLE__) && !defined(__Userspace__)
13426|       |	SCTP_SOCKET_UNLOCK(SCTP_INP_SO(stcb->sctp_ep), 0);
13427|       |#endif
13428|  5.42k|	*error = sctp_copy_one(sp, uio, resv_in_first);
13429|       |#if defined(__APPLE__) && !defined(__Userspace__)
13430|       |	SCTP_SOCKET_LOCK(SCTP_INP_SO(stcb->sctp_ep), 0);
13431|       |#endif
13432|  5.42k| skip_copy:
13433|  5.42k|	if (*error) {
  ------------------
  |  Branch (13433:6): [True: 0, False: 5.42k]
  ------------------
13434|      0|#if defined(__Userspace__)
13435|      0|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13436|      0|#endif
13437|      0|		sctp_free_a_strmoq(stcb, sp, SCTP_SO_LOCKED);
  ------------------
  |  |  125|      0|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|      0|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  131|      0|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|}
  ------------------
13438|      0|#if defined(__Userspace__)
13439|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13440|      0|#endif
13441|      0|		sp = NULL;
13442|  5.42k|	} else {
13443|  5.42k|		if (sp->sinfo_flags & SCTP_ADDR_OVER) {
  ------------------
  |  |  260|  5.42k|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  ------------------
  |  Branch (13443:7): [True: 0, False: 5.42k]
  ------------------
13444|      0|			sp->net = net;
13445|      0|			atomic_add_int(&sp->net->ref_count, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13446|  5.42k|		} else {
13447|  5.42k|			sp->net = NULL;
13448|  5.42k|		}
13449|  5.42k|		sctp_set_prsctp_policy(sp);
13450|  5.42k|	}
13451|  5.42k|out_now:
13452|  5.42k|	return (sp);
13453|  5.42k|}
sctp_output.c:sctp_copy_one:
13281|  5.42k|{
13282|  5.42k|#if defined(__FreeBSD__) || defined(__Userspace__)
13283|  5.42k|	sp->data = m_uiotombuf(uio, M_WAITOK, sp->length, resv_upfront, 0);
  ------------------
  |  |   61|  5.42k|#define	M_WAITOK	0x0002		/* ok to block */
  ------------------
13284|  5.42k|	if (sp->data == NULL) {
  ------------------
  |  Branch (13284:6): [True: 0, False: 5.42k]
  ------------------
13285|       |		/* The only possible error is EFAULT. */
13286|      0|		SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, EFAULT);
13287|      0|		return (EFAULT);
13288|      0|	}
13289|  5.42k|	sp->tail_mbuf = m_last(sp->data);
13290|  5.42k|	return (0);
13291|       |#else
13292|       |	int left;
13293|       |	int cancpy, willcpy, error;
13294|       |	struct mbuf *m, *head;
13295|       |	int cpsz = 0;
13296|       |
13297|       |	/* First one gets a header */
13298|       |	left = sp->length;
13299|       |	head = m = sctp_get_mbuf_for_msg((left + resv_upfront), 0, M_WAITOK, 0, MT_DATA);
13300|       |	if (m == NULL) {
13301|       |		SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, ENOBUFS);
13302|       |		return (ENOBUFS);
13303|       |	}
13304|       |	/*-
13305|       |	 * Add this one for m in now, that way if the alloc fails we won't
13306|       |	 * have a bad cnt.
13307|       |	 */
13308|       |	SCTP_BUF_RESV_UF(m, resv_upfront);
13309|       |	cancpy = (int)M_TRAILINGSPACE(m);
13310|       |	willcpy = min(cancpy, left);
13311|       |	while (left > 0) {
13312|       |		/* move in user data */
13313|       |		error = uiomove(mtod(m, caddr_t), willcpy, uio);
13314|       |		if (error) {
13315|       |			sctp_m_freem(head);
13316|       |			return (error);
13317|       |		}
13318|       |		SCTP_BUF_LEN(m) = willcpy;
13319|       |		left -= willcpy;
13320|       |		cpsz += willcpy;
13321|       |		if (left > 0) {
13322|       |			SCTP_BUF_NEXT(m) = sctp_get_mbuf_for_msg(left, 0, M_WAITOK, 0, MT_DATA);
13323|       |			if (SCTP_BUF_NEXT(m) == NULL) {
13324|       |				/*
13325|       |				 * the head goes back to caller, he can free
13326|       |				 * the rest
13327|       |				 */
13328|       |				sctp_m_freem(head);
13329|       |				SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, ENOBUFS);
13330|       |				return (ENOBUFS);
13331|       |			}
13332|       |			m = SCTP_BUF_NEXT(m);
13333|       |			cancpy = (int)M_TRAILINGSPACE(m);
13334|       |			willcpy = min(cancpy, left);
13335|       |		} else {
13336|       |			sp->tail_mbuf = m;
13337|       |			SCTP_BUF_NEXT(m) = NULL;
13338|       |		}
13339|       |	}
13340|       |	sp->data = head;
13341|       |	sp->length = cpsz;
13342|       |	return (0);
13343|       |#endif
13344|  5.42k|}
sctp_output.c:sctp_set_prsctp_policy:
 6913|  5.42k|{
 6914|       |	/*
 6915|       |	 * We assume that the user wants PR_SCTP_TTL if the user
 6916|       |	 * provides a positive lifetime but does not specify any
 6917|       |	 * PR_SCTP policy.
 6918|       |	 */
 6919|  5.42k|	if (PR_SCTP_ENABLED(sp->sinfo_flags)) {
  ------------------
  |  |  281|  5.42k|#define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  280|  5.42k|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  272|  5.42k|#define SCTP_PR_SCTP_NONE 0x0000 /* Reliable transfer */
  |  |  ------------------
  |  |  |  Branch (281:36): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  282|  5.42k|                                   (PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL))
  |  |  ------------------
  |  |  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |                                                  (PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL))
  |  |  ------------------
  |  |  |  |  278|      0|#define SCTP_PR_SCTP_ALL  0x000f /* Used for aggregated stats */
  |  |  ------------------
  |  |  |  Branch (282:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 6920|      0|		sp->act_flags |= PR_SCTP_POLICY(sp->sinfo_flags);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
 6921|  5.42k|	} else if (sp->timetolive > 0) {
  ------------------
  |  Branch (6921:13): [True: 0, False: 5.42k]
  ------------------
 6922|      0|		sp->sinfo_flags |= SCTP_PR_SCTP_TTL;
  ------------------
  |  |  273|      0|#define SCTP_PR_SCTP_TTL  0x0001 /* Time based PR-SCTP */
  ------------------
 6923|      0|		sp->act_flags |= PR_SCTP_POLICY(sp->sinfo_flags);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
 6924|  5.42k|	} else {
 6925|  5.42k|		return;
 6926|  5.42k|	}
 6927|      0|	switch (PR_SCTP_POLICY(sp->sinfo_flags)) {
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
 6928|      0|	case CHUNK_FLAGS_PR_SCTP_BUF:
  ------------------
  |  |  477|      0|#define CHUNK_FLAGS_PR_SCTP_BUF	        SCTP_PR_SCTP_BUF
  |  |  ------------------
  |  |  |  |  275|      0|#define SCTP_PR_SCTP_BUF  SCTP_PR_SCTP_PRIO /* For backwards compatibility */
  |  |  |  |  ------------------
  |  |  |  |  |  |  274|      0|#define SCTP_PR_SCTP_PRIO 0x0002 /* Buffer based PR-SCTP */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (6928:2): [True: 0, False: 0]
  ------------------
 6929|       |		/*
 6930|       |		 * Time to live is a priority stored in tv_sec when
 6931|       |		 * doing the buffer drop thing.
 6932|       |		 */
 6933|      0|		sp->ts.tv_sec = sp->timetolive;
 6934|      0|		sp->ts.tv_usec = 0;
 6935|      0|		break;
 6936|      0|	case CHUNK_FLAGS_PR_SCTP_TTL:
  ------------------
  |  |  476|      0|#define CHUNK_FLAGS_PR_SCTP_TTL	        SCTP_PR_SCTP_TTL
  |  |  ------------------
  |  |  |  |  273|      0|#define SCTP_PR_SCTP_TTL  0x0001 /* Time based PR-SCTP */
  |  |  ------------------
  ------------------
  |  Branch (6936:2): [True: 0, False: 0]
  ------------------
 6937|      0|	{
 6938|      0|		struct timeval tv;
 6939|      0|		(void)SCTP_GETTIME_TIMEVAL(&sp->ts);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 6940|      0|		tv.tv_sec = sp->timetolive / 1000;
 6941|      0|		tv.tv_usec = (sp->timetolive * 1000) % 1000000;
 6942|       |		/* TODO sctp_constants.h needs alternative time macros when
 6943|       |		 *  _KERNEL is undefined.
 6944|       |		 */
 6945|      0|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 6946|      0|		timeradd(&sp->ts, &tv, &sp->ts);
  ------------------
  |  Branch (6946:3): [True: 0, False: 0]
  |  Branch (6946:3): [Folded, False: 0]
  ------------------
 6947|       |#else
 6948|       |		timevaladd(&sp->ts, &tv);
 6949|       |#endif
 6950|      0|	}
 6951|      0|		break;
 6952|      0|	case CHUNK_FLAGS_PR_SCTP_RTX:
  ------------------
  |  |  478|      0|#define CHUNK_FLAGS_PR_SCTP_RTX         SCTP_PR_SCTP_RTX
  |  |  ------------------
  |  |  |  |  276|      0|#define SCTP_PR_SCTP_RTX  0x0003 /* Number of retransmissions based PR-SCTP */
  |  |  ------------------
  ------------------
  |  Branch (6952:2): [True: 0, False: 0]
  ------------------
 6953|       |		/*
 6954|       |		 * Time to live is a the number or retransmissions
 6955|       |		 * stored in tv_sec.
 6956|       |		 */
 6957|      0|		sp->ts.tv_sec = sp->timetolive;
 6958|      0|		sp->ts.tv_usec = 0;
 6959|      0|		break;
 6960|      0|	default:
  ------------------
  |  Branch (6960:2): [True: 0, False: 0]
  ------------------
 6961|      0|		SCTPDBG(SCTP_DEBUG_USRREQ1,
 6962|      0|			"Unknown PR_SCTP policy %u.\n",
 6963|      0|			PR_SCTP_POLICY(sp->sinfo_flags));
 6964|      0|		break;
 6965|      0|	}
 6966|      0|}
sctp_output.c:sctp_copy_mbufchain:
 7083|   177k|{
 7084|   177k|	struct mbuf *m;
 7085|   177k|	struct mbuf *appendchain;
 7086|   177k|	caddr_t cp;
 7087|   177k|	int len;
 7088|       |
 7089|   177k|	if (endofchain == NULL) {
  ------------------
  |  Branch (7089:6): [True: 0, False: 177k]
  ------------------
 7090|       |		/* error */
 7091|      0|	error_out:
 7092|      0|		if (outchain)
  ------------------
  |  Branch (7092:7): [True: 0, False: 0]
  ------------------
 7093|      0|			sctp_m_freem(outchain);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 7094|      0|		return (NULL);
 7095|      0|	}
 7096|   177k|	if (can_take_mbuf) {
  ------------------
  |  Branch (7096:6): [True: 59.5k, False: 117k]
  ------------------
 7097|  59.5k|		appendchain = clonechain;
 7098|   117k|	} else {
 7099|   117k|		if (!copy_by_ref &&
  ------------------
  |  Branch (7099:7): [True: 117k, False: 0]
  ------------------
 7100|   117k|		    (sizeofcpy <= (int)((((SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) - 1) * MLEN) + MHLEN)))) {
  ------------------
  |  |  590|   117k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		    (sizeofcpy <= (int)((((SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) - 1) * MLEN) + MHLEN)))) {
  ------------------
  |  |  138|   117k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   117k|#define MSIZE 256
  |  |  ------------------
  ------------------
              		    (sizeofcpy <= (int)((((SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) - 1) * MLEN) + MHLEN)))) {
  ------------------
  |  |  139|   117k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|   117k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   117k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (7100:7): [True: 117k, False: 57]
  ------------------
 7101|       |			/* Its not in a cluster */
 7102|   117k|			if (*endofchain == NULL) {
  ------------------
  |  Branch (7102:8): [True: 15.8k, False: 101k]
  ------------------
 7103|       |				/* lets get a mbuf cluster */
 7104|  15.8k|				if (outchain == NULL) {
  ------------------
  |  Branch (7104:9): [True: 15.8k, False: 0]
  ------------------
 7105|       |					/* This is the general case */
 7106|  15.8k|				new_mbuf:
 7107|  15.8k|					outchain = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   51|  15.8k|#define MCLBYTES 2048
  ------------------
              					outchain = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  15.8k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					outchain = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  15.8k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  15.8k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 7108|  15.8k|					if (outchain == NULL) {
  ------------------
  |  Branch (7108:10): [True: 0, False: 15.8k]
  ------------------
 7109|      0|						goto error_out;
 7110|      0|					}
 7111|  15.8k|					SCTP_BUF_LEN(outchain) = 0;
  ------------------
  |  |  801|  15.8k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  15.8k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7112|  15.8k|					*endofchain = outchain;
 7113|       |					/* get the prepend space */
 7114|  15.8k|					SCTP_BUF_RESV_UF(outchain, (SCTP_FIRST_MBUF_RESV+4));
  ------------------
  |  |  804|  15.8k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  15.8k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 7115|  15.8k|				} else {
 7116|       |					/* We really should not get a NULL in endofchain */
 7117|       |					/* find end */
 7118|      0|					m = outchain;
 7119|      0|					while (m) {
  ------------------
  |  Branch (7119:13): [True: 0, False: 0]
  ------------------
 7120|      0|						if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (7120:11): [True: 0, False: 0]
  ------------------
 7121|      0|							*endofchain = m;
 7122|      0|							break;
 7123|      0|						}
 7124|      0|						m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7125|      0|					}
 7126|       |					/* sanity */
 7127|      0|					if (*endofchain == NULL) {
  ------------------
  |  Branch (7127:10): [True: 0, False: 0]
  ------------------
 7128|       |						/* huh, TSNH XXX maybe we should panic */
 7129|      0|						sctp_m_freem(outchain);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 7130|      0|						goto new_mbuf;
 7131|      0|					}
 7132|      0|				}
 7133|       |				/* get the new end of length */
 7134|  15.8k|				len = (int)M_TRAILINGSPACE(*endofchain);
  ------------------
  |  |  355|  15.8k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  15.8k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  15.8k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 15.8k, False: 0]
  |  |  ------------------
  |  |  356|  15.8k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  15.8k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  15.8k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  15.8k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 15.8k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  15.8k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  15.8k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  15.8k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 15.8k]
  |  |  |  |  ------------------
  |  |  |  |  328|  15.8k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  15.8k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 15.8k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  15.8k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  15.8k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  15.8k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  15.8k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  15.8k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  15.8k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|      0|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7135|   101k|			} else {
 7136|       |				/* how much is left at the end? */
 7137|   101k|				len = (int)M_TRAILINGSPACE(*endofchain);
  ------------------
  |  |  355|   101k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|   101k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|   101k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 82.6k, False: 19.2k]
  |  |  ------------------
  |  |  356|   101k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  82.6k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  82.6k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  82.6k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 82.6k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  82.6k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  82.6k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  82.6k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 82.6k]
  |  |  |  |  ------------------
  |  |  |  |  328|  82.6k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  82.6k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 80.7k, False: 1.90k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  80.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  80.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  80.7k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  80.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  80.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|   101k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  19.2k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  19.2k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  19.2k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  19.2k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7138|   101k|			}
 7139|       |			/* Find the end of the data, for appending */
 7140|   117k|			cp = (mtod((*endofchain), caddr_t) + SCTP_BUF_LEN((*endofchain)));
  ------------------
  |  |   96|   117k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   117k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			cp = (mtod((*endofchain), caddr_t) + SCTP_BUF_LEN((*endofchain)));
  ------------------
  |  |  801|   117k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   117k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7141|       |
 7142|       |			/* Now lets copy it out */
 7143|   117k|			if (len >= sizeofcpy) {
  ------------------
  |  Branch (7143:8): [True: 114k, False: 2.89k]
  ------------------
 7144|       |				/* It all fits, copy it in */
 7145|   114k|				m_copydata(clonechain, 0, sizeofcpy, cp);
 7146|   114k|				SCTP_BUF_LEN((*endofchain)) += sizeofcpy;
  ------------------
  |  |  801|   114k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   114k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7147|   114k|			} else {
 7148|       |				/* fill up the end of the chain */
 7149|  2.89k|				if (len > 0) {
  ------------------
  |  Branch (7149:9): [True: 971, False: 1.92k]
  ------------------
 7150|    971|					m_copydata(clonechain, 0, len, cp);
 7151|    971|					SCTP_BUF_LEN((*endofchain)) += len;
  ------------------
  |  |  801|    971|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    971|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7152|       |					/* now we need another one */
 7153|    971|					sizeofcpy -= len;
 7154|    971|				}
 7155|  2.89k|				m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   51|  2.89k|#define MCLBYTES 2048
  ------------------
              				m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  2.89k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              				m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  2.89k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  2.89k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 7156|  2.89k|				if (m == NULL) {
  ------------------
  |  Branch (7156:9): [True: 0, False: 2.89k]
  ------------------
 7157|       |					/* We failed */
 7158|      0|					goto error_out;
 7159|      0|				}
 7160|  2.89k|				SCTP_BUF_NEXT((*endofchain)) = m;
  ------------------
  |  |  802|  2.89k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.89k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7161|  2.89k|				*endofchain = m;
 7162|  2.89k|				cp = mtod((*endofchain), caddr_t);
  ------------------
  |  |   96|  2.89k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.89k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 7163|  2.89k|				m_copydata(clonechain, len, sizeofcpy, cp);
 7164|  2.89k|				SCTP_BUF_LEN((*endofchain)) += sizeofcpy;
  ------------------
  |  |  801|  2.89k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.89k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7165|  2.89k|			}
 7166|   117k|			return (outchain);
 7167|   117k|		} else {
 7168|       |			/* copy the old fashion way */
 7169|     57|			appendchain = SCTP_M_COPYM(clonechain, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |  770|     57|#define SCTP_M_COPYM	m_copym
  ------------------
              			appendchain = SCTP_M_COPYM(clonechain, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   75|     57|#define	M_COPYALL	1000000000
  ------------------
              			appendchain = SCTP_M_COPYM(clonechain, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   60|     57|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 7170|       |#ifdef SCTP_MBUF_LOGGING
 7171|       |			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
 7172|       |				sctp_log_mbc(appendchain, SCTP_MBUF_ICOPY);
 7173|       |			}
 7174|       |#endif
 7175|     57|		}
 7176|   117k|	}
 7177|  59.6k|	if (appendchain == NULL) {
  ------------------
  |  Branch (7177:6): [True: 0, False: 59.6k]
  ------------------
 7178|       |		/* error */
 7179|      0|		if (outchain)
  ------------------
  |  Branch (7179:7): [True: 0, False: 0]
  ------------------
 7180|      0|			sctp_m_freem(outchain);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 7181|      0|		return (NULL);
 7182|      0|	}
 7183|  59.6k|	if (outchain) {
  ------------------
  |  Branch (7183:6): [True: 50.2k, False: 9.41k]
  ------------------
 7184|       |		/* tack on to the end */
 7185|  50.2k|		if (*endofchain != NULL) {
  ------------------
  |  Branch (7185:7): [True: 50.2k, False: 0]
  ------------------
 7186|  50.2k|			SCTP_BUF_NEXT(((*endofchain))) = appendchain;
  ------------------
  |  |  802|  50.2k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  50.2k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7187|  50.2k|		} else {
 7188|      0|			m = outchain;
 7189|      0|			while (m) {
  ------------------
  |  Branch (7189:11): [True: 0, False: 0]
  ------------------
 7190|      0|				if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (7190:9): [True: 0, False: 0]
  ------------------
 7191|      0|					SCTP_BUF_NEXT(m) = appendchain;
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7192|      0|					break;
 7193|      0|				}
 7194|      0|				m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7195|      0|			}
 7196|      0|		}
 7197|       |		/*
 7198|       |		 * save off the end and update the end-chain
 7199|       |		 * position
 7200|       |		 */
 7201|  50.2k|		m = appendchain;
 7202|  70.3k|		while (m) {
  ------------------
  |  Branch (7202:10): [True: 70.3k, False: 0]
  ------------------
 7203|  70.3k|			if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  70.3k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  70.3k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (7203:8): [True: 50.2k, False: 20.1k]
  ------------------
 7204|  50.2k|				*endofchain = m;
 7205|  50.2k|				break;
 7206|  50.2k|			}
 7207|  20.1k|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  20.1k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  20.1k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7208|  20.1k|		}
 7209|  50.2k|		return (outchain);
 7210|  50.2k|	} else {
 7211|       |		/* save off the end and update the end-chain position */
 7212|  9.41k|		m = appendchain;
 7213|  9.92k|		while (m) {
  ------------------
  |  Branch (7213:10): [True: 9.92k, False: 0]
  ------------------
 7214|  9.92k|			if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  9.92k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  9.92k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (7214:8): [True: 9.41k, False: 511]
  ------------------
 7215|  9.41k|				*endofchain = m;
 7216|  9.41k|				break;
 7217|  9.41k|			}
 7218|    511|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|    511|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    511|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7219|    511|		}
 7220|  9.41k|		return (appendchain);
 7221|  9.41k|	}
 7222|  59.6k|}

SCTP6_ARE_ADDR_EQUAL:
   83|  39.4k|{
   84|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
   85|       |#if defined(__APPLE__) && !defined(__Userspace__)
   86|       |	struct in6_addr tmp_a, tmp_b;
   87|       |
   88|       |	tmp_a = a->sin6_addr;
   89|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
   90|       |	if (in6_embedscope(&tmp_a, a, NULL, NULL) != 0) {
   91|       |#else
   92|       |	if (in6_embedscope(&tmp_a, a, NULL, NULL, NULL) != 0) {
   93|       |#endif
   94|       |		return (0);
   95|       |	}
   96|       |	tmp_b = b->sin6_addr;
   97|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
   98|       |	if (in6_embedscope(&tmp_b, b, NULL, NULL) != 0) {
   99|       |#else
  100|       |	if (in6_embedscope(&tmp_b, b, NULL, NULL, NULL) != 0) {
  101|       |#endif
  102|       |		return (0);
  103|       |	}
  104|       |	return (IN6_ARE_ADDR_EQUAL(&tmp_a, &tmp_b));
  105|       |#elif defined(SCTP_KAME)
  106|       |	struct sockaddr_in6 tmp_a, tmp_b;
  107|       |
  108|       |	memcpy(&tmp_a, a, sizeof(struct sockaddr_in6));
  109|       |	if (sa6_embedscope(&tmp_a, MODULE_GLOBAL(ip6_use_defzone)) != 0) {
  110|       |		return (0);
  111|       |	}
  112|       |	memcpy(&tmp_b, b, sizeof(struct sockaddr_in6));
  113|       |	if (sa6_embedscope(&tmp_b, MODULE_GLOBAL(ip6_use_defzone)) != 0) {
  114|       |		return (0);
  115|       |	}
  116|       |	return (IN6_ARE_ADDR_EQUAL(&tmp_a.sin6_addr, &tmp_b.sin6_addr));
  117|       |#else
  118|       |	struct in6_addr tmp_a, tmp_b;
  119|       |
  120|       |	tmp_a = a->sin6_addr;
  121|       |	if (in6_embedscope(&tmp_a, a) != 0) {
  122|       |		return (0);
  123|       |	}
  124|       |	tmp_b = b->sin6_addr;
  125|       |	if (in6_embedscope(&tmp_b, b) != 0) {
  126|       |		return (0);
  127|       |	}
  128|       |	return (IN6_ARE_ADDR_EQUAL(&tmp_a, &tmp_b));
  129|       |#endif
  130|       |#else
  131|       |	return (IN6_ARE_ADDR_EQUAL(&(a->sin6_addr), &(b->sin6_addr)));
  132|  39.4k|#endif /* SCTP_EMBEDDED_V6_SCOPE */
  133|  39.4k|}
sctp_allocate_vrf:
  202|      1|{
  203|      1|	struct sctp_vrf *vrf = NULL;
  204|      1|	struct sctp_vrflist *bucket;
  205|       |
  206|       |	/* First allocate the VRF structure */
  207|      1|	vrf = sctp_find_vrf(vrf_id);
  208|      1|	if (vrf) {
  ------------------
  |  Branch (208:6): [True: 0, False: 1]
  ------------------
  209|       |		/* Already allocated */
  210|      0|		return (vrf);
  211|      0|	}
  212|      1|	SCTP_MALLOC(vrf, struct sctp_vrf *, sizeof(struct sctp_vrf),
  ------------------
  |  |  675|      1|	do {								\
  |  |  676|      1|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|      1|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|      1|    do {								\
  |  |  |  |  198|      1|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      2|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|      1|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|      1|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 1]
  |  |  ------------------
  ------------------
  213|      1|		    SCTP_M_VRF);
  214|      1|	if (vrf == NULL) {
  ------------------
  |  Branch (214:6): [True: 0, False: 1]
  ------------------
  215|       |		/* No memory */
  216|      0|#ifdef INVARIANTS
  217|      0|		panic("No memory for VRF:%d", vrf_id);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  218|      0|#endif
  219|      0|		return (NULL);
  220|      0|	}
  221|       |	/* setup the VRF */
  222|      1|	memset(vrf, 0, sizeof(struct sctp_vrf));
  223|      1|	vrf->vrf_id = vrf_id;
  224|      1|	LIST_INIT(&vrf->ifnlist);
  ------------------
  |  Branch (224:2): [Folded, False: 1]
  ------------------
  225|      1|	vrf->total_ifa_count = 0;
  226|      1|	vrf->refcount = 0;
  227|       |	/* now also setup table ids */
  228|      1|	SCTP_INIT_VRF_TABLEID(vrf);
  229|       |	/* Init the HASH of addresses */
  230|      1|	vrf->vrf_addr_hash = SCTP_HASH_INIT(SCTP_VRF_ADDR_HASH_SIZE,
  ------------------
  |  |  765|      1|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|      1|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
  231|      1|					    &vrf->vrf_addr_hashmark);
  232|      1|	if (vrf->vrf_addr_hash == NULL) {
  ------------------
  |  Branch (232:6): [True: 0, False: 1]
  ------------------
  233|       |		/* No memory */
  234|      0|#ifdef INVARIANTS
  235|      0|		panic("No memory for VRF:%d", vrf_id);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  236|      0|#endif
  237|      0|		SCTP_FREE(vrf, SCTP_M_VRF);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  238|      0|		return (NULL);
  239|      0|	}
  240|       |
  241|       |	/* Add it to the hash table */
  242|      1|	bucket = &SCTP_BASE_INFO(sctp_vrfhash)[(vrf_id & SCTP_BASE_INFO(hashvrfmark))];
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	bucket = &SCTP_BASE_INFO(sctp_vrfhash)[(vrf_id & SCTP_BASE_INFO(hashvrfmark))];
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  243|      1|	LIST_INSERT_HEAD(bucket, vrf, next_vrf);
  ------------------
  |  Branch (243:2): [True: 0, False: 1]
  |  Branch (243:2): [Folded, False: 1]
  ------------------
  244|      1|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_vrfs), 1);
  ------------------
  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  245|      1|	return (vrf);
  246|      1|}
sctp_find_ifn:
  250|  3.01k|{
  251|  3.01k|	struct sctp_ifn *sctp_ifnp;
  252|  3.01k|	struct sctp_ifnlist *hash_ifn_head;
  253|       |
  254|  3.01k|	SCTP_IPI_ADDR_LOCK_ASSERT();
  255|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  256|       |	KASSERT(ifn != NULL, ("sctp_find_ifn(NULL, %u) called", ifn_index));
  257|       |#endif
  258|  3.01k|	hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & SCTP_BASE_INFO(vrf_ifn_hashmark))];
  ------------------
  |  |  587|  3.01k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & SCTP_BASE_INFO(vrf_ifn_hashmark))];
  ------------------
  |  |  587|  3.01k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  259|  9.03k|	LIST_FOREACH(sctp_ifnp, hash_ifn_head, next_bucket) {
  ------------------
  |  Branch (259:2): [True: 9.03k, False: 3]
  ------------------
  260|  9.03k|		if (sctp_ifnp->ifn_index == ifn_index &&
  ------------------
  |  Branch (260:7): [True: 3.01k, False: 6.02k]
  ------------------
  261|  3.01k|		    sctp_ifnp->ifn_p == ifn) {
  ------------------
  |  Branch (261:7): [True: 3.01k, False: 0]
  ------------------
  262|  3.01k|			break;
  263|  3.01k|		}
  264|  9.03k|	}
  265|  3.01k|	return (sctp_ifnp);
  266|  3.01k|}
sctp_find_vrf:
  270|   115k|{
  271|   115k|	struct sctp_vrflist *bucket;
  272|   115k|	struct sctp_vrf *liste;
  273|       |
  274|   115k|	bucket = &SCTP_BASE_INFO(sctp_vrfhash)[(vrf_id & SCTP_BASE_INFO(hashvrfmark))];
  ------------------
  |  |  587|   115k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	bucket = &SCTP_BASE_INFO(sctp_vrfhash)[(vrf_id & SCTP_BASE_INFO(hashvrfmark))];
  ------------------
  |  |  587|   115k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  275|   115k|	LIST_FOREACH(liste, bucket, next_vrf) {
  ------------------
  |  Branch (275:2): [True: 115k, False: 1]
  ------------------
  276|   115k|		if (vrf_id == liste->vrf_id) {
  ------------------
  |  Branch (276:7): [True: 115k, False: 0]
  ------------------
  277|   115k|			return (liste);
  278|   115k|		}
  279|   115k|	}
  280|      1|	return (NULL);
  281|   115k|}
sctp_free_ifa:
  313|  10.1k|{
  314|  10.1k|	if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&sctp_ifap->refcount)) {
  ------------------
  |  |  115|  10.1k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  ------------------
  |  |  |  |  103|  10.1k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  ------------------
  |  |  |  Branch (115:49): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
  315|       |		/* We zero'd the count */
  316|      0|		if (sctp_ifap->ifn_p) {
  ------------------
  |  Branch (316:7): [True: 0, False: 0]
  ------------------
  317|      0|			sctp_free_ifn(sctp_ifap->ifn_p);
  318|      0|		}
  319|      0|		SCTP_FREE(sctp_ifap, SCTP_M_IFA);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  320|      0|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_ifas), 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
  321|      0|	}
  322|  10.1k|}
sctp_add_addr_to_vrf:
  427|      3|{
  428|      3|	struct sctp_vrf *vrf;
  429|      3|	struct sctp_ifn *sctp_ifnp, *new_sctp_ifnp;
  430|      3|	struct sctp_ifa *sctp_ifap, *new_sctp_ifap;
  431|      3|	struct sctp_ifalist *hash_addr_head;
  432|      3|	struct sctp_ifnlist *hash_ifn_head;
  433|      3|	uint32_t hash_of_addr;
  434|       |
  435|       |#ifdef SCTP_DEBUG
  436|       |	SCTPDBG(SCTP_DEBUG_PCB4, "vrf_id 0x%x: adding address: ", vrf_id);
  437|       |	SCTPDBG_ADDR(SCTP_DEBUG_PCB4, addr);
  438|       |#endif
  439|      3|	SCTP_MALLOC(new_sctp_ifnp, struct sctp_ifn *,
  ------------------
  |  |  675|      3|	do {								\
  |  |  676|      3|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|      3|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|      3|    do {								\
  |  |  |  |  198|      3|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      6|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|      3|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|      3|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 3]
  |  |  ------------------
  ------------------
  440|      3|	            sizeof(struct sctp_ifn), SCTP_M_IFN);
  441|      3|	if (new_sctp_ifnp == NULL) {
  ------------------
  |  Branch (441:6): [True: 0, False: 3]
  ------------------
  442|      0|#ifdef INVARIANTS
  443|      0|		panic("No memory for IFN");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  444|      0|#endif
  445|      0|		return (NULL);
  446|      0|	}
  447|      3|	SCTP_MALLOC(new_sctp_ifap, struct sctp_ifa *, sizeof(struct sctp_ifa), SCTP_M_IFA);
  ------------------
  |  |  675|      3|	do {								\
  |  |  676|      3|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|      3|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|      3|    do {								\
  |  |  |  |  198|      3|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      6|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|      3|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|      3|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 3]
  |  |  ------------------
  ------------------
  448|      3|	if (new_sctp_ifap == NULL) {
  ------------------
  |  Branch (448:6): [True: 0, False: 3]
  ------------------
  449|      0|#ifdef INVARIANTS
  450|      0|		panic("No memory for IFA");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  451|      0|#endif
  452|      0|		SCTP_FREE(new_sctp_ifnp, SCTP_M_IFN);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  453|      0|		return (NULL);
  454|      0|	}
  455|       |
  456|      3|	SCTP_IPI_ADDR_WLOCK();
  ------------------
  |  |  601|      3|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      3|	do {                         \
  |  |  |  |  113|      3|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      3|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  457|      3|	sctp_ifnp = sctp_find_ifn(ifn, ifn_index);
  458|      3|	if (sctp_ifnp) {
  ------------------
  |  Branch (458:6): [True: 0, False: 3]
  ------------------
  459|      0|		vrf = sctp_ifnp->vrf;
  460|      3|	} else {
  461|      3|		vrf = sctp_find_vrf(vrf_id);
  462|      3|		if (vrf == NULL) {
  ------------------
  |  Branch (462:7): [True: 0, False: 3]
  ------------------
  463|      0|			vrf = sctp_allocate_vrf(vrf_id);
  464|      0|			if (vrf == NULL) {
  ------------------
  |  Branch (464:8): [True: 0, False: 0]
  ------------------
  465|      0|				SCTP_IPI_ADDR_WUNLOCK();
  ------------------
  |  |  603|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  466|      0|				SCTP_FREE(new_sctp_ifnp, SCTP_M_IFN);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  467|      0|				SCTP_FREE(new_sctp_ifap, SCTP_M_IFA);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  468|      0|				return (NULL);
  469|      0|			}
  470|      0|		}
  471|      3|	}
  472|      3|	if (sctp_ifnp == NULL) {
  ------------------
  |  Branch (472:6): [True: 3, False: 0]
  ------------------
  473|       |		/* build one and add it, can't hold lock
  474|       |		 * until after malloc done though.
  475|       |		 */
  476|      3|		sctp_ifnp = new_sctp_ifnp;
  477|      3|		new_sctp_ifnp = NULL;
  478|      3|		memset(sctp_ifnp, 0, sizeof(struct sctp_ifn));
  479|      3|		sctp_ifnp->ifn_index = ifn_index;
  480|      3|		sctp_ifnp->ifn_p = ifn;
  481|      3|		sctp_ifnp->ifn_type = ifn_type;
  482|      3|		sctp_ifnp->refcount = 0;
  483|      3|		sctp_ifnp->vrf = vrf;
  484|      3|		atomic_add_int(&vrf->refcount, 1);
  ------------------
  |  |   94|      3|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  485|      3|		sctp_ifnp->ifn_mtu = SCTP_GATHER_MTU_FROM_IFN_INFO(ifn, ifn_index);
  ------------------
  |  |  892|      3|#define SCTP_GATHER_MTU_FROM_IFN_INFO(ifn, ifn_index) sctp_userspace_get_mtu_from_ifn(ifn_index)
  ------------------
  486|      3|		if (if_name != NULL) {
  ------------------
  |  Branch (486:7): [True: 3, False: 0]
  ------------------
  487|      3|			SCTP_SNPRINTF(sctp_ifnp->ifn_name, SCTP_IFNAMSIZ, "%s", if_name);
  ------------------
  |  |  820|      3|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 3]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  488|      3|		} else {
  489|      0|			SCTP_SNPRINTF(sctp_ifnp->ifn_name, SCTP_IFNAMSIZ, "%s", "unknown");
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  490|      0|		}
  491|      3|		hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & SCTP_BASE_INFO(vrf_ifn_hashmark))];
  ------------------
  |  |  587|      3|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              		hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & SCTP_BASE_INFO(vrf_ifn_hashmark))];
  ------------------
  |  |  587|      3|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  492|      3|		LIST_INIT(&sctp_ifnp->ifalist);
  ------------------
  |  Branch (492:3): [Folded, False: 3]
  ------------------
  493|      3|		LIST_INSERT_HEAD(hash_ifn_head, sctp_ifnp, next_bucket);
  ------------------
  |  Branch (493:3): [True: 2, False: 1]
  |  Branch (493:3): [Folded, False: 3]
  ------------------
  494|      3|		LIST_INSERT_HEAD(&vrf->ifnlist, sctp_ifnp, next_ifn);
  ------------------
  |  Branch (494:3): [True: 2, False: 1]
  |  Branch (494:3): [Folded, False: 3]
  ------------------
  495|      3|		atomic_add_int(&SCTP_BASE_INFO(ipi_count_ifns), 1);
  ------------------
  |  |   94|      3|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  496|      3|	}
  497|      3|	sctp_ifap = sctp_find_ifa_by_addr(addr, vrf->vrf_id, SCTP_ADDR_LOCKED);
  ------------------
  |  |  965|      3|#define SCTP_ADDR_LOCKED 1
  ------------------
  498|      3|	if (sctp_ifap != NULL) {
  ------------------
  |  Branch (498:6): [True: 0, False: 3]
  ------------------
  499|       |		/* The address being added is already or still known. */
  500|      0|		if (sctp_ifap->ifn_p != NULL) {
  ------------------
  |  Branch (500:7): [True: 0, False: 0]
  ------------------
  501|      0|			if (sctp_ifap->ifn_p->ifn_index == ifn_index &&
  ------------------
  |  Branch (501:8): [True: 0, False: 0]
  ------------------
  502|      0|			    sctp_ifap->ifn_p->ifn_p == ifn) {
  ------------------
  |  Branch (502:8): [True: 0, False: 0]
  ------------------
  503|      0|				SCTPDBG(SCTP_DEBUG_PCB4,
  504|      0|				    "Using existing ifn %s (0x%x) for ifa %p\n",
  505|      0|				    sctp_ifap->ifn_p->ifn_name, ifn_index,
  506|      0|				    (void *)sctp_ifap);
  507|      0|				if (new_sctp_ifnp == NULL) {
  ------------------
  |  Branch (507:9): [True: 0, False: 0]
  ------------------
  508|       |					/* Remove the created one not used. */
  509|      0|					sctp_delete_ifn(sctp_ifnp);
  510|      0|				}
  511|      0|				if (sctp_ifap->localifa_flags & SCTP_BEING_DELETED) {
  ------------------
  |  |   90|      0|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (511:9): [True: 0, False: 0]
  ------------------
  512|       |					/* Switch back to active. */
  513|      0|					SCTPDBG(SCTP_DEBUG_PCB4,
  514|      0|					"Clearing deleted ifa flag\n");
  515|      0|					sctp_ifap->localifa_flags = SCTP_ADDR_VALID;
  ------------------
  |  |   89|      0|#define SCTP_ADDR_VALID         0x00000001	/* its up and active */
  ------------------
  516|      0|					sctp_ifap->ifn_p = sctp_ifnp;
  517|      0|					atomic_add_int(&sctp_ifap->ifn_p->refcount, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  518|      0|				}
  519|      0|			} else {
  520|       |				/*
  521|       |				 * The last IFN gets the address, remove the
  522|       |				 * old one.
  523|       |				 */
  524|      0|				SCTPDBG(SCTP_DEBUG_PCB4,
  525|      0|				    "Moving ifa %p from %s (0x%x) to %s (0x%x)\n",
  526|      0|				    (void *)sctp_ifap,
  527|      0|				    sctp_ifap->ifn_p->ifn_name,
  528|      0|				    sctp_ifap->ifn_p->ifn_index, if_name,
  529|      0|				    ifn_index);
  530|       |				/* remove the address from the old ifn */
  531|      0|				sctp_remove_ifa_from_ifn(sctp_ifap);
  532|       |				/* move the address over to the new ifn */
  533|      0|				sctp_add_ifa_to_ifn(sctp_ifnp, sctp_ifap);
  534|      0|			}
  535|      0|		} else {
  536|       |			/* Repair ifn_p, which was NULL... */
  537|      0|			sctp_ifap->localifa_flags = SCTP_ADDR_VALID;
  ------------------
  |  |   89|      0|#define SCTP_ADDR_VALID         0x00000001	/* its up and active */
  ------------------
  538|      0|			SCTPDBG(SCTP_DEBUG_PCB4,
  539|      0|			    "Repairing ifn %p for ifa %p\n",
  540|      0|			    (void *)sctp_ifnp, (void *)sctp_ifap);
  541|      0|			sctp_add_ifa_to_ifn(sctp_ifnp, sctp_ifap);
  542|      0|		}
  543|      0|		SCTP_IPI_ADDR_WUNLOCK();
  ------------------
  |  |  603|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  544|      0|		if (new_sctp_ifnp != NULL) {
  ------------------
  |  Branch (544:7): [True: 0, False: 0]
  ------------------
  545|      0|			SCTP_FREE(new_sctp_ifnp, SCTP_M_IFN);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  546|      0|		}
  547|      0|		SCTP_FREE(new_sctp_ifap, SCTP_M_IFA);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  548|      0|		return (sctp_ifap);
  549|      0|	}
  550|      3|	KASSERT(sctp_ifnp != NULL,
  ------------------
  |  |  112|      3|	do {                         \
  |  |  113|      3|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 3]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      3|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 3]
  |  |  ------------------
  ------------------
  551|      3|	    ("sctp_add_addr_to_vrf: sctp_ifnp == NULL"));
  552|      3|	KASSERT(sctp_ifap == NULL,
  ------------------
  |  |  112|      3|	do {                         \
  |  |  113|      3|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 3]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      3|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 3]
  |  |  ------------------
  ------------------
  553|      3|	    ("sctp_add_addr_to_vrf: sctp_ifap (%p) != NULL", sctp_ifap));
  554|      3|	sctp_ifap = new_sctp_ifap;
  555|      3|	memset(sctp_ifap, 0, sizeof(struct sctp_ifa));
  556|      3|	sctp_ifap->ifn_p = sctp_ifnp;
  557|      3|	atomic_add_int(&sctp_ifnp->refcount, 1);
  ------------------
  |  |   94|      3|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  558|      3|	sctp_ifap->vrf_id = vrf_id;
  559|      3|	sctp_ifap->ifa = ifa;
  560|       |#ifdef HAVE_SA_LEN
  561|       |	memcpy(&sctp_ifap->address, addr, addr->sa_len);
  562|       |#else
  563|      3|	switch (addr->sa_family) {
  564|      0|#ifdef INET
  565|      2|	case AF_INET:
  ------------------
  |  Branch (565:2): [True: 2, False: 1]
  ------------------
  566|      2|		memcpy(&sctp_ifap->address, addr, sizeof(struct sockaddr_in));
  567|      2|		break;
  568|      0|#endif
  569|      0|#ifdef INET6
  570|      0|	case AF_INET6:
  ------------------
  |  Branch (570:2): [True: 0, False: 3]
  ------------------
  571|      0|		memcpy(&sctp_ifap->address, addr, sizeof(struct sockaddr_in6));
  572|      0|		break;
  573|      0|#endif
  574|      0|#if defined(__Userspace__)
  575|      1|	case AF_CONN:
  ------------------
  |  | 1014|      1|#define AF_CONN 123
  ------------------
  |  Branch (575:2): [True: 1, False: 2]
  ------------------
  576|      1|		memcpy(&sctp_ifap->address, addr, sizeof(struct sockaddr_conn));
  577|      1|		break;
  578|      0|#endif
  579|      0|	default:
  ------------------
  |  Branch (579:2): [True: 0, False: 3]
  ------------------
  580|       |		/* TSNH */
  581|      0|		break;
  582|      3|	}
  583|      3|#endif
  584|      3|	sctp_ifap->localifa_flags = SCTP_ADDR_VALID | SCTP_ADDR_DEFER_USE;
  ------------------
  |  |   89|      3|#define SCTP_ADDR_VALID         0x00000001	/* its up and active */
  ------------------
              	sctp_ifap->localifa_flags = SCTP_ADDR_VALID | SCTP_ADDR_DEFER_USE;
  ------------------
  |  |   97|      3|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  585|      3|	sctp_ifap->flags = ifa_flags;
  586|       |	/* Set scope */
  587|      3|	switch (sctp_ifap->address.sa.sa_family) {
  588|      0|#ifdef INET
  589|      2|	case AF_INET:
  ------------------
  |  Branch (589:2): [True: 2, False: 1]
  ------------------
  590|      2|	{
  591|      2|		struct sockaddr_in *sin;
  592|       |
  593|      2|		sin = &sctp_ifap->address.sin;
  594|      2|		if (SCTP_IFN_IS_IFT_LOOP(sctp_ifap->ifn_p) ||
  ------------------
  |  |  656|      4|#define SCTP_IFN_IS_IFT_LOOP(ifn) (strncmp((ifn)->ifn_name, "lo", 2) == 0)
  |  |  ------------------
  |  |  |  Branch (656:35): [True: 1, False: 1]
  |  |  ------------------
  ------------------
  595|      1|		    (IN4_ISLOOPBACK_ADDRESS(&sin->sin_addr))) {
  ------------------
  |  |  977|      1|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  ------------------
  |  Branch (595:7): [True: 0, False: 1]
  ------------------
  596|      1|			sctp_ifap->src_is_loop = 1;
  597|      1|		}
  598|      2|		if ((IN4_ISPRIVATE_ADDRESS(&sin->sin_addr))) {
  ------------------
  |  |  969|      2|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 0, False: 2]
  |  |  ------------------
  |  |  970|      2|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 0, False: 2]
  |  |  ------------------
  |  |  971|      2|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  972|      2|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  973|      2|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 1, False: 1]
  |  |  ------------------
  |  |  974|      2|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
  599|      1|			sctp_ifap->src_is_priv = 1;
  600|      1|		}
  601|      2|		sctp_ifnp->num_v4++;
  602|      2|		if (new_sctp_ifnp == NULL)
  ------------------
  |  Branch (602:7): [True: 2, False: 0]
  ------------------
  603|      2|			sctp_ifnp->registered_af = AF_INET;
  604|      2|		break;
  605|      0|	}
  606|      0|#endif
  607|      0|#ifdef INET6
  608|      0|	case AF_INET6:
  ------------------
  |  Branch (608:2): [True: 0, False: 3]
  ------------------
  609|      0|	{
  610|       |		/* ok to use deprecated addresses? */
  611|      0|		struct sockaddr_in6 *sin6;
  612|       |
  613|      0|		sin6 = &sctp_ifap->address.sin6;
  614|      0|		if (SCTP_IFN_IS_IFT_LOOP(sctp_ifap->ifn_p) ||
  ------------------
  |  |  656|      0|#define SCTP_IFN_IS_IFT_LOOP(ifn) (strncmp((ifn)->ifn_name, "lo", 2) == 0)
  |  |  ------------------
  |  |  |  Branch (656:35): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  615|      0|		    (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr))) {
  ------------------
  |  Branch (615:7): [True: 0, False: 0]
  ------------------
  616|      0|			sctp_ifap->src_is_loop = 1;
  617|      0|		}
  618|      0|		if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
  ------------------
  |  Branch (618:7): [True: 0, False: 0]
  ------------------
  619|      0|			sctp_ifap->src_is_priv = 1;
  620|      0|		}
  621|      0|		sctp_ifnp->num_v6++;
  622|      0|		if (new_sctp_ifnp == NULL)
  ------------------
  |  Branch (622:7): [True: 0, False: 0]
  ------------------
  623|      0|			sctp_ifnp->registered_af = AF_INET6;
  624|      0|		break;
  625|      0|	}
  626|      0|#endif
  627|      0|#if defined(__Userspace__)
  628|      1|	case AF_CONN:
  ------------------
  |  | 1014|      1|#define AF_CONN 123
  ------------------
  |  Branch (628:2): [True: 1, False: 2]
  ------------------
  629|      1|		if (new_sctp_ifnp == NULL)
  ------------------
  |  Branch (629:7): [True: 1, False: 0]
  ------------------
  630|      1|			sctp_ifnp->registered_af = AF_CONN;
  ------------------
  |  | 1014|      1|#define AF_CONN 123
  ------------------
  631|      1|		break;
  632|      0|#endif
  633|      0|	default:
  ------------------
  |  Branch (633:2): [True: 0, False: 3]
  ------------------
  634|      0|		break;
  635|      3|	}
  636|      3|	hash_of_addr = sctp_get_ifa_hash_val(&sctp_ifap->address.sa);
  637|       |
  638|      3|	if ((sctp_ifap->src_is_priv == 0) &&
  ------------------
  |  Branch (638:6): [True: 2, False: 1]
  ------------------
  639|      2|	    (sctp_ifap->src_is_loop == 0)) {
  ------------------
  |  Branch (639:6): [True: 1, False: 1]
  ------------------
  640|      1|		sctp_ifap->src_is_glob = 1;
  641|      1|	}
  642|      3|	hash_addr_head = &vrf->vrf_addr_hash[(hash_of_addr & vrf->vrf_addr_hashmark)];
  643|      3|	LIST_INSERT_HEAD(hash_addr_head, sctp_ifap, next_bucket);
  ------------------
  |  Branch (643:2): [True: 0, False: 3]
  |  Branch (643:2): [Folded, False: 3]
  ------------------
  644|      3|	sctp_ifap->refcount = 1;
  645|      3|	LIST_INSERT_HEAD(&sctp_ifnp->ifalist, sctp_ifap, next_ifa);
  ------------------
  |  Branch (645:2): [True: 0, False: 3]
  |  Branch (645:2): [Folded, False: 3]
  ------------------
  646|      3|	sctp_ifnp->ifa_count++;
  647|      3|	vrf->total_ifa_count++;
  648|      3|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_ifas), 1);
  ------------------
  |  |   94|      3|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  649|      3|	SCTP_IPI_ADDR_WUNLOCK();
  ------------------
  |  |  603|      3|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      3|	do {                         \
  |  |  |  |  113|      3|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      3|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  650|      3|	if (new_sctp_ifnp != NULL) {
  ------------------
  |  Branch (650:6): [True: 0, False: 3]
  ------------------
  651|      0|		SCTP_FREE(new_sctp_ifnp, SCTP_M_IFN);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  652|      0|	}
  653|       |
  654|      3|	if (dynamic_add) {
  ------------------
  |  Branch (654:6): [True: 0, False: 3]
  ------------------
  655|       |		/* Bump up the refcount so that when the timer
  656|       |		 * completes it will drop back down.
  657|       |		 */
  658|      0|		struct sctp_laddr *wi;
  659|       |
  660|      0|		atomic_add_int(&sctp_ifap->refcount, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  661|      0|		wi = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_laddr), struct sctp_laddr);
  ------------------
  |  |  703|      0|        (type *)malloc(zone);
  ------------------
  662|      0|		if (wi == NULL) {
  ------------------
  |  Branch (662:7): [True: 0, False: 0]
  ------------------
  663|       |			/*
  664|       |			 * Gak, what can we do? We have lost an address
  665|       |			 * change can you say HOSED?
  666|       |			 */
  667|      0|			SCTPDBG(SCTP_DEBUG_PCB4, "Lost an address change?\n");
  668|       |			/* Opps, must decrement the count */
  669|      0|			sctp_del_addr_from_vrf(vrf_id, addr, ifn, ifn_index);
  670|      0|			return (NULL);
  671|      0|		}
  672|      0|		SCTP_INCR_LADDR_COUNT();
  ------------------
  |  |  664|      0|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_laddr), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
  673|      0|		memset(wi, 0, sizeof(*wi));
  674|      0|		(void)SCTP_GETTIME_TIMEVAL(&wi->start_time);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
  675|      0|		wi->ifa = sctp_ifap;
  676|      0|		wi->action = SCTP_ADD_IP_ADDRESS;
  ------------------
  |  |  430|      0|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  677|       |
  678|      0|		SCTP_WQ_ADDR_LOCK();
  ------------------
  |  |  277|      0|	KASSERT(pthread_mutex_lock(&SCTP_BASE_INFO(wq_addr_mtx)) == 0, ("%s:%d: wq_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  679|      0|		LIST_INSERT_HEAD(&SCTP_BASE_INFO(addr_wq), wi, sctp_nxt_addr);
  ------------------
  |  Branch (679:3): [True: 0, False: 0]
  |  Branch (679:3): [Folded, False: 0]
  ------------------
  680|      0|		sctp_timer_start(SCTP_TIMER_TYPE_ADDR_WQ,
  ------------------
  |  |  547|      0|#define SCTP_TIMER_TYPE_ADDR_WQ		16
  ------------------
  681|      0|				 (struct sctp_inpcb *)NULL,
  682|      0|				 (struct sctp_tcb *)NULL,
  683|      0|				 (struct sctp_nets *)NULL);
  684|      0|		SCTP_WQ_ADDR_UNLOCK();
  ------------------
  |  |  279|      0|	KASSERT(pthread_mutex_unlock(&SCTP_BASE_INFO(wq_addr_mtx)) == 0, ("%s:%d: wq_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  685|      3|	} else {
  686|       |		/* it's ready for use */
  687|      3|		sctp_ifap->localifa_flags &= ~SCTP_ADDR_DEFER_USE;
  ------------------
  |  |   97|      3|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  688|      3|	}
  689|      3|	return (sctp_ifap);
  690|      3|}
sctp_findassociation_ep_addr:
 1320|  18.2k|{
 1321|  18.2k|	struct sctpasochead *head;
 1322|  18.2k|	struct sctp_inpcb *inp;
 1323|  18.2k|	struct sctp_tcb *stcb = NULL;
 1324|  18.2k|	struct sctp_nets *net;
 1325|  18.2k|	uint16_t rport;
 1326|       |
 1327|  18.2k|	inp = *inp_p;
 1328|  18.2k|	switch (remote->sa_family) {
 1329|      0|#ifdef INET
 1330|      0|	case AF_INET:
  ------------------
  |  Branch (1330:2): [True: 0, False: 18.2k]
  ------------------
 1331|      0|		rport = (((struct sockaddr_in *)remote)->sin_port);
 1332|      0|		break;
 1333|      0|#endif
 1334|      0|#ifdef INET6
 1335|      0|	case AF_INET6:
  ------------------
  |  Branch (1335:2): [True: 0, False: 18.2k]
  ------------------
 1336|      0|		rport = (((struct sockaddr_in6 *)remote)->sin6_port);
 1337|      0|		break;
 1338|      0|#endif
 1339|      0|#if defined(__Userspace__)
 1340|  18.2k|	case AF_CONN:
  ------------------
  |  | 1014|  18.2k|#define AF_CONN 123
  ------------------
  |  Branch (1340:2): [True: 18.2k, False: 0]
  ------------------
 1341|  18.2k|		rport = (((struct sockaddr_conn *)remote)->sconn_port);
 1342|  18.2k|		break;
 1343|      0|#endif
 1344|      0|	default:
  ------------------
  |  Branch (1344:2): [True: 0, False: 18.2k]
  ------------------
 1345|      0|		return (NULL);
 1346|  18.2k|	}
 1347|  18.2k|	if (locked_tcb) {
  ------------------
  |  Branch (1347:6): [True: 8.11k, False: 10.1k]
  ------------------
 1348|       |		/*
 1349|       |		 * UN-lock so we can do proper locking here this occurs when
 1350|       |		 * called from load_addresses_from_init.
 1351|       |		 */
 1352|  8.11k|		atomic_add_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  8.11k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 1353|  8.11k|		SCTP_TCB_UNLOCK(locked_tcb);
  ------------------
  |  |  469|  8.11k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.11k|	do {                         \
  |  |  |  |  113|  8.11k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.11k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  8.11k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1354|  8.11k|	}
 1355|  18.2k|	SCTP_INP_INFO_RLOCK();
  ------------------
  |  |  295|  18.2k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  18.2k|	do {                         \
  |  |  |  |  113|  18.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 18.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  18.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 18.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1356|  18.2k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  18.2k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (1356:6): [True: 18.2k, False: 0]
  ------------------
 1357|  18.2k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (1357:6): [True: 0, False: 0]
  ------------------
 1358|       |		/*-
 1359|       |		 * Now either this guy is our listener or it's the
 1360|       |		 * connector. If it is the one that issued the connect, then
 1361|       |		 * it's only chance is to be the first TCB in the list. If
 1362|       |		 * it is the acceptor, then do the special_lookup to hash
 1363|       |		 * and find the real inp.
 1364|       |		 */
 1365|  18.2k|		if ((inp->sctp_socket) && SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|  18.2k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|  18.2k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  |  |  |  Branch (1152:32): [True: 0, False: 18.2k]
  |  |  ------------------
  ------------------
  |  Branch (1365:7): [True: 18.2k, False: 0]
  ------------------
 1366|       |			/* to is peer addr, from is my addr */
 1367|      0|#ifndef SCTP_MVRF
 1368|      0|			stcb = sctp_tcb_special_locate(inp_p, remote, local,
 1369|      0|			    netp, inp->def_vrf_id);
 1370|      0|			if ((stcb != NULL) && (locked_tcb == NULL)) {
  ------------------
  |  Branch (1370:8): [True: 0, False: 0]
  |  Branch (1370:26): [True: 0, False: 0]
  ------------------
 1371|       |				/* we have a locked tcb, lower refcount */
 1372|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1373|      0|			}
 1374|      0|			if ((locked_tcb != NULL) && (locked_tcb != stcb)) {
  ------------------
  |  Branch (1374:8): [True: 0, False: 0]
  |  Branch (1374:32): [True: 0, False: 0]
  ------------------
 1375|      0|				SCTP_INP_RLOCK(locked_tcb->sctp_ep);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1376|      0|				SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1377|      0|				atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1378|      0|				SCTP_INP_RUNLOCK(locked_tcb->sctp_ep);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1379|      0|			}
 1380|       |#else
 1381|       |			/*-
 1382|       |			 * MVRF is tricky, we must look in every VRF
 1383|       |			 * the endpoint has.
 1384|       |			 */
 1385|       |			int i;
 1386|       |
 1387|       |			for (i = 0; i < inp->num_vrfs; i++) {
 1388|       |				stcb = sctp_tcb_special_locate(inp_p, remote, local,
 1389|       |				                               netp, inp->m_vrf_ids[i]);
 1390|       |				if ((stcb != NULL) && (locked_tcb == NULL)) {
 1391|       |					/* we have a locked tcb, lower refcount */
 1392|       |					SCTP_INP_DECR_REF(inp);
 1393|       |					break;
 1394|       |				}
 1395|       |				if ((locked_tcb != NULL) && (locked_tcb != stcb)) {
 1396|       |					SCTP_INP_RLOCK(locked_tcb->sctp_ep);
 1397|       |					SCTP_TCB_LOCK(locked_tcb);
 1398|       |					atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
 1399|       |					SCTP_INP_RUNLOCK(locked_tcb->sctp_ep);
 1400|       |					break;
 1401|       |				}
 1402|       |			}
 1403|       |#endif
 1404|      0|			SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1405|      0|			return (stcb);
 1406|  18.2k|		} else {
 1407|  18.2k|			SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  18.2k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  18.2k|	do {                         \
  |  |  |  |  113|  18.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 18.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  18.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 18.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1408|  18.2k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  18.2k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1408:8): [True: 0, False: 18.2k]
  ------------------
 1409|      0|				goto null_return;
 1410|      0|			}
 1411|  18.2k|			stcb = LIST_FIRST(&inp->sctp_asoc_list);
 1412|  18.2k|			if (stcb == NULL) {
  ------------------
  |  Branch (1412:8): [True: 10.1k, False: 8.11k]
  ------------------
 1413|  10.1k|				goto null_return;
 1414|  10.1k|			}
 1415|  8.11k|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  8.11k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.11k|	do {                         \
  |  |  |  |  113|  8.11k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.11k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  8.11k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1416|       |
 1417|  8.11k|			if (stcb->rport != rport) {
  ------------------
  |  Branch (1417:8): [True: 0, False: 8.11k]
  ------------------
 1418|       |				/* remote port does not match. */
 1419|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1420|      0|				goto null_return;
 1421|      0|			}
 1422|  8.11k|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  8.11k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (1422:8): [True: 0, False: 8.11k]
  ------------------
 1423|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1424|      0|				goto null_return;
 1425|      0|			}
 1426|  8.11k|			if (local && !sctp_does_stcb_own_this_addr(stcb, local)) {
  ------------------
  |  Branch (1426:8): [True: 8.11k, False: 0]
  |  Branch (1426:17): [True: 0, False: 8.11k]
  ------------------
 1427|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1428|      0|				goto null_return;
 1429|      0|			}
 1430|       |			/* now look at the list of remote addresses */
 1431|  8.11k|			TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (1431:4): [True: 8.11k, False: 0]
  ------------------
 1432|  8.11k|#ifdef INVARIANTS
 1433|  8.11k|				if (net == (TAILQ_NEXT(net, sctp_next))) {
  ------------------
  |  Branch (1433:9): [True: 0, False: 8.11k]
  ------------------
 1434|      0|					panic("Corrupt net list");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1435|      0|				}
 1436|  8.11k|#endif
 1437|  8.11k|				if (net->ro._l_addr.sa.sa_family !=
  ------------------
  |  Branch (1437:9): [True: 0, False: 8.11k]
  ------------------
 1438|  8.11k|				    remote->sa_family) {
 1439|       |					/* not the same family */
 1440|      0|					continue;
 1441|      0|				}
 1442|  8.11k|				switch (remote->sa_family) {
 1443|      0|#ifdef INET
 1444|      0|				case AF_INET:
  ------------------
  |  Branch (1444:5): [True: 0, False: 8.11k]
  ------------------
 1445|      0|				{
 1446|      0|					struct sockaddr_in *sin, *rsin;
 1447|       |
 1448|      0|					sin = (struct sockaddr_in *)
 1449|      0|					    &net->ro._l_addr;
 1450|      0|					rsin = (struct sockaddr_in *)remote;
 1451|      0|					if (sin->sin_addr.s_addr ==
  ------------------
  |  Branch (1451:10): [True: 0, False: 0]
  ------------------
 1452|      0|					    rsin->sin_addr.s_addr) {
 1453|       |						/* found it */
 1454|      0|						if (netp != NULL) {
  ------------------
  |  Branch (1454:11): [True: 0, False: 0]
  ------------------
 1455|      0|							*netp = net;
 1456|      0|						}
 1457|      0|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1457:11): [True: 0, False: 0]
  ------------------
 1458|      0|							SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1459|      0|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1459:18): [True: 0, False: 0]
  ------------------
 1460|      0|							SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1461|      0|						}
 1462|      0|						if (locked_tcb) {
  ------------------
  |  Branch (1462:11): [True: 0, False: 0]
  ------------------
 1463|      0|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1464|      0|						}
 1465|       |
 1466|      0|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1467|      0|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1468|      0|						return (stcb);
 1469|      0|					}
 1470|      0|					break;
 1471|      0|				}
 1472|      0|#endif
 1473|      0|#ifdef INET6
 1474|      0|				case AF_INET6:
  ------------------
  |  Branch (1474:5): [True: 0, False: 8.11k]
  ------------------
 1475|      0|				{
 1476|      0|					struct sockaddr_in6 *sin6, *rsin6;
 1477|       |
 1478|      0|					sin6 = (struct sockaddr_in6 *)&net->ro._l_addr;
 1479|      0|					rsin6 = (struct sockaddr_in6 *)remote;
 1480|      0|					if (SCTP6_ARE_ADDR_EQUAL(sin6,
  ------------------
  |  Branch (1480:10): [True: 0, False: 0]
  ------------------
 1481|      0|					    rsin6)) {
 1482|       |						/* found it */
 1483|      0|						if (netp != NULL) {
  ------------------
  |  Branch (1483:11): [True: 0, False: 0]
  ------------------
 1484|      0|							*netp = net;
 1485|      0|						}
 1486|      0|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1486:11): [True: 0, False: 0]
  ------------------
 1487|      0|							SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1488|      0|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1488:18): [True: 0, False: 0]
  ------------------
 1489|      0|							SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1490|      0|						}
 1491|      0|						if (locked_tcb) {
  ------------------
  |  Branch (1491:11): [True: 0, False: 0]
  ------------------
 1492|      0|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1493|      0|						}
 1494|      0|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1495|      0|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1496|      0|						return (stcb);
 1497|      0|					}
 1498|      0|					break;
 1499|      0|				}
 1500|      0|#endif
 1501|      0|#if defined(__Userspace__)
 1502|  8.11k|				case AF_CONN:
  ------------------
  |  | 1014|  8.11k|#define AF_CONN 123
  ------------------
  |  Branch (1502:5): [True: 8.11k, False: 0]
  ------------------
 1503|  8.11k|				{
 1504|  8.11k|					struct sockaddr_conn *sconn, *rsconn;
 1505|       |
 1506|  8.11k|					sconn = (struct sockaddr_conn *)&net->ro._l_addr;
 1507|  8.11k|					rsconn = (struct sockaddr_conn *)remote;
 1508|  8.11k|					if (sconn->sconn_addr == rsconn->sconn_addr) {
  ------------------
  |  Branch (1508:10): [True: 8.11k, False: 0]
  ------------------
 1509|       |						/* found it */
 1510|  8.11k|						if (netp != NULL) {
  ------------------
  |  Branch (1510:11): [True: 8.11k, False: 0]
  ------------------
 1511|  8.11k|							*netp = net;
 1512|  8.11k|						}
 1513|  8.11k|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1513:11): [True: 0, False: 8.11k]
  ------------------
 1514|      0|							SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1515|  8.11k|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1515:18): [True: 0, False: 8.11k]
  ------------------
 1516|      0|							SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1517|      0|						}
 1518|  8.11k|						if (locked_tcb) {
  ------------------
  |  Branch (1518:11): [True: 8.11k, False: 0]
  ------------------
 1519|  8.11k|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  8.11k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1520|  8.11k|						}
 1521|  8.11k|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  8.11k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.11k|	do {                         \
  |  |  |  |  113|  8.11k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.11k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  8.11k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1522|  8.11k|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|  8.11k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.11k|	do {                         \
  |  |  |  |  113|  8.11k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.11k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  8.11k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1523|  8.11k|						return (stcb);
 1524|  8.11k|					}
 1525|      0|					break;
 1526|  8.11k|				}
 1527|      0|#endif
 1528|      0|				default:
  ------------------
  |  Branch (1528:5): [True: 0, False: 8.11k]
  ------------------
 1529|       |					/* TSNH */
 1530|      0|					break;
 1531|  8.11k|				}
 1532|  8.11k|			}
 1533|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1534|      0|		}
 1535|  18.2k|	} else {
 1536|      0|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1537|      0|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|      0|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1537:7): [True: 0, False: 0]
  ------------------
 1538|      0|			goto null_return;
 1539|      0|		}
 1540|      0|		head = &inp->sctp_tcbhash[SCTP_PCBHASH_ALLADDR(rport,
  ------------------
  |  |   56|      0|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 1541|      0|		                                               inp->sctp_hashmark)];
 1542|      0|		LIST_FOREACH(stcb, head, sctp_tcbhash) {
  ------------------
  |  Branch (1542:3): [True: 0, False: 0]
  ------------------
 1543|      0|			if (stcb->rport != rport) {
  ------------------
  |  Branch (1543:8): [True: 0, False: 0]
  ------------------
 1544|       |				/* remote port does not match */
 1545|      0|				continue;
 1546|      0|			}
 1547|      0|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1548|      0|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (1548:8): [True: 0, False: 0]
  ------------------
 1549|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1550|      0|				continue;
 1551|      0|			}
 1552|      0|			if (local && !sctp_does_stcb_own_this_addr(stcb, local)) {
  ------------------
  |  Branch (1552:8): [True: 0, False: 0]
  |  Branch (1552:17): [True: 0, False: 0]
  ------------------
 1553|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1554|      0|				continue;
 1555|      0|			}
 1556|       |			/* now look at the list of remote addresses */
 1557|      0|			TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (1557:4): [True: 0, False: 0]
  ------------------
 1558|      0|#ifdef INVARIANTS
 1559|      0|				if (net == (TAILQ_NEXT(net, sctp_next))) {
  ------------------
  |  Branch (1559:9): [True: 0, False: 0]
  ------------------
 1560|      0|					panic("Corrupt net list");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1561|      0|				}
 1562|      0|#endif
 1563|      0|				if (net->ro._l_addr.sa.sa_family !=
  ------------------
  |  Branch (1563:9): [True: 0, False: 0]
  ------------------
 1564|      0|				    remote->sa_family) {
 1565|       |					/* not the same family */
 1566|      0|					continue;
 1567|      0|				}
 1568|      0|				switch (remote->sa_family) {
 1569|      0|#ifdef INET
 1570|      0|				case AF_INET:
  ------------------
  |  Branch (1570:5): [True: 0, False: 0]
  ------------------
 1571|      0|				{
 1572|      0|					struct sockaddr_in *sin, *rsin;
 1573|       |
 1574|      0|					sin = (struct sockaddr_in *)
 1575|      0|					    &net->ro._l_addr;
 1576|      0|					rsin = (struct sockaddr_in *)remote;
 1577|      0|					if (sin->sin_addr.s_addr ==
  ------------------
  |  Branch (1577:10): [True: 0, False: 0]
  ------------------
 1578|      0|					    rsin->sin_addr.s_addr) {
 1579|       |						/* found it */
 1580|      0|						if (netp != NULL) {
  ------------------
  |  Branch (1580:11): [True: 0, False: 0]
  ------------------
 1581|      0|							*netp = net;
 1582|      0|						}
 1583|      0|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1583:11): [True: 0, False: 0]
  ------------------
 1584|      0|							SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1585|      0|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1585:18): [True: 0, False: 0]
  ------------------
 1586|      0|							SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1587|      0|						}
 1588|      0|						if (locked_tcb) {
  ------------------
  |  Branch (1588:11): [True: 0, False: 0]
  ------------------
 1589|      0|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1590|      0|						}
 1591|      0|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1592|      0|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1593|      0|						return (stcb);
 1594|      0|					}
 1595|      0|					break;
 1596|      0|				}
 1597|      0|#endif
 1598|      0|#ifdef INET6
 1599|      0|				case AF_INET6:
  ------------------
  |  Branch (1599:5): [True: 0, False: 0]
  ------------------
 1600|      0|				{
 1601|      0|					struct sockaddr_in6 *sin6, *rsin6;
 1602|       |
 1603|      0|					sin6 = (struct sockaddr_in6 *)
 1604|      0|					    &net->ro._l_addr;
 1605|      0|					rsin6 = (struct sockaddr_in6 *)remote;
 1606|      0|					if (SCTP6_ARE_ADDR_EQUAL(sin6,
  ------------------
  |  Branch (1606:10): [True: 0, False: 0]
  ------------------
 1607|      0|					    rsin6)) {
 1608|       |						/* found it */
 1609|      0|						if (netp != NULL) {
  ------------------
  |  Branch (1609:11): [True: 0, False: 0]
  ------------------
 1610|      0|							*netp = net;
 1611|      0|						}
 1612|      0|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1612:11): [True: 0, False: 0]
  ------------------
 1613|      0|							SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1614|      0|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1614:18): [True: 0, False: 0]
  ------------------
 1615|      0|							SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1616|      0|						}
 1617|      0|						if (locked_tcb) {
  ------------------
  |  Branch (1617:11): [True: 0, False: 0]
  ------------------
 1618|      0|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1619|      0|						}
 1620|      0|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1621|      0|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1622|      0|						return (stcb);
 1623|      0|					}
 1624|      0|					break;
 1625|      0|				}
 1626|      0|#endif
 1627|      0|#if defined(__Userspace__)
 1628|      0|				case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (1628:5): [True: 0, False: 0]
  ------------------
 1629|      0|				{
 1630|      0|					struct sockaddr_conn *sconn, *rsconn;
 1631|       |
 1632|      0|					sconn = (struct sockaddr_conn *)&net->ro._l_addr;
 1633|      0|					rsconn = (struct sockaddr_conn *)remote;
 1634|      0|					if (sconn->sconn_addr == rsconn->sconn_addr) {
  ------------------
  |  Branch (1634:10): [True: 0, False: 0]
  ------------------
 1635|       |						/* found it */
 1636|      0|						if (netp != NULL) {
  ------------------
  |  Branch (1636:11): [True: 0, False: 0]
  ------------------
 1637|      0|							*netp = net;
 1638|      0|						}
 1639|      0|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1639:11): [True: 0, False: 0]
  ------------------
 1640|      0|							SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 1641|      0|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1641:18): [True: 0, False: 0]
  ------------------
 1642|      0|							SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1643|      0|						}
 1644|      0|						if (locked_tcb) {
  ------------------
  |  Branch (1644:11): [True: 0, False: 0]
  ------------------
 1645|      0|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1646|      0|						}
 1647|      0|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1648|      0|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1649|      0|						return (stcb);
 1650|      0|					}
 1651|      0|					break;
 1652|      0|				}
 1653|      0|#endif
 1654|      0|				default:
  ------------------
  |  Branch (1654:5): [True: 0, False: 0]
  ------------------
 1655|       |					/* TSNH */
 1656|      0|					break;
 1657|      0|				}
 1658|      0|			}
 1659|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1660|      0|		}
 1661|      0|	}
 1662|  10.1k|null_return:
 1663|       |	/* clean up for returning null */
 1664|  10.1k|	if (locked_tcb) {
  ------------------
  |  Branch (1664:6): [True: 0, False: 10.1k]
  ------------------
 1665|      0|		SCTP_TCB_LOCK(locked_tcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1666|      0|		atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1667|      0|	}
 1668|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1669|  10.1k|	SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|  10.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1670|       |	/* not found */
 1671|  10.1k|	return (NULL);
 1672|  10.1k|}
sctp_findasoc_ep_asocid_locked:
 1680|  10.1k|{
 1681|       |	/*
 1682|       |	 * Use my the assoc_id to find a endpoint
 1683|       |	 */
 1684|  10.1k|	struct sctpasochead *head;
 1685|  10.1k|	struct sctp_tcb *stcb;
 1686|  10.1k|	uint32_t id;
 1687|       |
 1688|  10.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1688:6): [True: 0, False: 10.1k]
  ------------------
 1689|      0|		SCTP_PRINTF("TSNH ep_associd0\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 1690|      0|		return (NULL);
 1691|      0|	}
 1692|  10.1k|	id = (uint32_t)asoc_id;
 1693|  10.1k|	head = &inp->sctp_asocidhash[SCTP_PCBHASH_ASOC(id, inp->hashasocidmark)];
  ------------------
  |  |   57|  10.1k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 1694|  10.1k|	if (head == NULL) {
  ------------------
  |  Branch (1694:6): [True: 0, False: 10.1k]
  ------------------
 1695|       |		/* invalid id TSNH */
 1696|      0|		SCTP_PRINTF("TSNH ep_associd1\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 1697|      0|		return (NULL);
 1698|      0|	}
 1699|  10.1k|	LIST_FOREACH(stcb, head, sctp_tcbasocidhash) {
  ------------------
  |  Branch (1699:2): [True: 0, False: 10.1k]
  ------------------
 1700|      0|		if (stcb->asoc.assoc_id == id) {
  ------------------
  |  Branch (1700:7): [True: 0, False: 0]
  ------------------
 1701|      0|			if (inp != stcb->sctp_ep) {
  ------------------
  |  Branch (1701:8): [True: 0, False: 0]
  ------------------
 1702|       |				/*
 1703|       |				 * some other guy has the same id active (id
 1704|       |				 * collision ??).
 1705|       |				 */
 1706|      0|				SCTP_PRINTF("TSNH ep_associd2\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 1707|      0|				continue;
 1708|      0|			}
 1709|      0|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (1709:8): [True: 0, False: 0]
  ------------------
 1710|      0|				continue;
 1711|      0|			}
 1712|      0|			if (want_lock) {
  ------------------
  |  Branch (1712:8): [True: 0, False: 0]
  ------------------
 1713|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1714|      0|			}
 1715|      0|			return (stcb);
 1716|      0|		}
 1717|      0|	}
 1718|  10.1k|	return (NULL);
 1719|  10.1k|}
sctp_pcb_findep:
 2092|  10.1k|{
 2093|       |	/*
 2094|       |	 * First we check the hash table to see if someone has this port
 2095|       |	 * bound with just the port.
 2096|       |	 */
 2097|  10.1k|	struct sctp_inpcb *inp;
 2098|  10.1k|	struct sctppcbhead *head;
 2099|  10.1k|	int lport;
 2100|  10.1k|	unsigned int i;
 2101|  10.1k|#ifdef INET
 2102|  10.1k|	struct sockaddr_in *sin;
 2103|  10.1k|#endif
 2104|  10.1k|#ifdef INET6
 2105|  10.1k|	struct sockaddr_in6 *sin6;
 2106|  10.1k|#endif
 2107|  10.1k|#if defined(__Userspace__)
 2108|  10.1k|	struct sockaddr_conn *sconn;
 2109|  10.1k|#endif
 2110|       |
 2111|  10.1k|	switch (nam->sa_family) {
 2112|      0|#ifdef INET
 2113|      0|	case AF_INET:
  ------------------
  |  Branch (2113:2): [True: 0, False: 10.1k]
  ------------------
 2114|      0|		sin = (struct sockaddr_in *)nam;
 2115|      0|		lport = sin->sin_port;
 2116|      0|		break;
 2117|      0|#endif
 2118|      0|#ifdef INET6
 2119|      0|	case AF_INET6:
  ------------------
  |  Branch (2119:2): [True: 0, False: 10.1k]
  ------------------
 2120|      0|		sin6 = (struct sockaddr_in6 *)nam;
 2121|      0|		lport = sin6->sin6_port;
 2122|      0|		break;
 2123|      0|#endif
 2124|      0|#if defined(__Userspace__)
 2125|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (2125:2): [True: 10.1k, False: 0]
  ------------------
 2126|  10.1k|		sconn = (struct sockaddr_conn *)nam;
 2127|  10.1k|		lport = sconn->sconn_port;
 2128|  10.1k|		break;
 2129|      0|#endif
 2130|      0|	default:
  ------------------
  |  Branch (2130:2): [True: 0, False: 10.1k]
  ------------------
 2131|      0|		return (NULL);
 2132|  10.1k|	}
 2133|       |	/*
 2134|       |	 * I could cheat here and just cast to one of the types but we will
 2135|       |	 * do it right. It also provides the check against an Unsupported
 2136|       |	 * type too.
 2137|       |	 */
 2138|       |	/* Find the head of the ALLADDR chain */
 2139|  10.1k|	if (have_lock == 0) {
  ------------------
  |  Branch (2139:6): [True: 0, False: 10.1k]
  ------------------
 2140|      0|		SCTP_INP_INFO_RLOCK();
  ------------------
  |  |  295|      0|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2141|      0|	}
 2142|  10.1k|	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport,
  ------------------
  |  |  587|  10.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport,
  ------------------
  |  |   56|  10.1k|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 2143|  10.1k|	    SCTP_BASE_INFO(hashmark))];
 2144|  10.1k|	inp = sctp_endpoint_probe(nam, head, lport, vrf_id);
 2145|       |
 2146|       |	/*
 2147|       |	 * If the TCP model exists it could be that the main listening
 2148|       |	 * endpoint is gone but there still exists a connected socket for this
 2149|       |	 * guy. If so we can return the first one that we find. This may NOT
 2150|       |	 * be the correct one so the caller should be wary on the returned INP.
 2151|       |	 * Currently the only caller that sets find_tcp_pool is in bindx where
 2152|       |	 * we are verifying that a user CAN bind the address. He either
 2153|       |	 * has bound it already, or someone else has, or its open to bind,
 2154|       |	 * so this is good enough.
 2155|       |	 */
 2156|  10.1k|	if (inp == NULL && find_tcp_pool) {
  ------------------
  |  Branch (2156:6): [True: 10.1k, False: 0]
  |  Branch (2156:21): [True: 0, False: 10.1k]
  ------------------
 2157|      0|		for (i = 0; i < SCTP_BASE_INFO(hashtcpmark) + 1; i++) {
  ------------------
  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  |  Branch (2157:15): [True: 0, False: 0]
  ------------------
 2158|      0|			head = &SCTP_BASE_INFO(sctp_tcpephash)[i];
  ------------------
  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 2159|      0|			inp = sctp_endpoint_probe(nam, head, lport, vrf_id);
 2160|      0|			if (inp) {
  ------------------
  |  Branch (2160:8): [True: 0, False: 0]
  ------------------
 2161|      0|				break;
 2162|      0|			}
 2163|      0|		}
 2164|      0|	}
 2165|  10.1k|	if (inp) {
  ------------------
  |  Branch (2165:6): [True: 0, False: 10.1k]
  ------------------
 2166|      0|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 2167|      0|	}
 2168|  10.1k|	if (have_lock == 0) {
  ------------------
  |  Branch (2168:6): [True: 0, False: 10.1k]
  ------------------
 2169|      0|		SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2170|      0|	}
 2171|  10.1k|	return (inp);
 2172|  10.1k|}
sctp_findassociation_addr:
 2442|  23.7k|{
 2443|  23.7k|	struct sctp_tcb *stcb;
 2444|  23.7k|	struct sctp_inpcb *inp;
 2445|       |
 2446|  23.7k|	if (sh->v_tag) {
  ------------------
  |  Branch (2446:6): [True: 23.7k, False: 0]
  ------------------
 2447|       |		/* we only go down this path if vtag is non-zero */
 2448|  23.7k|		stcb = sctp_findassoc_by_vtag(src, dst, ntohl(sh->v_tag),
 2449|  23.7k|		                              inp_p, netp, sh->src_port, sh->dest_port, 0, vrf_id, 0);
 2450|  23.7k|		if (stcb) {
  ------------------
  |  Branch (2450:7): [True: 23.7k, False: 0]
  ------------------
 2451|  23.7k|			return (stcb);
 2452|  23.7k|		}
 2453|  23.7k|	}
 2454|       |
 2455|      0|	if (inp_p) {
  ------------------
  |  Branch (2455:6): [True: 0, False: 0]
  ------------------
 2456|      0|		stcb = sctp_findassociation_addr_sa(src, dst, inp_p, netp,
 2457|      0|		                                    1, vrf_id);
 2458|      0|		inp = *inp_p;
 2459|      0|	} else {
 2460|      0|		stcb = sctp_findassociation_addr_sa(src, dst, &inp, netp,
 2461|      0|		                                    1, vrf_id);
 2462|      0|	}
 2463|      0|	SCTPDBG(SCTP_DEBUG_PCB1, "stcb:%p inp:%p\n", (void *)stcb, (void *)inp);
 2464|      0|	if (stcb == NULL && inp) {
  ------------------
  |  Branch (2464:6): [True: 0, False: 0]
  |  Branch (2464:22): [True: 0, False: 0]
  ------------------
 2465|       |		/* Found a EP but not this address */
 2466|      0|		if ((ch->chunk_type == SCTP_INITIATION) ||
  ------------------
  |  |  455|      0|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (2466:7): [True: 0, False: 0]
  ------------------
 2467|      0|		    (ch->chunk_type == SCTP_INITIATION_ACK)) {
  ------------------
  |  |  456|      0|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (2467:7): [True: 0, False: 0]
  ------------------
 2468|       |			/*-
 2469|       |			 * special hook, we do NOT return linp or an
 2470|       |			 * association that is linked to an existing
 2471|       |			 * association that is under the TCP pool (i.e. no
 2472|       |			 * listener exists). The endpoint finding routine
 2473|       |			 * will always find a listener before examining the
 2474|       |			 * TCP pool.
 2475|       |			 */
 2476|      0|			if (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (2476:8): [True: 0, False: 0]
  ------------------
 2477|      0|				if (inp_p) {
  ------------------
  |  Branch (2477:9): [True: 0, False: 0]
  ------------------
 2478|      0|					*inp_p = NULL;
 2479|      0|				}
 2480|      0|				return (NULL);
 2481|      0|			}
 2482|      0|			stcb = sctp_findassociation_special_addr(m,
 2483|      0|			    offset, sh, &inp, netp, dst);
 2484|      0|			if (inp_p != NULL) {
  ------------------
  |  Branch (2484:8): [True: 0, False: 0]
  ------------------
 2485|      0|				*inp_p = inp;
 2486|      0|			}
 2487|      0|		}
 2488|      0|	}
 2489|      0|	SCTPDBG(SCTP_DEBUG_PCB1, "stcb is %p\n", (void *)stcb);
 2490|      0|	return (stcb);
 2491|      0|}
sctp_inpcb_alloc:
 2609|  10.1k|{
 2610|       |	/*
 2611|       |	 * we get called when a new endpoint starts up. We need to allocate
 2612|       |	 * the sctp_inpcb structure from the zone and init it. Mark it as
 2613|       |	 * unbound and find a port that we can use as an ephemeral with
 2614|       |	 * INADDR_ANY. If the user binds later no problem we can then add in
 2615|       |	 * the specific addresses. And setup the default parameters for the
 2616|       |	 * EP.
 2617|       |	 */
 2618|  10.1k|	int i, error;
 2619|  10.1k|	struct sctp_inpcb *inp;
 2620|  10.1k|	struct sctp_pcb *m;
 2621|  10.1k|	struct timeval time;
 2622|  10.1k|	sctp_sharedkey_t *null_key;
 2623|       |
 2624|  10.1k|	error = 0;
 2625|       |
 2626|  10.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  10.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2627|  10.1k|	inp = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_ep), struct sctp_inpcb);
  ------------------
  |  |  703|  10.1k|        (type *)malloc(zone);
  ------------------
 2628|  10.1k|	if (inp == NULL) {
  ------------------
  |  Branch (2628:6): [True: 0, False: 10.1k]
  ------------------
 2629|      0|		SCTP_PRINTF("Out of SCTP-INPCB structures - no resources\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 2630|      0|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2631|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOBUFS);
 2632|      0|		return (ENOBUFS);
 2633|      0|	}
 2634|       |	/* zap it */
 2635|  10.1k|	memset(inp, 0, sizeof(*inp));
 2636|       |
 2637|       |	/* bump generations */
 2638|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2639|       |	inp->ip_inp.inp.inp_state = INPCB_STATE_INUSE;
 2640|       |#endif
 2641|       |	/* setup socket pointers */
 2642|  10.1k|	inp->sctp_socket = so;
 2643|  10.1k|	inp->ip_inp.inp.inp_socket = so;
 2644|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2645|       |	inp->ip_inp.inp.inp_cred = crhold(so->so_cred);
 2646|       |#endif
 2647|  10.1k|#ifdef INET6
 2648|       |#if !defined(__Userspace__) && !defined(_WIN32)
 2649|       |	if (INP_SOCKAF(so) == AF_INET6) {
 2650|       |		if (MODULE_GLOBAL(ip6_auto_flowlabel)) {
 2651|       |			inp->ip_inp.inp.inp_flags |= IN6P_AUTOFLOWLABEL;
 2652|       |		}
 2653|       |		if (MODULE_GLOBAL(ip6_v6only)) {
 2654|       |			inp->ip_inp.inp.inp_flags |= IN6P_IPV6_V6ONLY;
 2655|       |		}
 2656|       |	}
 2657|       |#endif
 2658|  10.1k|#endif
 2659|  10.1k|	inp->sctp_associd_counter = 1;
 2660|  10.1k|	inp->partial_delivery_point = SCTP_SB_LIMIT_RCV(so) >> SCTP_PARTIAL_DELIVERY_SHIFT;
  ------------------
  |  |  983|  10.1k|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
              	inp->partial_delivery_point = SCTP_SB_LIMIT_RCV(so) >> SCTP_PARTIAL_DELIVERY_SHIFT;
  ------------------
  |  |  292|  10.1k|#define SCTP_PARTIAL_DELIVERY_SHIFT 1
  ------------------
 2661|  10.1k|	inp->sctp_frag_point = 0;
 2662|  10.1k|	inp->max_cwnd = 0;
 2663|  10.1k|	inp->sctp_cmt_on_off = SCTP_BASE_SYSCTL(sctp_cmt_on_off);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2664|  10.1k|	inp->ecn_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_ecn_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2665|  10.1k|	inp->prsctp_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_pr_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2666|  10.1k|	inp->auth_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_auth_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2667|  10.1k|	inp->asconf_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_asconf_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2668|  10.1k|	inp->reconfig_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_reconfig_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2669|  10.1k|	inp->nrsack_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_nrsack_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2670|  10.1k|	inp->pktdrop_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_pktdrop_enable);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2671|  10.1k|	inp->idata_supported = 0;
 2672|  10.1k|	inp->rcv_edmid = SCTP_EDMID_NONE;
  ------------------
  |  |  809|  10.1k|#define SCTP_EDMID_NONE             0
  ------------------
 2673|       |
 2674|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2675|       |	inp->fibnum = so->so_fibnum;
 2676|       |#else
 2677|  10.1k|	inp->fibnum = 0;
 2678|  10.1k|#endif
 2679|  10.1k|#if defined(__Userspace__)
 2680|  10.1k|	inp->ulp_info = NULL;
 2681|  10.1k|	inp->recv_callback = NULL;
 2682|  10.1k|	inp->send_callback = NULL;
 2683|  10.1k|	inp->send_sb_threshold = 0;
 2684|  10.1k|#endif
 2685|       |	/* init the small hash table we use to track asocid <-> tcb */
 2686|  10.1k|	inp->sctp_asocidhash = SCTP_HASH_INIT(SCTP_STACK_VTAG_HASH_SIZE, &inp->hashasocidmark);
  ------------------
  |  |  765|  10.1k|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|  10.1k|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 2687|  10.1k|	if (inp->sctp_asocidhash == NULL) {
  ------------------
  |  Branch (2687:6): [True: 0, False: 10.1k]
  ------------------
 2688|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2689|       |		crfree(inp->ip_inp.inp.inp_cred);
 2690|       |#endif
 2691|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
 2692|      0|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2693|      0|		return (ENOBUFS);
 2694|      0|	}
 2695|  10.1k|	SCTP_INCR_EP_COUNT();
  ------------------
  |  |  652|  10.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_ep), 1)
  |  |  ------------------
  |  |  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 2696|  10.1k|	inp->ip_inp.inp.inp_ip_ttl = MODULE_GLOBAL(ip_defttl);
  ------------------
  |  |   65|  10.1k|#define MODULE_GLOBAL(_B) (_B)
  ------------------
 2697|  10.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  10.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2698|       |
 2699|  10.1k|	so->so_pcb = (caddr_t)inp;
 2700|       |
 2701|  10.1k|	if (SCTP_SO_TYPE(so) == SOCK_SEQPACKET) {
  ------------------
  |  |  960|  10.1k|#define SCTP_SO_TYPE(so)	((so)->so_type)
  ------------------
  |  Branch (2701:6): [True: 0, False: 10.1k]
  ------------------
 2702|       |		/* UDP style socket */
 2703|      0|		inp->sctp_flags = (SCTP_PCB_FLAGS_UDPTYPE |
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
 2704|      0|		    SCTP_PCB_FLAGS_UNBOUND);
  ------------------
  |  |  532|      0|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 2705|       |		/* Be sure it is NON-BLOCKING IO for UDP */
 2706|       |		/* SCTP_SET_SO_NBIO(so); */
 2707|  10.1k|	} else if (SCTP_SO_TYPE(so) == SOCK_STREAM) {
  ------------------
  |  |  960|  10.1k|#define SCTP_SO_TYPE(so)	((so)->so_type)
  ------------------
  |  Branch (2707:13): [True: 10.1k, False: 0]
  ------------------
 2708|       |		/* TCP style socket */
 2709|  10.1k|		inp->sctp_flags = (SCTP_PCB_FLAGS_TCPTYPE |
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
 2710|  10.1k|		    SCTP_PCB_FLAGS_UNBOUND);
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 2711|       |		/* Be sure we have blocking IO by default */
 2712|  10.1k|		SOCK_LOCK(so);
  ------------------
  |  |  527|  10.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2713|  10.1k|		SCTP_CLEAR_SO_NBIO(so);
  ------------------
  |  |  958|  10.1k|#define SCTP_CLEAR_SO_NBIO(so)	((so)->so_state &= ~SS_NBIO)
  |  |  ------------------
  |  |  |  |  343|  10.1k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  |  |  ------------------
  ------------------
 2714|  10.1k|		SOCK_UNLOCK(so);
  ------------------
  |  |  529|  10.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2715|  10.1k|	} else {
 2716|       |		/*
 2717|       |		 * unsupported socket type (RAW, etc)- in case we missed it
 2718|       |		 * in protosw
 2719|       |		 */
 2720|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EOPNOTSUPP);
 2721|      0|		so->so_pcb = NULL;
 2722|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2723|       |		crfree(inp->ip_inp.inp.inp_cred);
 2724|       |#endif
 2725|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
 2726|      0|		return (EOPNOTSUPP);
 2727|      0|	}
 2728|  10.1k|	if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_1) {
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_1) {
  ------------------
  |  |  345|  10.1k|#define SCTP_FRAG_LEVEL_1    0x00000001
  ------------------
  |  Branch (2728:6): [True: 10.1k, False: 0]
  ------------------
 2729|  10.1k|		sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   50|  10.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 2730|  10.1k|		sctp_feature_off(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   51|  10.1k|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 2731|  10.1k|	} else if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_2) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	} else if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_2) {
  ------------------
  |  |  346|      0|#define SCTP_FRAG_LEVEL_2    0x00000002
  ------------------
  |  Branch (2731:13): [True: 0, False: 0]
  ------------------
 2732|      0|		sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 2733|      0|		sctp_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 2734|      0|	} else if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_0) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	} else if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_0) {
  ------------------
  |  |  344|      0|#define SCTP_FRAG_LEVEL_0    0x00000000
  ------------------
  |  Branch (2734:13): [True: 0, False: 0]
  ------------------
 2735|      0|		sctp_feature_off(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 2736|      0|		sctp_feature_off(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 2737|      0|	}
 2738|  10.1k|	inp->sctp_tcbhash = SCTP_HASH_INIT(SCTP_BASE_SYSCTL(sctp_pcbtblsize),
  ------------------
  |  |  765|  10.1k|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|  10.1k|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 2739|  10.1k|					   &inp->sctp_hashmark);
 2740|  10.1k|	if (inp->sctp_tcbhash == NULL) {
  ------------------
  |  Branch (2740:6): [True: 0, False: 10.1k]
  ------------------
 2741|      0|		SCTP_PRINTF("Out of SCTP-INPCB->hashinit - no resources\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 2742|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOBUFS);
 2743|      0|		so->so_pcb = NULL;
 2744|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2745|       |		crfree(inp->ip_inp.inp.inp_cred);
 2746|       |#endif
 2747|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
 2748|      0|		return (ENOBUFS);
 2749|      0|	}
 2750|       |#ifdef SCTP_MVRF
 2751|       |	inp->vrf_size = SCTP_DEFAULT_VRF_SIZE;
 2752|       |	SCTP_MALLOC(inp->m_vrf_ids, uint32_t *,
 2753|       |		    (sizeof(uint32_t) * inp->vrf_size), SCTP_M_MVRF);
 2754|       |	if (inp->m_vrf_ids == NULL) {
 2755|       |		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOBUFS);
 2756|       |		so->so_pcb = NULL;
 2757|       |		SCTP_HASH_FREE(inp->sctp_tcbhash, inp->sctp_hashmark);
 2758|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2759|       |		crfree(inp->ip_inp.inp.inp_cred);
 2760|       |#endif
 2761|       |		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
 2762|       |		return (ENOBUFS);
 2763|       |	}
 2764|       |	inp->m_vrf_ids[0] = vrf_id;
 2765|       |	inp->num_vrfs = 1;
 2766|       |#endif
 2767|  10.1k|	inp->def_vrf_id = vrf_id;
 2768|       |
 2769|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2770|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
 2771|       |	inp->ip_inp.inp.inpcb_mtx = lck_mtx_alloc_init(SCTP_BASE_INFO(sctbinfo).mtx_grp, SCTP_BASE_INFO(sctbinfo).mtx_attr);
 2772|       |	if (inp->ip_inp.inp.inpcb_mtx == NULL) {
 2773|       |		SCTP_PRINTF("in_pcballoc: can't alloc mutex! so=%p\n", (void *)so);
 2774|       |#ifdef SCTP_MVRF
 2775|       |		SCTP_FREE(inp->m_vrf_ids, SCTP_M_MVRF);
 2776|       |#endif
 2777|       |		SCTP_HASH_FREE(inp->sctp_tcbhash, inp->sctp_hashmark);
 2778|       |		so->so_pcb = NULL;
 2779|       |		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
 2780|       |		SCTP_UNLOCK_EXC(SCTP_BASE_INFO(sctbinfo).ipi_lock);
 2781|       |		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOMEM);
 2782|       |		return (ENOMEM);
 2783|       |	}
 2784|       |#elif defined(APPLE_LION) || defined(APPLE_MOUNTAINLION)
 2785|       |	lck_mtx_init(&inp->ip_inp.inp.inpcb_mtx, SCTP_BASE_INFO(sctbinfo).mtx_grp, SCTP_BASE_INFO(sctbinfo).mtx_attr);
 2786|       |#else
 2787|       |	lck_mtx_init(&inp->ip_inp.inp.inpcb_mtx, SCTP_BASE_INFO(sctbinfo).ipi_lock_grp, SCTP_BASE_INFO(sctbinfo).ipi_lock_attr);
 2788|       |#endif
 2789|       |#endif
 2790|  10.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  10.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2791|  10.1k|	SCTP_INP_LOCK_INIT(inp);
  ------------------
  |  |  359|  10.1k|	(void)pthread_mutex_init(&(_inp)->inp_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  10.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 2792|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2793|       |	rw_init_flags(&inp->ip_inp.inp.inp_lock, "sctpinp",
 2794|       |	    RW_RECURSE | RW_DUPOK);
 2795|       |#endif
 2796|  10.1k|	SCTP_INP_READ_LOCK_INIT(inp);
  ------------------
  |  |  341|  10.1k|	(void)pthread_mutex_init(&(_inp)->inp_rdata_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  10.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 2797|  10.1k|	SCTP_ASOC_CREATE_LOCK_INIT(inp);
  ------------------
  |  |  415|  10.1k|	(void)pthread_mutex_init(&(_inp)->inp_create_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  10.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 2798|       |	/* lock the new ep */
 2799|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2800|       |
 2801|       |	/* add it to the info area */
 2802|  10.1k|	LIST_INSERT_HEAD(&SCTP_BASE_INFO(listhead), inp, sctp_list);
  ------------------
  |  Branch (2802:2): [True: 2.18k, False: 7.99k]
  |  Branch (2802:2): [Folded, False: 10.1k]
  ------------------
 2803|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2804|       |	inp->ip_inp.inp.inp_pcbinfo = &SCTP_BASE_INFO(sctbinfo);
 2805|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD) || defined(APPLE_LION) || defined(APPLE_MOUNTAINLION)
 2806|       |	LIST_INSERT_HEAD(SCTP_BASE_INFO(sctbinfo).listhead, &inp->ip_inp.inp, inp_list);
 2807|       |#else
 2808|       |	LIST_INSERT_HEAD(SCTP_BASE_INFO(sctbinfo).ipi_listhead, &inp->ip_inp.inp, inp_list);
 2809|       |#endif
 2810|       |#endif
 2811|  10.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  10.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2812|       |
 2813|  10.1k|	TAILQ_INIT(&inp->read_queue);
  ------------------
  |  Branch (2813:2): [Folded, False: 10.1k]
  ------------------
 2814|  10.1k|	LIST_INIT(&inp->sctp_addr_list);
  ------------------
  |  Branch (2814:2): [Folded, False: 10.1k]
  ------------------
 2815|       |
 2816|  10.1k|	LIST_INIT(&inp->sctp_asoc_list);
  ------------------
  |  Branch (2816:2): [Folded, False: 10.1k]
  ------------------
 2817|       |
 2818|       |#ifdef SCTP_TRACK_FREED_ASOCS
 2819|       |	/* TEMP CODE */
 2820|       |	LIST_INIT(&inp->sctp_asoc_free_list);
 2821|       |#endif
 2822|       |	/* Init the timer structure for signature change */
 2823|  10.1k|	SCTP_OS_TIMER_INIT(&inp->sctp_ep.signature_change.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 2824|  10.1k|	inp->sctp_ep.signature_change.type = SCTP_TIMER_TYPE_NEWCOOKIE;
  ------------------
  |  |  538|  10.1k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 2825|       |
 2826|       |	/* now init the actual endpoint default data */
 2827|  10.1k|	m = &inp->sctp_ep;
 2828|       |
 2829|       |	/* setup the base timeout information */
 2830|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_SEND] = sctp_secs_to_ticks(SCTP_SEND_SEC);	/* needed ? */
  ------------------
  |  |  519|  10.1k|#define SCTP_TIMER_SEND 	2
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_SEND] = sctp_secs_to_ticks(SCTP_SEND_SEC);	/* needed ? */
  ------------------
  |  |  592|  10.1k|#define SCTP_SEND_SEC	1
  ------------------
 2831|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_INIT] = sctp_secs_to_ticks(SCTP_INIT_SEC);	/* needed ? */
  ------------------
  |  |  517|  10.1k|#define SCTP_TIMER_INIT 	0
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_INIT] = sctp_secs_to_ticks(SCTP_INIT_SEC);	/* needed ? */
  ------------------
  |  |  589|  10.1k|#define SCTP_INIT_SEC	1
  ------------------
 2832|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_RECV] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_delayed_sack_time_default));
  ------------------
  |  |  518|  10.1k|#define SCTP_TIMER_RECV 	1
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_RECV] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_delayed_sack_time_default));
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2833|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_heartbeat_interval_default));
  ------------------
  |  |  520|  10.1k|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_heartbeat_interval_default));
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2834|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_PMTU] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_pmtu_raise_time_default));
  ------------------
  |  |  521|  10.1k|#define SCTP_TIMER_PMTU		4
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_PMTU] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_pmtu_raise_time_default));
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2835|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_MAXSHUTDOWN] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_shutdown_guard_time_default));
  ------------------
  |  |  522|  10.1k|#define SCTP_TIMER_MAXSHUTDOWN	5
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_MAXSHUTDOWN] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_shutdown_guard_time_default));
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2836|  10.1k|	m->sctp_timeoutticks[SCTP_TIMER_SIGNATURE] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_secret_lifetime_default));
  ------------------
  |  |  523|  10.1k|#define SCTP_TIMER_SIGNATURE	6
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_SIGNATURE] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_secret_lifetime_default));
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2837|       |	/* all max/min max are in ms */
 2838|  10.1k|	m->sctp_maxrto = SCTP_BASE_SYSCTL(sctp_rto_max_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2839|  10.1k|	m->sctp_minrto = SCTP_BASE_SYSCTL(sctp_rto_min_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2840|  10.1k|	m->initial_rto = SCTP_BASE_SYSCTL(sctp_rto_initial_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2841|  10.1k|	m->initial_init_rto_max = SCTP_BASE_SYSCTL(sctp_init_rto_max_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2842|  10.1k|	m->sctp_sack_freq = SCTP_BASE_SYSCTL(sctp_sack_freq_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2843|  10.1k|	m->max_init_times = SCTP_BASE_SYSCTL(sctp_init_rtx_max_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2844|  10.1k|	m->max_send_times = SCTP_BASE_SYSCTL(sctp_assoc_rtx_max_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2845|  10.1k|	m->def_net_failure = SCTP_BASE_SYSCTL(sctp_path_rtx_max_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2846|  10.1k|	m->def_net_pf_threshold = SCTP_BASE_SYSCTL(sctp_path_pf_threshold);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2847|  10.1k|	m->sctp_sws_sender = SCTP_SWS_SENDER_DEF;
  ------------------
  |  |  674|  10.1k|#define SCTP_SWS_SENDER_DEF	1420
  ------------------
 2848|  10.1k|	m->sctp_sws_receiver = SCTP_SWS_RECEIVER_DEF;
  ------------------
  |  |  681|  10.1k|#define SCTP_SWS_RECEIVER_DEF	3000
  ------------------
 2849|  10.1k|	m->max_burst = SCTP_BASE_SYSCTL(sctp_max_burst_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2850|  10.1k|	m->fr_max_burst = SCTP_BASE_SYSCTL(sctp_fr_max_burst_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2851|       |
 2852|  10.1k|	m->sctp_default_cc_module = SCTP_BASE_SYSCTL(sctp_default_cc_module);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2853|  10.1k|	m->sctp_default_ss_module = SCTP_BASE_SYSCTL(sctp_default_ss_module);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2854|  10.1k|	m->max_open_streams_intome = SCTP_BASE_SYSCTL(sctp_nr_incoming_streams_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2855|       |	/* number of streams to pre-open on a association */
 2856|  10.1k|	m->pre_open_stream_count = SCTP_BASE_SYSCTL(sctp_nr_outgoing_streams_default);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2857|       |
 2858|  10.1k|	m->default_mtu = 0;
 2859|       |	/* Add adaptation cookie */
 2860|  10.1k|	m->adaptation_layer_indicator = 0;
 2861|  10.1k|	m->adaptation_layer_indicator_provided = 0;
 2862|       |
 2863|       |	/* seed random number generator */
 2864|  10.1k|	m->random_counter = 1;
 2865|  10.1k|	m->store_at = SCTP_SIGNATURE_SIZE;
  ------------------
  |  |  300|  10.1k|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|  10.1k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2866|  10.1k|	SCTP_READ_RANDOM(m->random_numbers, sizeof(m->random_numbers));
  ------------------
  |  |  986|  10.1k|#define SCTP_READ_RANDOM(buf, len)	read_random(buf, len)
  ------------------
 2867|  10.1k|	sctp_fill_random_store(m);
 2868|       |
 2869|       |	/* Minimum cookie size */
 2870|  10.1k|	m->size_of_a_cookie = (sizeof(struct sctp_init_msg) * 2) +
 2871|  10.1k|	    sizeof(struct sctp_state_cookie);
 2872|  10.1k|	m->size_of_a_cookie += SCTP_SIGNATURE_SIZE;
  ------------------
  |  |  300|  10.1k|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|  10.1k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2873|       |
 2874|       |	/* Setup the initial secret */
 2875|  10.1k|	(void)SCTP_GETTIME_TIMEVAL(&time);
  ------------------
  |  |  991|  10.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 2876|  10.1k|	m->time_of_secret_change = time.tv_sec;
 2877|       |
 2878|  91.5k|	for (i = 0; i < SCTP_NUMBER_OF_SECRETS; i++) {
  ------------------
  |  |  697|  91.5k|#define SCTP_NUMBER_OF_SECRETS	8	/* or 8 * 4 = 32 octets */
  ------------------
  |  Branch (2878:14): [True: 81.3k, False: 10.1k]
  ------------------
 2879|  81.3k|		m->secret_key[0][i] = sctp_select_initial_TSN(m);
 2880|  81.3k|	}
 2881|  10.1k|	sctp_timer_start(SCTP_TIMER_TYPE_NEWCOOKIE, inp, NULL, NULL);
  ------------------
  |  |  538|  10.1k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 2882|       |
 2883|       |	/* How long is a cookie good for ? */
 2884|  10.1k|	m->def_cookie_life = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_valid_cookie_life_default));
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2885|       |	/*
 2886|       |	 * Initialize authentication parameters
 2887|       |	 */
 2888|  10.1k|	m->local_hmacs = sctp_default_supported_hmaclist();
 2889|  10.1k|	m->local_auth_chunks = sctp_alloc_chunklist();
 2890|  10.1k|	if (inp->asconf_supported) {
  ------------------
  |  Branch (2890:6): [True: 10.1k, False: 0]
  ------------------
 2891|  10.1k|		sctp_auth_add_chunk(SCTP_ASCONF, m->local_auth_chunks);
  ------------------
  |  |  489|  10.1k|#define SCTP_ASCONF		0xc1
  ------------------
 2892|  10.1k|		sctp_auth_add_chunk(SCTP_ASCONF_ACK, m->local_auth_chunks);
  ------------------
  |  |  477|  10.1k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
 2893|  10.1k|	}
 2894|  10.1k|	m->default_dscp = 0;
 2895|  10.1k|#ifdef INET6
 2896|  10.1k|	m->default_flowlabel = 0;
 2897|  10.1k|#endif
 2898|  10.1k|	m->port = 0; /* encapsulation disabled by default */
 2899|  10.1k|	LIST_INIT(&m->shared_keys);
  ------------------
  |  Branch (2899:2): [Folded, False: 10.1k]
  ------------------
 2900|       |	/* add default NULL key as key id 0 */
 2901|  10.1k|	null_key = sctp_alloc_sharedkey();
 2902|  10.1k|	sctp_insert_sharedkey(&m->shared_keys, null_key);
 2903|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2904|       |#ifdef SCTP_LOG_CLOSING
 2905|       |	sctp_log_closing(inp, NULL, 12);
 2906|       |#endif
 2907|  10.1k|	return (error);
 2908|  10.1k|}
sctp_inpcb_bind_locked:
 3144|  10.1k|{
 3145|       |	/* bind a ep to a socket address */
 3146|  10.1k|	struct sctppcbhead *head;
 3147|  10.1k|	struct sctp_inpcb *inp_tmp;
 3148|       |#if (defined(__FreeBSD__) || defined(__APPLE__)) && !defined(__Userspace__)
 3149|       |	struct inpcb *ip_inp;
 3150|       |#endif
 3151|  10.1k|	int port_reuse_active = 0;
 3152|  10.1k|	int bindall;
 3153|       |#ifdef SCTP_MVRF
 3154|       |	int i;
 3155|       |#endif
 3156|  10.1k|	uint16_t lport;
 3157|  10.1k|	int error;
 3158|  10.1k|	uint32_t vrf_id;
 3159|       |
 3160|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3161|       |	KASSERT(td != NULL, ("%s: null thread", __func__));
 3162|       |
 3163|       |#endif
 3164|  10.1k|	error = 0;
 3165|  10.1k|	lport = 0;
 3166|  10.1k|	bindall = 1;
 3167|       |#if (defined(__FreeBSD__) || defined(__APPLE__)) && !defined(__Userspace__)
 3168|       |	ip_inp = &inp->ip_inp.inp;
 3169|       |#endif
 3170|       |
 3171|  10.1k|	SCTP_INP_INFO_WLOCK_ASSERT();
 3172|  10.1k|	SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  10.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3173|       |
 3174|       |#ifdef SCTP_DEBUG
 3175|       |	if (addr) {
 3176|       |		SCTPDBG(SCTP_DEBUG_PCB1, "Bind called port: %d\n",
 3177|       |			ntohs(((struct sockaddr_in *)addr)->sin_port));
 3178|       |		SCTPDBG(SCTP_DEBUG_PCB1, "Addr: ");
 3179|       |		SCTPDBG_ADDR(SCTP_DEBUG_PCB1, addr);
 3180|       |	}
 3181|       |#endif
 3182|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (3182:6): [True: 0, False: 10.1k]
  ------------------
 3183|      0|		error = EINVAL;
 3184|       |		/* already did a bind, subsequent binds NOT allowed ! */
 3185|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3186|      0|		goto out;
 3187|      0|	}
 3188|  10.1k|	if (addr != NULL) {
  ------------------
  |  Branch (3188:6): [True: 10.1k, False: 0]
  ------------------
 3189|  10.1k|		switch (addr->sa_family) {
 3190|      0|#ifdef INET
 3191|      0|		case AF_INET:
  ------------------
  |  Branch (3191:3): [True: 0, False: 10.1k]
  ------------------
 3192|      0|		{
 3193|      0|			struct sockaddr_in *sin;
 3194|       |
 3195|       |			/* IPV6_V6ONLY socket? */
 3196|      0|			if (SCTP_IPV6_V6ONLY(inp)) {
  ------------------
  |  |  954|      0|#define SCTP_IPV6_V6ONLY(sctp_inpcb)	((sctp_inpcb)->ip_inp.inp.inp_flags & IN6P_IPV6_V6ONLY)
  |  |  ------------------
  |  |  |  |  290|      0|#define IN6P_IPV6_V6ONLY	0x008000 /* restrict AF_INET6 socket for v6 */
  |  |  ------------------
  |  |  |  Branch (954:38): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3197|      0|				error = EINVAL;
 3198|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3199|      0|				goto out;
 3200|      0|			}
 3201|       |#ifdef HAVE_SA_LEN
 3202|       |			if (addr->sa_len != sizeof(*sin)) {
 3203|       |				error = EINVAL;
 3204|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3205|       |				goto out;
 3206|       |			}
 3207|       |#endif
 3208|       |
 3209|      0|			sin = (struct sockaddr_in *)addr;
 3210|      0|			lport = sin->sin_port;
 3211|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3212|       |			/*
 3213|       |			 * For LOOPBACK the prison_local_ip4() call will transmute the ip address
 3214|       |			 * to the proper value.
 3215|       |			 */
 3216|       |			if ((error = prison_local_ip4(td->td_ucred, &sin->sin_addr)) != 0) {
 3217|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3218|       |				goto out;
 3219|       |			}
 3220|       |#endif
 3221|      0|			if (sin->sin_addr.s_addr != INADDR_ANY) {
  ------------------
  |  Branch (3221:8): [True: 0, False: 0]
  ------------------
 3222|      0|				bindall = 0;
 3223|      0|			}
 3224|      0|			break;
 3225|      0|		}
 3226|      0|#endif
 3227|      0|#ifdef INET6
 3228|      0|		case AF_INET6:
  ------------------
  |  Branch (3228:3): [True: 0, False: 10.1k]
  ------------------
 3229|      0|		{
 3230|       |			/* Only for pure IPv6 Address. (No IPv4 Mapped!) */
 3231|      0|			struct sockaddr_in6 *sin6;
 3232|       |
 3233|      0|			sin6 = (struct sockaddr_in6 *)addr;
 3234|       |#ifdef HAVE_SA_LEN
 3235|       |			if (addr->sa_len != sizeof(*sin6)) {
 3236|       |				error = EINVAL;
 3237|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3238|       |				goto out;
 3239|       |			}
 3240|       |#endif
 3241|      0|			lport = sin6->sin6_port;
 3242|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3243|       |			/*
 3244|       |			 * For LOOPBACK the prison_local_ip6() call will transmute the ipv6 address
 3245|       |			 * to the proper value.
 3246|       |			 */
 3247|       |			if ((error = prison_local_ip6(td->td_ucred, &sin6->sin6_addr,
 3248|       |			    (SCTP_IPV6_V6ONLY(inp) != 0))) != 0) {
 3249|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3250|       |				goto out;
 3251|       |			}
 3252|       |#endif
 3253|      0|			if (!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (3253:8): [True: 0, False: 0]
  ------------------
 3254|      0|				bindall = 0;
 3255|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 3256|       |				/* KAME hack: embed scopeid */
 3257|       |#if defined(SCTP_KAME)
 3258|       |				if (sa6_embedscope(sin6, MODULE_GLOBAL(ip6_use_defzone)) != 0) {
 3259|       |					error = EINVAL;
 3260|       |					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3261|       |					goto out;
 3262|       |				}
 3263|       |#elif defined(__APPLE__) && !defined(__Userspace__)
 3264|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
 3265|       |				if (in6_embedscope(&sin6->sin6_addr, sin6, ip_inp, NULL) != 0) {
 3266|       |#else
 3267|       |				if (in6_embedscope(&sin6->sin6_addr, sin6, ip_inp, NULL, NULL) != 0) {
 3268|       |#endif
 3269|       |					error = EINVAL;
 3270|       |					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3271|       |					goto out;
 3272|       |				}
 3273|       |#elif defined(__FreeBSD__) && !defined(__Userspace__)
 3274|       |				error = scope6_check_id(sin6, MODULE_GLOBAL(ip6_use_defzone));
 3275|       |				if (error != 0) {
 3276|       |					error = EINVAL;
 3277|       |					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3278|       |					goto out;
 3279|       |				}
 3280|       |#else
 3281|       |				if (in6_embedscope(&sin6->sin6_addr, sin6) != 0) {
 3282|       |					error = EINVAL;
 3283|       |					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3284|       |					goto out;
 3285|       |				}
 3286|       |#endif
 3287|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 3288|      0|			}
 3289|      0|#ifndef SCOPEDROUTING
 3290|       |			/* this must be cleared for ifa_ifwithaddr() */
 3291|      0|			sin6->sin6_scope_id = 0;
 3292|      0|#endif /* SCOPEDROUTING */
 3293|      0|			break;
 3294|      0|		}
 3295|      0|#endif
 3296|      0|#if defined(__Userspace__)
 3297|  10.1k|		case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (3297:3): [True: 10.1k, False: 0]
  ------------------
 3298|  10.1k|		{
 3299|  10.1k|			struct sockaddr_conn *sconn;
 3300|       |
 3301|       |#ifdef HAVE_SA_LEN
 3302|       |			if (addr->sa_len != sizeof(struct sockaddr_conn)) {
 3303|       |				error = EINVAL;
 3304|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3305|       |				goto out;
 3306|       |			}
 3307|       |#endif
 3308|  10.1k|			sconn = (struct sockaddr_conn *)addr;
 3309|  10.1k|			lport = sconn->sconn_port;
 3310|  10.1k|			if (sconn->sconn_addr != NULL) {
  ------------------
  |  Branch (3310:8): [True: 10.1k, False: 0]
  ------------------
 3311|  10.1k|				bindall = 0;
 3312|  10.1k|			}
 3313|  10.1k|			break;
 3314|      0|		}
 3315|      0|#endif
 3316|      0|		default:
  ------------------
  |  Branch (3316:3): [True: 0, False: 10.1k]
  ------------------
 3317|      0|			error = EAFNOSUPPORT;
 3318|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3319|      0|			goto out;
 3320|  10.1k|		}
 3321|  10.1k|	}
 3322|       |	/* Setup a vrf_id to be the default for the non-bind-all case. */
 3323|  10.1k|	vrf_id = inp->def_vrf_id;
 3324|       |
 3325|  10.1k|	if (lport) {
  ------------------
  |  Branch (3325:6): [True: 10.1k, False: 0]
  ------------------
 3326|       |		/*
 3327|       |		 * Did the caller specify a port? if so we must see if an ep
 3328|       |		 * already has this one bound.
 3329|       |		 */
 3330|       |		/* got to be root to get at low ports */
 3331|  10.1k|#if !(defined(_WIN32) && !defined(__Userspace__))
 3332|  10.1k|		if (ntohs(lport) < IPPORT_RESERVED &&
  ------------------
  |  Branch (3332:7): [True: 0, False: 10.1k]
  ------------------
 3333|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3334|       |		    (error = priv_check(td, PRIV_NETINET_RESERVEDPORT)) != 0) {
 3335|       |#elif defined(__APPLE__) && !defined(__Userspace__)
 3336|       |		    (error = suser(p->p_ucred, &p->p_acflag)) != 0) {
 3337|       |#elif defined(__Userspace__)
 3338|       |			/* TODO ensure uid is 0, etc... */
 3339|      0|		    0) {
  ------------------
  |  Branch (3339:7): [Folded, False: 0]
  ------------------
 3340|       |#else
 3341|       |		    (error = suser(p, 0)) != 0) {
 3342|       |#endif
 3343|      0|			goto out;
 3344|      0|		}
 3345|  10.1k|#endif
 3346|  10.1k|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  10.1k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 3347|  10.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3348|  10.1k|		if (bindall) {
  ------------------
  |  Branch (3348:7): [True: 0, False: 10.1k]
  ------------------
 3349|       |#ifdef SCTP_MVRF
 3350|       |			for (i = 0; i < inp->num_vrfs; i++) {
 3351|       |				vrf_id = inp->m_vrf_ids[i];
 3352|       |#else
 3353|      0|				vrf_id = inp->def_vrf_id;
 3354|      0|#endif
 3355|      0|				inp_tmp = sctp_pcb_findep(addr, 0, 1, vrf_id);
 3356|      0|				if (inp_tmp != NULL) {
  ------------------
  |  Branch (3356:9): [True: 0, False: 0]
  ------------------
 3357|       |					/*
 3358|       |					 * lock guy returned and lower count
 3359|       |					 * note that we are not bound so
 3360|       |					 * inp_tmp should NEVER be inp. And
 3361|       |					 * it is this inp (inp_tmp) that gets
 3362|       |					 * the reference bump, so we must
 3363|       |					 * lower it.
 3364|       |					 */
 3365|      0|					SCTP_INP_DECR_REF(inp_tmp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3366|       |					/* unlock info */
 3367|      0|					if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_PORTREUSE)) &&
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3367:10): [True: 0, False: 0]
  ------------------
 3368|      0|					    (sctp_is_feature_on(inp_tmp, SCTP_PCB_FLAGS_PORTREUSE))) {
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3368:10): [True: 0, False: 0]
  ------------------
 3369|       |						/* Ok, must be one-2-one and allowing port re-use */
 3370|      0|						port_reuse_active = 1;
 3371|      0|						goto continue_anyway;
 3372|      0|					}
 3373|      0|					SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3374|      0|					SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3375|      0|					error = EADDRINUSE;
 3376|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3377|      0|					goto out;
 3378|      0|				}
 3379|       |#ifdef SCTP_MVRF
 3380|       |			}
 3381|       |#endif
 3382|  10.1k|		} else {
 3383|  10.1k|			inp_tmp = sctp_pcb_findep(addr, 0, 1, vrf_id);
 3384|  10.1k|			if (inp_tmp != NULL) {
  ------------------
  |  Branch (3384:8): [True: 0, False: 10.1k]
  ------------------
 3385|       |				/*
 3386|       |				 * lock guy returned and lower count note
 3387|       |				 * that we are not bound so inp_tmp should
 3388|       |				 * NEVER be inp. And it is this inp (inp_tmp)
 3389|       |				 * that gets the reference bump, so we must
 3390|       |				 * lower it.
 3391|       |				 */
 3392|      0|				SCTP_INP_DECR_REF(inp_tmp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3393|       |				/* unlock info */
 3394|      0|				if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_PORTREUSE)) &&
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3394:9): [True: 0, False: 0]
  ------------------
 3395|      0|				    (sctp_is_feature_on(inp_tmp, SCTP_PCB_FLAGS_PORTREUSE))) {
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3395:9): [True: 0, False: 0]
  ------------------
 3396|       |					/* Ok, must be one-2-one and allowing port re-use */
 3397|      0|					port_reuse_active = 1;
 3398|      0|					goto continue_anyway;
 3399|      0|				}
 3400|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3401|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3402|      0|				error = EADDRINUSE;
 3403|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3404|      0|				goto out;
 3405|      0|			}
 3406|  10.1k|		}
 3407|  10.1k|	continue_anyway:
 3408|  10.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3409|  10.1k|		SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  10.1k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  10.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3410|  10.1k|		if (bindall) {
  ------------------
  |  Branch (3410:7): [True: 0, False: 10.1k]
  ------------------
 3411|       |			/* verify that no lport is not used by a singleton */
 3412|      0|			if ((port_reuse_active == 0) &&
  ------------------
  |  Branch (3412:8): [True: 0, False: 0]
  ------------------
 3413|      0|			    (inp_tmp = sctp_isport_inuse(inp, lport, vrf_id))) {
  ------------------
  |  Branch (3413:8): [True: 0, False: 0]
  ------------------
 3414|       |				/* Sorry someone already has this one bound */
 3415|      0|				if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_PORTREUSE)) &&
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3415:9): [True: 0, False: 0]
  ------------------
 3416|      0|				    (sctp_is_feature_on(inp_tmp, SCTP_PCB_FLAGS_PORTREUSE))) {
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3416:9): [True: 0, False: 0]
  ------------------
 3417|      0|					port_reuse_active = 1;
 3418|      0|				} else {
 3419|      0|					error = EADDRINUSE;
 3420|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3421|      0|					goto out;
 3422|      0|				}
 3423|      0|			}
 3424|      0|		}
 3425|  10.1k|	} else {
 3426|      0|		uint16_t first, last, candidate;
 3427|      0|		uint16_t count;
 3428|       |
 3429|      0|#if defined(__Userspace__)
 3430|      0|		first = MODULE_GLOBAL(ipport_firstauto);
  ------------------
  |  |   65|      0|#define MODULE_GLOBAL(_B) (_B)
  ------------------
 3431|      0|		last = MODULE_GLOBAL(ipport_lastauto);
  ------------------
  |  |   65|      0|#define MODULE_GLOBAL(_B) (_B)
  ------------------
 3432|       |#elif defined(_WIN32)
 3433|       |		first = 1;
 3434|       |		last = 0xffff;
 3435|       |#elif defined(__FreeBSD__) || defined(__APPLE__)
 3436|       |		if (ip_inp->inp_flags & INP_HIGHPORT) {
 3437|       |			first = MODULE_GLOBAL(ipport_hifirstauto);
 3438|       |			last = MODULE_GLOBAL(ipport_hilastauto);
 3439|       |		} else if (ip_inp->inp_flags & INP_LOWPORT) {
 3440|       |#if defined(__FreeBSD__)
 3441|       |			if ((error = priv_check(td, PRIV_NETINET_RESERVEDPORT)) != 0) {
 3442|       |#else
 3443|       |			if ((error = suser(p->p_ucred, &p->p_acflag)) != 0) {
 3444|       |#endif
 3445|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3446|       |				goto out;
 3447|       |			}
 3448|       |			first = MODULE_GLOBAL(ipport_lowfirstauto);
 3449|       |			last = MODULE_GLOBAL(ipport_lowlastauto);
 3450|       |		} else {
 3451|       |			first = MODULE_GLOBAL(ipport_firstauto);
 3452|       |			last = MODULE_GLOBAL(ipport_lastauto);
 3453|       |		}
 3454|       |#endif
 3455|      0|		if (first > last) {
  ------------------
  |  Branch (3455:7): [True: 0, False: 0]
  ------------------
 3456|      0|			uint16_t temp;
 3457|       |
 3458|      0|			temp = first;
 3459|      0|			first = last;
 3460|      0|			last = temp;
 3461|      0|		}
 3462|      0|		count = last - first + 1; /* number of candidates */
 3463|      0|		candidate = first + sctp_select_initial_TSN(&inp->sctp_ep) % (count);
 3464|       |
 3465|      0|		for (;;) {
 3466|       |#ifdef SCTP_MVRF
 3467|       |			for (i = 0; i < inp->num_vrfs; i++) {
 3468|       |				if (sctp_isport_inuse(inp, htons(candidate), inp->m_vrf_ids[i]) != NULL) {
 3469|       |					break;
 3470|       |				}
 3471|       |			}
 3472|       |			if (i == inp->num_vrfs) {
 3473|       |				lport = htons(candidate);
 3474|       |				break;
 3475|       |			}
 3476|       |#else
 3477|      0|			if (sctp_isport_inuse(inp, htons(candidate), inp->def_vrf_id) == NULL) {
  ------------------
  |  Branch (3477:8): [True: 0, False: 0]
  ------------------
 3478|      0|				lport = htons(candidate);
 3479|      0|				break;
 3480|      0|			}
 3481|      0|#endif
 3482|      0|			if (--count == 0) {
  ------------------
  |  Branch (3482:8): [True: 0, False: 0]
  ------------------
 3483|      0|				error = EADDRINUSE;
 3484|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3485|      0|				goto out;
 3486|      0|			}
 3487|      0|			if (candidate == last)
  ------------------
  |  Branch (3487:8): [True: 0, False: 0]
  ------------------
 3488|      0|				candidate = first;
 3489|      0|			else
 3490|      0|				candidate = candidate + 1;
 3491|      0|		}
 3492|      0|	}
 3493|  10.1k|	if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE |
  ------------------
  |  |  546|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (3493:6): [True: 0, False: 10.1k]
  ------------------
 3494|  10.1k|			       SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
 3495|       |		/*
 3496|       |		 * this really should not happen. The guy did a non-blocking
 3497|       |		 * bind and then did a close at the same time.
 3498|       |		 */
 3499|      0|		error = EINVAL;
 3500|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3501|      0|		goto out;
 3502|      0|	}
 3503|       |	/* ok we look clear to give out this port, so lets setup the binding */
 3504|  10.1k|	if (bindall) {
  ------------------
  |  Branch (3504:6): [True: 0, False: 10.1k]
  ------------------
 3505|       |		/* binding to all addresses, so just set in the proper flags */
 3506|      0|		inp->sctp_flags |= SCTP_PCB_FLAGS_BOUNDALL;
  ------------------
  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
 3507|       |		/* set the automatic addr changes from kernel flag */
 3508|      0|		if (SCTP_BASE_SYSCTL(sctp_auto_asconf) == 0) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (3508:7): [True: 0, False: 0]
  ------------------
 3509|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_DO_ASCONF);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 3510|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_AUTO_ASCONF);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 3511|      0|		} else {
 3512|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_DO_ASCONF);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 3513|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_AUTO_ASCONF);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 3514|      0|		}
 3515|      0|		if (SCTP_BASE_SYSCTL(sctp_multiple_asconfs) == 0) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (3515:7): [True: 0, False: 0]
  ------------------
 3516|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_MULTIPLE_ASCONFS);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 3517|      0|		} else {
 3518|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_MULTIPLE_ASCONFS);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 3519|      0|		}
 3520|       |		/* set the automatic mobility_base from kernel
 3521|       |		   flag (by micchie)
 3522|       |		*/
 3523|      0|		if (SCTP_BASE_SYSCTL(sctp_mobility_base) == 0) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (3523:7): [True: 0, False: 0]
  ------------------
 3524|      0|			sctp_mobility_feature_off(inp, SCTP_MOBILITY_BASE);
  ------------------
  |  |   83|      0|#define sctp_mobility_feature_off(inp, feature) (inp->sctp_mobility_features &= ~feature)
  ------------------
 3525|      0|			sctp_mobility_feature_off(inp, SCTP_MOBILITY_PRIM_DELETED);
  ------------------
  |  |   83|      0|#define sctp_mobility_feature_off(inp, feature) (inp->sctp_mobility_features &= ~feature)
  ------------------
 3526|      0|		} else {
 3527|      0|			sctp_mobility_feature_on(inp, SCTP_MOBILITY_BASE);
  ------------------
  |  |   82|      0|#define sctp_mobility_feature_on(inp, feature)  (inp->sctp_mobility_features |= feature)
  ------------------
 3528|      0|			sctp_mobility_feature_off(inp, SCTP_MOBILITY_PRIM_DELETED);
  ------------------
  |  |   83|      0|#define sctp_mobility_feature_off(inp, feature) (inp->sctp_mobility_features &= ~feature)
  ------------------
 3529|      0|		}
 3530|       |		/* set the automatic mobility_fasthandoff from kernel
 3531|       |		   flag (by micchie)
 3532|       |		*/
 3533|      0|		if (SCTP_BASE_SYSCTL(sctp_mobility_fasthandoff) == 0) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (3533:7): [True: 0, False: 0]
  ------------------
 3534|      0|			sctp_mobility_feature_off(inp, SCTP_MOBILITY_FASTHANDOFF);
  ------------------
  |  |   83|      0|#define sctp_mobility_feature_off(inp, feature) (inp->sctp_mobility_features &= ~feature)
  ------------------
 3535|      0|			sctp_mobility_feature_off(inp, SCTP_MOBILITY_PRIM_DELETED);
  ------------------
  |  |   83|      0|#define sctp_mobility_feature_off(inp, feature) (inp->sctp_mobility_features &= ~feature)
  ------------------
 3536|      0|		} else {
 3537|      0|			sctp_mobility_feature_on(inp, SCTP_MOBILITY_FASTHANDOFF);
  ------------------
  |  |   82|      0|#define sctp_mobility_feature_on(inp, feature)  (inp->sctp_mobility_features |= feature)
  ------------------
 3538|      0|			sctp_mobility_feature_off(inp, SCTP_MOBILITY_PRIM_DELETED);
  ------------------
  |  |   83|      0|#define sctp_mobility_feature_off(inp, feature) (inp->sctp_mobility_features &= ~feature)
  ------------------
 3539|      0|		}
 3540|  10.1k|	} else {
 3541|       |		/*
 3542|       |		 * bind specific, make sure flags is off and add a new
 3543|       |		 * address structure to the sctp_addr_list inside the ep
 3544|       |		 * structure.
 3545|       |		 *
 3546|       |		 * We will need to allocate one and insert it at the head. The
 3547|       |		 * socketopt call can just insert new addresses in there as
 3548|       |		 * well. It will also have to do the embed scope kame hack
 3549|       |		 * too (before adding).
 3550|       |		 */
 3551|  10.1k|		struct sctp_ifa *ifa;
 3552|  10.1k|		union sctp_sockstore store;
 3553|       |
 3554|  10.1k|		memset(&store, 0, sizeof(store));
 3555|  10.1k|		switch (addr->sa_family) {
 3556|      0|#ifdef INET
 3557|      0|		case AF_INET:
  ------------------
  |  Branch (3557:3): [True: 0, False: 10.1k]
  ------------------
 3558|      0|			memcpy(&store.sin, addr, sizeof(struct sockaddr_in));
 3559|      0|			store.sin.sin_port = 0;
 3560|      0|			break;
 3561|      0|#endif
 3562|      0|#ifdef INET6
 3563|      0|		case AF_INET6:
  ------------------
  |  Branch (3563:3): [True: 0, False: 10.1k]
  ------------------
 3564|      0|			memcpy(&store.sin6, addr, sizeof(struct sockaddr_in6));
 3565|      0|			store.sin6.sin6_port = 0;
 3566|      0|			break;
 3567|      0|#endif
 3568|      0|#if defined(__Userspace__)
 3569|  10.1k|		case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (3569:3): [True: 10.1k, False: 0]
  ------------------
 3570|  10.1k|			memcpy(&store.sconn, addr, sizeof(struct sockaddr_conn));
 3571|  10.1k|			store.sconn.sconn_port = 0;
 3572|  10.1k|			break;
 3573|      0|#endif
 3574|      0|		default:
  ------------------
  |  Branch (3574:3): [True: 0, False: 10.1k]
  ------------------
 3575|      0|			break;
 3576|  10.1k|		}
 3577|       |		/*
 3578|       |		 * first find the interface with the bound address need to
 3579|       |		 * zero out the port to find the address! yuck! can't do
 3580|       |		 * this earlier since need port for sctp_pcb_findep()
 3581|       |		 */
 3582|  10.1k|		if (sctp_ifap != NULL) {
  ------------------
  |  Branch (3582:7): [True: 0, False: 10.1k]
  ------------------
 3583|      0|			ifa = sctp_ifap;
 3584|  10.1k|		} else {
 3585|       |			/* Note for BSD we hit here always other
 3586|       |			 * O/S's will pass things in via the
 3587|       |			 * sctp_ifap argument.
 3588|       |			 */
 3589|  10.1k|			ifa = sctp_find_ifa_by_addr(&store.sa,
 3590|  10.1k|						    vrf_id, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|  10.1k|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 3591|  10.1k|		}
 3592|  10.1k|		if (ifa == NULL) {
  ------------------
  |  Branch (3592:7): [True: 0, False: 10.1k]
  ------------------
 3593|      0|			error = EADDRNOTAVAIL;
 3594|       |			/* Can't find an interface with that address */
 3595|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3596|      0|			goto out;
 3597|      0|		}
 3598|  10.1k|#ifdef INET6
 3599|  10.1k|		if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (3599:7): [True: 0, False: 10.1k]
  ------------------
 3600|       |			/* GAK, more FIXME IFA lock? */
 3601|      0|			if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) {
  ------------------
  |  |   98|      0|#define SCTP_ADDR_IFA_UNUSEABLE 0x00000008
  ------------------
  |  Branch (3601:8): [True: 0, False: 0]
  ------------------
 3602|       |				/* Can't bind a non-existent addr. */
 3603|      0|				error = EINVAL;
 3604|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3605|      0|				goto out;
 3606|      0|			}
 3607|      0|		}
 3608|  10.1k|#endif
 3609|       |		/* we're not bound all */
 3610|  10.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_BOUNDALL;
  ------------------
  |  |  530|  10.1k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
 3611|       |		/* allow bindx() to send ASCONF's for binding changes */
 3612|  10.1k|		sctp_feature_on(inp, SCTP_PCB_FLAGS_DO_ASCONF);
  ------------------
  |  |   50|  10.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 3613|       |		/* clear automatic addr changes from kernel flag */
 3614|  10.1k|		sctp_feature_off(inp, SCTP_PCB_FLAGS_AUTO_ASCONF);
  ------------------
  |  |   51|  10.1k|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 3615|       |
 3616|       |		/* add this address to the endpoint list */
 3617|  10.1k|		error = sctp_insert_laddr(&inp->sctp_addr_list, ifa, 0);
 3618|  10.1k|		if (error != 0)
  ------------------
  |  Branch (3618:7): [True: 0, False: 10.1k]
  ------------------
 3619|      0|			goto out;
 3620|  10.1k|		inp->laddr_count++;
 3621|  10.1k|	}
 3622|       |	/* find the bucket */
 3623|  10.1k|	if (port_reuse_active) {
  ------------------
  |  Branch (3623:6): [True: 0, False: 10.1k]
  ------------------
 3624|       |		/* Put it into tcp 1-2-1 hash */
 3625|      0|		head = &SCTP_BASE_INFO(sctp_tcpephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashtcpmark))];
  ------------------
  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              		head = &SCTP_BASE_INFO(sctp_tcpephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashtcpmark))];
  ------------------
  |  |   56|      0|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 3626|      0|		inp->sctp_flags |= SCTP_PCB_FLAGS_IN_TCPPOOL;
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
 3627|  10.1k|	} else {
 3628|  10.1k|		head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashmark))];
  ------------------
  |  |  587|  10.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              		head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashmark))];
  ------------------
  |  |   56|  10.1k|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 3629|  10.1k|	}
 3630|       |	/* put it in the bucket */
 3631|  10.1k|	LIST_INSERT_HEAD(head, inp, sctp_hash);
  ------------------
  |  Branch (3631:2): [True: 0, False: 10.1k]
  |  Branch (3631:2): [Folded, False: 10.1k]
  ------------------
 3632|  10.1k|	SCTPDBG(SCTP_DEBUG_PCB1, "Main hash to bind at head:%p, bound port:%d - in tcp_pool=%d\n",
 3633|  10.1k|		(void *)head, ntohs(lport), port_reuse_active);
 3634|       |	/* set in the port */
 3635|  10.1k|	inp->sctp_lport = lport;
  ------------------
  |  |  426|  10.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  10.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  10.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3636|       |
 3637|       |	/* turn off just the unbound flag */
 3638|  10.1k|	KASSERT((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) != 0,
  ------------------
  |  |  112|  10.1k|	do {                         \
  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 3639|  10.1k|	    ("%s: inp %p is already bound", __func__, inp));
 3640|  10.1k|	inp->sctp_flags &= ~SCTP_PCB_FLAGS_UNBOUND;
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 3641|  10.1k|out:
 3642|  10.1k|	return (error);
 3643|  10.1k|}
sctp_inpcb_bind:
 3656|  10.1k|{
 3657|  10.1k|	struct sctp_inpcb *inp;
 3658|  10.1k|	int error;
 3659|       |
 3660|  10.1k|	inp = so->so_pcb;
 3661|  10.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  10.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3662|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3663|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3664|       |	error = sctp_inpcb_bind_locked(inp, addr, sctp_ifap, td);
 3665|       |#else
 3666|  10.1k|	error = sctp_inpcb_bind_locked(inp, addr, sctp_ifap, p);
 3667|  10.1k|#endif
 3668|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3669|  10.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  10.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3670|  10.1k|	return (error);
 3671|  10.1k|}
sctp_inpcb_free:
 3745|  10.2k|{
 3746|       |	/*
 3747|       |	 * Here we free a endpoint. We must find it (if it is in the Hash
 3748|       |	 * table) and remove it from there. Then we must also find it in the
 3749|       |	 * overall list and remove it from there. After all removals are
 3750|       |	 * complete then any timer has to be stopped. Then start the actual
 3751|       |	 * freeing. a) Any local lists. b) Any associations. c) The hash of
 3752|       |	 * all associations. d) finally the ep itself.
 3753|       |	 */
 3754|  10.2k|	struct sctp_tcb *stcb, *nstcb;
 3755|  10.2k|	struct sctp_laddr *laddr, *nladdr;
 3756|  10.2k|	struct inpcb *ip_pcb;
 3757|  10.2k|	struct socket *so;
 3758|  10.2k|	int being_refed = 0;
 3759|  10.2k|	struct sctp_queued_to_read *sq, *nsq;
 3760|       |#if !defined(__Userspace__)
 3761|       |#if !defined(__FreeBSD__)
 3762|       |	sctp_rtentry_t *rt;
 3763|       |#endif
 3764|       |#endif
 3765|  10.2k|	int cnt;
 3766|  10.2k|	sctp_sharedkey_t *shared_key, *nshared_key;
 3767|       |
 3768|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3769|       |	sctp_lock_assert(SCTP_INP_SO(inp));
 3770|       |#endif
 3771|       |#ifdef SCTP_LOG_CLOSING
 3772|       |	sctp_log_closing(inp, NULL, 0);
 3773|       |#endif
 3774|  10.2k|	SCTP_ITERATOR_LOCK();
  ------------------
  |  |  624|  10.2k|	KASSERT(pthread_mutex_lock(&sctp_it_ctl.it_mtx) == 0, ("%s:%d: it_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3775|       |	/* mark any iterators on the list or being processed */
 3776|  10.2k|	sctp_iterator_inp_being_freed(inp);
 3777|  10.2k|	SCTP_ITERATOR_UNLOCK();
  ------------------
  |  |  626|  10.2k|	KASSERT(pthread_mutex_unlock(&sctp_it_ctl.it_mtx) == 0, ("%s:%d: it_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3778|       |
 3779|  10.2k|	SCTP_ASOC_CREATE_LOCK(inp);
  ------------------
  |  |  427|  10.2k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3780|  10.2k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  10.2k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3781|  10.2k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.2k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3782|  10.2k|	so = inp->sctp_socket;
 3783|  10.2k|	KASSERT((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) != 0,
  ------------------
  |  |  112|  10.2k|	do {                         \
  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  ------------------
  ------------------
 3784|  10.2k|	    ("%s: inp %p still has socket", __func__, inp));
 3785|  10.2k|	KASSERT((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) == 0,
  ------------------
  |  |  112|  10.2k|	do {                         \
  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  ------------------
  ------------------
 3786|  10.2k|	    ("%s: double free of inp %p", __func__, inp));
 3787|  10.2k|	if (from == SCTP_CALLED_AFTER_CMPSET_OFCLOSE) {
  ------------------
  |  |  866|  10.2k|#define SCTP_CALLED_AFTER_CMPSET_OFCLOSE  1
  ------------------
  |  Branch (3787:6): [True: 10.1k, False: 47]
  ------------------
 3788|  10.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_CLOSE_IP;
  ------------------
  |  |  534|  10.1k|#define SCTP_PCB_FLAGS_CLOSE_IP         0x00040000
  ------------------
 3789|       |		/* socket is gone, so no more wakeups allowed */
 3790|  10.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_DONT_WAKE;
  ------------------
  |  |  541|  10.1k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  ------------------
 3791|  10.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAKEINPUT;
  ------------------
  |  |  543|  10.1k|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  ------------------
 3792|  10.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAKEOUTPUT;
  ------------------
  |  |  542|  10.1k|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  ------------------
 3793|  10.1k|	}
 3794|       |	/* First time through we have the socket lock, after that no more. */
 3795|  10.2k|	sctp_timer_stop(SCTP_TIMER_TYPE_NEWCOOKIE, inp, NULL, NULL,
  ------------------
  |  |  538|  10.2k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 3796|  10.2k|	                SCTP_FROM_SCTP_PCB + SCTP_LOC_1);
  ------------------
  |  |  756|  10.2k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              	                SCTP_FROM_SCTP_PCB + SCTP_LOC_1);
  ------------------
  |  |  769|  10.2k|#define SCTP_LOC_1  0x00000001
  ------------------
 3797|       |
 3798|  10.2k|	if (inp->control) {
  ------------------
  |  Branch (3798:6): [True: 0, False: 10.2k]
  ------------------
 3799|      0|		sctp_m_freem(inp->control);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3800|      0|		inp->control = NULL;
 3801|      0|	}
 3802|  10.2k|	if (inp->pkt) {
  ------------------
  |  Branch (3802:6): [True: 0, False: 10.2k]
  ------------------
 3803|      0|		sctp_m_freem(inp->pkt);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3804|      0|		inp->pkt = NULL;
 3805|      0|	}
 3806|  10.2k|	ip_pcb = &inp->ip_inp.inp;	/* we could just cast the main pointer
 3807|       |					 * here but I will be nice :> (i.e.
 3808|       |					 * ip_pcb = ep;) */
 3809|  10.2k|	if (immediate == SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE) {
  ------------------
  |  |  870|  10.2k|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
  |  Branch (3809:6): [True: 24, False: 10.1k]
  ------------------
 3810|     24|		int cnt_in_sd;
 3811|       |
 3812|     24|		cnt_in_sd = 0;
 3813|     24|		LIST_FOREACH_SAFE(stcb, &inp->sctp_asoc_list, sctp_tcblist, nstcb) {
  ------------------
  |  | 1135|     24|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|     24|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 0, False: 24]
  |  |  |  Branch (1136:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1137|     24|              (var) = (tvar))
  ------------------
 3814|      0|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3815|       |			/* Disconnect the socket please. */
 3816|      0|			stcb->sctp_socket = NULL;
 3817|      0|			SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_CLOSED_SOCKET);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
 3818|      0|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|      0|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3818:8): [True: 0, False: 0]
  ------------------
 3819|       |				/* Skip guys being freed */
 3820|      0|				cnt_in_sd++;
 3821|      0|				if (stcb->asoc.state & SCTP_STATE_IN_ACCEPT_QUEUE) {
  ------------------
  |  |  468|      0|#define SCTP_STATE_IN_ACCEPT_QUEUE      0x1000
  ------------------
  |  Branch (3821:9): [True: 0, False: 0]
  ------------------
 3822|       |					/*
 3823|       |					 * Special case - we did not start a kill
 3824|       |					 * timer on the asoc due to it was not
 3825|       |					 * closed. So go ahead and start it now.
 3826|       |					 */
 3827|      0|					SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_IN_ACCEPT_QUEUE);
  ------------------
  |  |  476|      0|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 3828|      0|					sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|      0|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 3829|      0|				}
 3830|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3831|      0|				continue;
 3832|      0|			}
 3833|      0|			if (((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if (((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|      0|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (3833:9): [True: 0, False: 0]
  ------------------
 3834|      0|			     (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			     (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) &&
  ------------------
  |  |  458|      0|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (3834:9): [True: 0, False: 0]
  ------------------
 3835|      0|			    (stcb->asoc.total_output_queue_size == 0)) {
  ------------------
  |  Branch (3835:8): [True: 0, False: 0]
  ------------------
 3836|       |				/* If we have data in queue, we don't want to just
 3837|       |				 * free since the app may have done, send()/close
 3838|       |				 * or connect/send/close. And it wants the data
 3839|       |				 * to get across first.
 3840|       |				 */
 3841|       |				/* Just abandon things in the front states */
 3842|      0|				if (sctp_free_assoc(inp, stcb, SCTP_PCBFREE_NOFORCE,
  ------------------
  |  |  809|      0|#define SCTP_PCBFREE_NOFORCE  1
  ------------------
  |  Branch (3842:9): [True: 0, False: 0]
  ------------------
 3843|      0|						   SCTP_FROM_SCTP_PCB + SCTP_LOC_2) == 0) {
  ------------------
  |  |  756|      0|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              						   SCTP_FROM_SCTP_PCB + SCTP_LOC_2) == 0) {
  ------------------
  |  |  770|      0|#define SCTP_LOC_2  0x00000002
  ------------------
 3844|      0|					cnt_in_sd++;
 3845|      0|				}
 3846|      0|				continue;
 3847|      0|			}
 3848|      0|			if ((stcb->asoc.size_on_reasm_queue > 0) ||
  ------------------
  |  Branch (3848:8): [True: 0, False: 0]
  ------------------
 3849|      0|			    (stcb->asoc.size_on_all_streams > 0) ||
  ------------------
  |  Branch (3849:8): [True: 0, False: 0]
  ------------------
 3850|      0|			    ((so != NULL) && (SCTP_SBAVAIL(&so->so_rcv) > 0))) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (3850:9): [True: 0, False: 0]
  |  Branch (3850:25): [True: 0, False: 0]
  ------------------
 3851|       |				/* Left with Data unread */
 3852|      0|				struct mbuf *op_err;
 3853|       |
 3854|      0|				op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
  ------------------
  |  |  377|      0|#define SCTP_CAUSE_USER_INITIATED_ABT	0x000c
  ------------------
 3855|      0|				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_3;
  ------------------
  |  |  756|      0|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_3;
  ------------------
  |  |  771|      0|#define SCTP_LOC_3  0x00000003
  ------------------
 3856|      0|				sctp_send_abort_tcb(stcb, op_err, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 3857|      0|				SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|      0|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3858|      0|				if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              				if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (3858:9): [True: 0, False: 0]
  ------------------
 3859|      0|				    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              				    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (3859:9): [True: 0, False: 0]
  ------------------
 3860|      0|					SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3861|      0|				}
 3862|      0|				if (sctp_free_assoc(inp, stcb,
  ------------------
  |  Branch (3862:9): [True: 0, False: 0]
  ------------------
 3863|      0|						    SCTP_PCBFREE_NOFORCE, SCTP_FROM_SCTP_PCB + SCTP_LOC_4) == 0) {
  ------------------
  |  |  809|      0|#define SCTP_PCBFREE_NOFORCE  1
  ------------------
              						    SCTP_PCBFREE_NOFORCE, SCTP_FROM_SCTP_PCB + SCTP_LOC_4) == 0) {
  ------------------
  |  |  756|      0|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              						    SCTP_PCBFREE_NOFORCE, SCTP_FROM_SCTP_PCB + SCTP_LOC_4) == 0) {
  ------------------
  |  |  772|      0|#define SCTP_LOC_4  0x00000004
  ------------------
 3864|      0|					cnt_in_sd++;
 3865|      0|				}
 3866|      0|				continue;
 3867|      0|			} else if (TAILQ_EMPTY(&stcb->asoc.send_queue) &&
  ------------------
  |  Branch (3867:15): [True: 0, False: 0]
  ------------------
 3868|      0|			           TAILQ_EMPTY(&stcb->asoc.sent_queue) &&
  ------------------
  |  Branch (3868:15): [True: 0, False: 0]
  ------------------
 3869|      0|			           (stcb->asoc.stream_queue_cnt == 0)) {
  ------------------
  |  Branch (3869:15): [True: 0, False: 0]
  ------------------
 3870|      0|				if ((*stcb->asoc.ss_functions.sctp_ss_is_user_msgs_incomplete)(stcb, &stcb->asoc)) {
  ------------------
  |  Branch (3870:9): [True: 0, False: 0]
  ------------------
 3871|      0|					goto abort_anyway;
 3872|      0|				}
 3873|      0|				if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              				if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  460|      0|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (3873:9): [True: 0, False: 0]
  ------------------
 3874|      0|				    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              				    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|      0|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (3874:9): [True: 0, False: 0]
  ------------------
 3875|      0|					struct sctp_nets *netp;
 3876|       |
 3877|       |					/*
 3878|       |					 * there is nothing queued to send,
 3879|       |					 * so I send shutdown
 3880|       |					 */
 3881|      0|					if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              					if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (3881:10): [True: 0, False: 0]
  ------------------
 3882|      0|					    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              					    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (3882:10): [True: 0, False: 0]
  ------------------
 3883|      0|						SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3884|      0|					}
 3885|      0|					SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT);
  ------------------
  |  |  474|      0|	sctp_set_state(_stcb, _state)
  ------------------
 3886|      0|					sctp_stop_timers_for_shutdown(stcb);
 3887|      0|					if (stcb->asoc.alternate) {
  ------------------
  |  Branch (3887:10): [True: 0, False: 0]
  ------------------
 3888|      0|						netp = stcb->asoc.alternate;
 3889|      0|					} else {
 3890|      0|						netp = stcb->asoc.primary_destination;
 3891|      0|					}
 3892|      0|					sctp_send_shutdown(stcb, netp);
 3893|      0|					sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, stcb->sctp_ep, stcb,
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
 3894|      0|					    netp);
 3895|      0|					sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD, stcb->sctp_ep, stcb, NULL);
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
 3896|      0|					sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SHUT_TMR, SCTP_SO_LOCKED);
  ------------------
  |  |  366|      0|#define SCTP_OUTPUT_FROM_SHUT_TMR       5
  ------------------
              					sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SHUT_TMR, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 3897|      0|				}
 3898|      0|			} else {
 3899|       |				/* mark into shutdown pending */
 3900|      0|				SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_SHUTDOWN_PENDING);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
 3901|      0|				if ((*stcb->asoc.ss_functions.sctp_ss_is_user_msgs_incomplete)(stcb, &stcb->asoc)) {
  ------------------
  |  Branch (3901:9): [True: 0, False: 0]
  ------------------
 3902|      0|					SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_PARTIAL_MSG_LEFT);
  ------------------
  |  |  478|      0|	sctp_add_substate(_stcb, _substate)
  ------------------
 3903|      0|				}
 3904|      0|				if (TAILQ_EMPTY(&stcb->asoc.send_queue) &&
  ------------------
  |  Branch (3904:9): [True: 0, False: 0]
  ------------------
 3905|      0|				    TAILQ_EMPTY(&stcb->asoc.sent_queue) &&
  ------------------
  |  Branch (3905:9): [True: 0, False: 0]
  ------------------
 3906|      0|				    (stcb->asoc.state & SCTP_STATE_PARTIAL_MSG_LEFT)) {
  ------------------
  |  |  466|      0|#define SCTP_STATE_PARTIAL_MSG_LEFT     0x0400
  ------------------
  |  Branch (3906:9): [True: 0, False: 0]
  ------------------
 3907|      0|					struct mbuf *op_err;
 3908|      0|				abort_anyway:
 3909|      0|					op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
  ------------------
  |  |  377|      0|#define SCTP_CAUSE_USER_INITIATED_ABT	0x000c
  ------------------
 3910|      0|					stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_5;
  ------------------
  |  |  756|      0|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              					stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_5;
  ------------------
  |  |  773|      0|#define SCTP_LOC_5  0x00000005
  ------------------
 3911|      0|					sctp_send_abort_tcb(stcb, op_err, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 3912|      0|					SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|      0|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3913|      0|					if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              					if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (3913:10): [True: 0, False: 0]
  ------------------
 3914|      0|					    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              					    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|      0|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (3914:10): [True: 0, False: 0]
  ------------------
 3915|      0|						SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3916|      0|					}
 3917|      0|					if (sctp_free_assoc(inp, stcb,
  ------------------
  |  Branch (3917:10): [True: 0, False: 0]
  ------------------
 3918|      0|							    SCTP_PCBFREE_NOFORCE,
  ------------------
  |  |  809|      0|#define SCTP_PCBFREE_NOFORCE  1
  ------------------
 3919|      0|							    SCTP_FROM_SCTP_PCB + SCTP_LOC_6) == 0) {
  ------------------
  |  |  756|      0|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              							    SCTP_FROM_SCTP_PCB + SCTP_LOC_6) == 0) {
  ------------------
  |  |  774|      0|#define SCTP_LOC_6  0x00000006
  ------------------
 3920|      0|						cnt_in_sd++;
 3921|      0|					}
 3922|      0|					continue;
 3923|      0|				} else {
 3924|      0|					sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CLOSING, SCTP_SO_LOCKED);
  ------------------
  |  |  377|      0|#define SCTP_OUTPUT_FROM_CLOSING        16
  ------------------
              					sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CLOSING, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 3925|      0|				}
 3926|      0|			}
 3927|      0|			cnt_in_sd++;
 3928|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3929|      0|		}
 3930|       |		/* now is there some left in our SHUTDOWN state? */
 3931|     24|		if (cnt_in_sd) {
  ------------------
  |  Branch (3931:7): [True: 0, False: 24]
  ------------------
 3932|       |#ifdef SCTP_LOG_CLOSING
 3933|       |			sctp_log_closing(inp, NULL, 2);
 3934|       |#endif
 3935|      0|			inp->sctp_socket = NULL;
 3936|      0|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3937|      0|			SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3938|      0|			SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3939|      0|			return;
 3940|      0|		}
 3941|     24|	}
 3942|  10.2k|	inp->sctp_socket = NULL;
 3943|  10.2k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
  ------------------
  |  |  532|  10.2k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (3943:6): [True: 10.1k, False: 47]
  ------------------
 3944|       |		/*
 3945|       |		 * ok, this guy has been bound. It's port is
 3946|       |		 * somewhere in the SCTP_BASE_INFO(hash table). Remove
 3947|       |		 * it!
 3948|       |		 */
 3949|  10.1k|		LIST_REMOVE(inp, sctp_hash);
  ------------------
  |  Branch (3949:3): [True: 0, False: 10.1k]
  |  Branch (3949:3): [Folded, False: 10.1k]
  ------------------
 3950|  10.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_UNBOUND;
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 3951|  10.1k|	}
 3952|       |
 3953|       |	/* If there is a timer running to kill us,
 3954|       |	 * forget it, since it may have a contest
 3955|       |	 * on the INP lock.. which would cause us
 3956|       |	 * to die ...
 3957|       |	 */
 3958|  10.2k|	cnt = 0;
 3959|  10.2k|	LIST_FOREACH_SAFE(stcb, &inp->sctp_asoc_list, sctp_tcblist, nstcb) {
  ------------------
  |  | 1135|  10.2k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  18.7k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 8.52k, False: 10.2k]
  |  |  |  Branch (1136:24): [True: 8.52k, False: 0]
  |  |  ------------------
  |  | 1137|  10.2k|              (var) = (tvar))
  ------------------
 3960|  8.52k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  8.52k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.52k|	do {                         \
  |  |  |  |  113|  8.52k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.52k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  8.52k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.52k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3961|  8.52k|		if (immediate != SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE) {
  ------------------
  |  |  870|  8.52k|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
  |  Branch (3961:7): [True: 8.52k, False: 0]
  ------------------
 3962|       |			/* Disconnect the socket please */
 3963|  8.52k|			stcb->sctp_socket = NULL;
 3964|  8.52k|			SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_CLOSED_SOCKET);
  ------------------
  |  |  478|  8.52k|	sctp_add_substate(_stcb, _substate)
  ------------------
 3965|  8.52k|		}
 3966|  8.52k|		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  8.52k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3966:7): [True: 18, False: 8.50k]
  ------------------
 3967|     18|			if (stcb->asoc.state & SCTP_STATE_IN_ACCEPT_QUEUE) {
  ------------------
  |  |  468|     18|#define SCTP_STATE_IN_ACCEPT_QUEUE      0x1000
  ------------------
  |  Branch (3967:8): [True: 0, False: 18]
  ------------------
 3968|      0|				SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_IN_ACCEPT_QUEUE);
  ------------------
  |  |  476|      0|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 3969|      0|				sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|      0|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 3970|      0|			}
 3971|     18|			cnt++;
 3972|     18|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     18|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     18|	do {                         \
  |  |  |  |  113|     18|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 18]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     18|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 18]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3973|     18|			continue;
 3974|     18|		}
 3975|       |		/* Free associations that are NOT killing us */
 3976|  8.50k|		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT) &&
  ------------------
  |  |  472|  8.50k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  8.50k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT) &&
  ------------------
  |  |  457|  8.50k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (3976:7): [True: 6.60k, False: 1.90k]
  ------------------
 3977|  6.60k|		    ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0)) {
  ------------------
  |  |  465|  6.60k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3977:7): [True: 6.60k, False: 0]
  ------------------
 3978|  6.60k|			struct mbuf *op_err;
 3979|       |
 3980|  6.60k|			op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
  ------------------
  |  |  377|  6.60k|#define SCTP_CAUSE_USER_INITIATED_ABT	0x000c
  ------------------
 3981|  6.60k|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_7;
  ------------------
  |  |  756|  6.60k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_7;
  ------------------
  |  |  775|  6.60k|#define SCTP_LOC_7  0x00000007
  ------------------
 3982|  6.60k|			sctp_send_abort_tcb(stcb, op_err, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  6.60k|#define SCTP_SO_LOCKED		1
  ------------------
 3983|  6.60k|			SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|  6.60k|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  6.60k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  6.60k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  6.60k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3984|  6.60k|		} else if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.90k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3984:14): [True: 0, False: 1.90k]
  ------------------
 3985|      0|			cnt++;
 3986|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3987|      0|			continue;
 3988|      0|		}
 3989|  8.50k|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|  8.50k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  8.50k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|  8.50k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (3989:7): [True: 4.07k, False: 4.42k]
  ------------------
 3990|  4.42k|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|  4.42k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  4.42k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|  4.42k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (3990:7): [True: 46, False: 4.38k]
  ------------------
 3991|  4.12k|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|  4.12k|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|  4.12k|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|  4.12k|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|  4.12k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3992|  4.12k|		}
 3993|  8.50k|		if (sctp_free_assoc(inp, stcb, SCTP_PCBFREE_FORCE,
  ------------------
  |  |  810|  8.50k|#define SCTP_PCBFREE_FORCE    2
  ------------------
  |  Branch (3993:7): [True: 6, False: 8.50k]
  ------------------
 3994|  8.50k|		                    SCTP_FROM_SCTP_PCB + SCTP_LOC_8) == 0) {
  ------------------
  |  |  756|  8.50k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              		                    SCTP_FROM_SCTP_PCB + SCTP_LOC_8) == 0) {
  ------------------
  |  |  776|  8.50k|#define SCTP_LOC_8  0x00000008
  ------------------
 3995|      6|			cnt++;
 3996|      6|		}
 3997|  8.50k|	}
 3998|  10.2k|	if (cnt) {
  ------------------
  |  Branch (3998:6): [True: 24, False: 10.1k]
  ------------------
 3999|       |		/* Ok we have someone out there that will kill us */
 4000|       |#ifdef SCTP_LOG_CLOSING
 4001|       |		sctp_log_closing(inp, NULL, 3);
 4002|       |#endif
 4003|     24|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|     24|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4004|     24|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|     24|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4005|     24|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|     24|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4006|     24|		return;
 4007|     24|	}
 4008|  10.1k|	if (SCTP_INP_LOCK_CONTENDED(inp))
  ------------------
  |  |  496|  10.1k|#define SCTP_INP_LOCK_CONTENDED(_inp) (0) /* Don't know if this is possible */
  |  |  ------------------
  |  |  |  Branch (496:39): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 4009|      0|		being_refed++;
 4010|  10.1k|	if (SCTP_INP_READ_CONTENDED(inp))
  ------------------
  |  |  497|  10.1k|#define SCTP_INP_READ_CONTENDED(_inp) (0) /* Don't know if this is possible */
  |  |  ------------------
  |  |  |  Branch (497:39): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 4011|      0|		being_refed++;
 4012|  10.1k|	if (SCTP_ASOC_CREATE_LOCK_CONTENDED(inp))
  ------------------
  |  |  498|  10.1k|#define SCTP_ASOC_CREATE_LOCK_CONTENDED(_inp) (0) /* Don't know if this is possible */
  |  |  ------------------
  |  |  |  Branch (498:47): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 4013|      0|		being_refed++;
 4014|       |	/* NOTE: 0 refcount also means no timers are referencing us. */
 4015|  10.1k|	if ((inp->refcount) ||
  ------------------
  |  Branch (4015:6): [True: 24, False: 10.1k]
  ------------------
 4016|  10.1k|	    (being_refed) ||
  ------------------
  |  Branch (4016:6): [True: 0, False: 10.1k]
  ------------------
 4017|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_CLOSE_IP)) {
  ------------------
  |  |  534|  10.1k|#define SCTP_PCB_FLAGS_CLOSE_IP         0x00040000
  ------------------
  |  Branch (4017:6): [True: 0, False: 10.1k]
  ------------------
 4018|       |#ifdef SCTP_LOG_CLOSING
 4019|       |		sctp_log_closing(inp, NULL, 4);
 4020|       |#endif
 4021|     24|		sctp_timer_start(SCTP_TIMER_TYPE_INPKILL, inp, NULL, NULL);
  ------------------
  |  |  545|     24|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
 4022|     24|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|     24|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4023|     24|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|     24|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4024|     24|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|     24|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4025|     24|		return;
 4026|     24|	}
 4027|  10.1k|	inp->sctp_ep.signature_change.type = 0;
 4028|  10.1k|	inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_ALLGONE;
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
 4029|       |	/* Remove it from the list .. last thing we need a
 4030|       |	 * lock for.
 4031|       |	 */
 4032|  10.1k|	LIST_REMOVE(inp, sctp_list);
  ------------------
  |  Branch (4032:2): [True: 2.15k, False: 8.01k]
  |  Branch (4032:2): [Folded, False: 10.1k]
  ------------------
 4033|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4034|  10.1k|	SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4035|  10.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  10.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4036|       |
 4037|       |#ifdef SCTP_LOG_CLOSING
 4038|       |	sctp_log_closing(inp, NULL, 5);
 4039|       |#endif
 4040|       |#if !(defined(_WIN32) || defined(__Userspace__))
 4041|       |#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 4042|       |	rt = ip_pcb->inp_route.ro_rt;
 4043|       |#endif
 4044|       |#endif
 4045|  10.1k|	if ((inp->sctp_asocidhash) != NULL) {
  ------------------
  |  Branch (4045:6): [True: 10.1k, False: 0]
  ------------------
 4046|  10.1k|		SCTP_HASH_FREE(inp->sctp_asocidhash, inp->hashasocidmark);
  ------------------
  |  |  767|  10.1k|#define SCTP_HASH_FREE(table, hashmark) sctp_hashdestroy(table, M_PCB, hashmark)
  ------------------
 4047|  10.1k|		inp->sctp_asocidhash = NULL;
 4048|  10.1k|	}
 4049|       |	/*sa_ignore FREED_MEMORY*/
 4050|  10.1k|	TAILQ_FOREACH_SAFE(sq, &inp->read_queue, next, nsq) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  10.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 4051|       |		/* Its only abandoned if it had data left */
 4052|      0|		if (sq->length)
  ------------------
  |  Branch (4052:7): [True: 0, False: 0]
  ------------------
 4053|      0|			SCTP_STAT_INCR(sctps_left_abandon);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4054|       |
 4055|      0|		TAILQ_REMOVE(&inp->read_queue, sq, next);
  ------------------
  |  Branch (4055:3): [True: 0, False: 0]
  |  Branch (4055:3): [Folded, False: 0]
  ------------------
 4056|      0|		sctp_free_remote_addr(sq->whoFrom);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 4057|      0|		if (so)
  ------------------
  |  Branch (4057:7): [True: 0, False: 0]
  ------------------
 4058|      0|			SCTP_SB_DECR(&so->so_rcv, sq->length);
  ------------------
  |  |  973|      0|#define SCTP_SB_DECR(sb, decr)					\
  |  |  974|      0|{								\
  |  |  975|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  976|      0|}
  ------------------
 4059|      0|		if (sq->data) {
  ------------------
  |  Branch (4059:7): [True: 0, False: 0]
  ------------------
 4060|      0|			sctp_m_freem(sq->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4061|      0|			sq->data = NULL;
 4062|      0|		}
 4063|       |		/*
 4064|       |		 * no need to free the net count, since at this point all
 4065|       |		 * assoc's are gone.
 4066|       |		 */
 4067|      0|		sctp_free_a_readq(NULL, sq);
  ------------------
  |  |  105|      0|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      0|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  107|      0|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  109|      0|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      0|}
  ------------------
 4068|      0|	}
 4069|       |	/* Now the sctp_pcb things */
 4070|       |	/*
 4071|       |	 * free each asoc if it is not already closed/free. we can't use the
 4072|       |	 * macro here since le_next will get freed as part of the
 4073|       |	 * sctp_free_assoc() call.
 4074|       |	 */
 4075|  10.1k|	if (ip_pcb->inp_options) {
  ------------------
  |  |  149|  10.1k|#define	inp_options	inp_depend4.inp4_options
  ------------------
  |  Branch (4075:6): [True: 0, False: 10.1k]
  ------------------
 4076|      0|		(void)sctp_m_free(ip_pcb->inp_options);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
              		(void)sctp_m_free(ip_pcb->inp_options);
  ------------------
  |  |  149|      0|#define	inp_options	inp_depend4.inp4_options
  ------------------
 4077|      0|		ip_pcb->inp_options = 0;
  ------------------
  |  |  149|      0|#define	inp_options	inp_depend4.inp4_options
  ------------------
 4078|      0|	}
 4079|       |#if !(defined(_WIN32) || defined(__Userspace__))
 4080|       |#if !defined(__FreeBSD__)
 4081|       |	if (rt) {
 4082|       |		RTFREE(rt);
 4083|       |		ip_pcb->inp_route.ro_rt = 0;
 4084|       |	}
 4085|       |#endif
 4086|       |#endif
 4087|  10.1k|#ifdef INET6
 4088|       |#if !(defined(_WIN32) || defined(__Userspace__))
 4089|       |#if (defined(__FreeBSD__) || defined(__APPLE__) && !defined(__Userspace__))
 4090|       |	if (ip_pcb->inp_vflag & INP_IPV6) {
 4091|       |#else
 4092|       |	if (inp->inp_vflag & INP_IPV6) {
 4093|       |#endif
 4094|       |		ip6_freepcbopts(ip_pcb->in6p_outputopts);
 4095|       |	}
 4096|       |#endif
 4097|  10.1k|#endif				/* INET6 */
 4098|  10.1k|	ip_pcb->inp_vflag = 0;
 4099|       |	/* free up authentication fields */
 4100|  10.1k|	if (inp->sctp_ep.local_auth_chunks != NULL)
  ------------------
  |  Branch (4100:6): [True: 10.1k, False: 0]
  ------------------
 4101|  10.1k|		sctp_free_chunklist(inp->sctp_ep.local_auth_chunks);
 4102|  10.1k|	if (inp->sctp_ep.local_hmacs != NULL)
  ------------------
  |  Branch (4102:6): [True: 10.1k, False: 0]
  ------------------
 4103|  10.1k|		sctp_free_hmaclist(inp->sctp_ep.local_hmacs);
 4104|       |
 4105|  10.1k|	LIST_FOREACH_SAFE(shared_key, &inp->sctp_ep.shared_keys, next, nshared_key) {
  ------------------
  |  | 1135|  10.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  20.3k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 10.1k, False: 10.1k]
  |  |  |  Branch (1136:24): [True: 10.1k, False: 0]
  |  |  ------------------
  |  | 1137|  10.1k|              (var) = (tvar))
  ------------------
 4106|  10.1k|		LIST_REMOVE(shared_key, next);
  ------------------
  |  Branch (4106:3): [True: 0, False: 10.1k]
  |  Branch (4106:3): [Folded, False: 10.1k]
  ------------------
 4107|  10.1k|		sctp_free_sharedkey(shared_key);
 4108|       |		/*sa_ignore FREED_MEMORY*/
 4109|  10.1k|	}
 4110|       |
 4111|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4112|       |	inp->ip_inp.inp.inp_state = INPCB_STATE_DEAD;
 4113|       |	if (in_pcb_checkstate(&inp->ip_inp.inp, WNT_STOPUSING, 1) != WNT_STOPUSING) {
 4114|       |#ifdef INVARIANTS
 4115|       |		panic("sctp_inpcb_free inp = %p couldn't set to STOPUSING", (void *)inp);
 4116|       |#else
 4117|       |		SCTP_PRINTF("sctp_inpcb_free inp = %p couldn't set to STOPUSING\n", (void *)inp);
 4118|       |#endif
 4119|       |	}
 4120|       |	inp->ip_inp.inp.inp_socket->so_flags |= SOF_PCBCLEARING;
 4121|       |#endif
 4122|       |	/*
 4123|       |	 * if we have an address list the following will free the list of
 4124|       |	 * ifaddr's that are set into this ep. Again macro limitations here,
 4125|       |	 * since the LIST_FOREACH could be a bad idea.
 4126|       |	 */
 4127|  10.1k|	LIST_FOREACH_SAFE(laddr, &inp->sctp_addr_list, sctp_nxt_addr, nladdr) {
  ------------------
  |  | 1135|  10.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  20.3k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 10.1k, False: 10.1k]
  |  |  |  Branch (1136:24): [True: 10.1k, False: 0]
  |  |  ------------------
  |  | 1137|  10.1k|              (var) = (tvar))
  ------------------
 4128|  10.1k|		sctp_remove_laddr(laddr);
 4129|  10.1k|	}
 4130|       |
 4131|       |#ifdef SCTP_TRACK_FREED_ASOCS
 4132|       |	/* TEMP CODE */
 4133|       |	LIST_FOREACH_SAFE(stcb, &inp->sctp_asoc_free_list, sctp_tcblist, nstcb) {
 4134|       |		LIST_REMOVE(stcb, sctp_tcblist);
 4135|       |		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
 4136|       |		SCTP_DECR_ASOC_COUNT();
 4137|       |	}
 4138|       |	/* *** END TEMP CODE ****/
 4139|       |#endif
 4140|       |#ifdef SCTP_MVRF
 4141|       |	SCTP_FREE(inp->m_vrf_ids, SCTP_M_MVRF);
 4142|       |#endif
 4143|       |	/* Now lets see about freeing the EP hash table. */
 4144|  10.1k|	if (inp->sctp_tcbhash != NULL) {
  ------------------
  |  Branch (4144:6): [True: 10.1k, False: 0]
  ------------------
 4145|  10.1k|		SCTP_HASH_FREE(inp->sctp_tcbhash, inp->sctp_hashmark);
  ------------------
  |  |  767|  10.1k|#define SCTP_HASH_FREE(table, hashmark) sctp_hashdestroy(table, M_PCB, hashmark)
  ------------------
 4146|  10.1k|		inp->sctp_tcbhash = NULL;
 4147|  10.1k|	}
 4148|       |	/* Now we must put the ep memory back into the zone pool */
 4149|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4150|       |	crfree(inp->ip_inp.inp.inp_cred);
 4151|       |	INP_LOCK_DESTROY(&inp->ip_inp.inp);
 4152|       |#endif
 4153|  10.1k|	SCTP_INP_LOCK_DESTROY(inp);
  ------------------
  |  |  361|  10.1k|	(void)pthread_mutex_destroy(&(_inp)->inp_mtx)
  ------------------
 4154|  10.1k|	SCTP_INP_READ_LOCK_DESTROY(inp);
  ------------------
  |  |  343|  10.1k|	(void)pthread_mutex_destroy(&(_inp)->inp_rdata_mtx)
  ------------------
 4155|  10.1k|	SCTP_ASOC_CREATE_LOCK_DESTROY(inp);
  ------------------
  |  |  417|  10.1k|	(void)pthread_mutex_destroy(&(_inp)->inp_create_mtx)
  ------------------
 4156|  10.1k|#if !(defined(__APPLE__) && !defined(__Userspace__))
 4157|  10.1k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
  ------------------
  |  |  707|  10.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  10.1k|	free(element);  \
  |  |  709|  10.1k|}
  ------------------
 4158|  10.1k|	SCTP_DECR_EP_COUNT();
  ------------------
  |  |  655|  10.1k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_ep), 1)
  |  |  ------------------
  |  |  |  |   97|  10.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 4159|       |#else
 4160|       |	/* For Tiger, we will do this later... */
 4161|       |#endif
 4162|  10.1k|}
sctp_findnet:
 4166|  95.6k|{
 4167|  95.6k|	struct sctp_nets *net;
 4168|       |	/* locate the address */
 4169|   322k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (4169:2): [True: 322k, False: 56.5k]
  ------------------
 4170|   322k|		if (sctp_cmpaddr(addr, (struct sockaddr *)&net->ro._l_addr))
  ------------------
  |  Branch (4170:7): [True: 39.0k, False: 283k]
  ------------------
 4171|  39.0k|			return (net);
 4172|   322k|	}
 4173|  56.5k|	return (NULL);
 4174|  95.6k|}
sctp_is_address_on_local_host:
 4178|  50.7k|{
 4179|  50.7k|	struct sctp_ifa *sctp_ifa;
 4180|  50.7k|	sctp_ifa = sctp_find_ifa_by_addr(addr, vrf_id, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|  50.7k|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 4181|  50.7k|	if (sctp_ifa) {
  ------------------
  |  Branch (4181:6): [True: 10.1k, False: 40.5k]
  ------------------
 4182|  10.1k|		return (1);
 4183|  40.5k|	} else {
 4184|  40.5k|		return (0);
 4185|  40.5k|	}
 4186|  50.7k|}
sctp_add_remote_addr:
 4196|  55.6k|{
 4197|       |	/*
 4198|       |	 * The following is redundant to the same lines in the
 4199|       |	 * sctp_aloc_assoc() but is needed since others call the add
 4200|       |	 * address function
 4201|       |	 */
 4202|  55.6k|	struct sctp_nets *net, *netfirst;
 4203|  55.6k|	int addr_inscope;
 4204|       |
 4205|  55.6k|	SCTPDBG(SCTP_DEBUG_PCB1, "Adding an address (from:%d) to the peer: ",
 4206|  55.6k|		from);
 4207|  55.6k|	SCTPDBG_ADDR(SCTP_DEBUG_PCB1, newaddr);
 4208|       |
 4209|  55.6k|	netfirst = sctp_findnet(stcb, newaddr);
 4210|  55.6k|	if (netfirst) {
  ------------------
  |  Branch (4210:6): [True: 4.92k, False: 50.7k]
  ------------------
 4211|       |		/*
 4212|       |		 * Lie and return ok, we don't want to make the association
 4213|       |		 * go away for this behavior. It will happen in the TCP
 4214|       |		 * model in a connected socket. It does not reach the hash
 4215|       |		 * table until after the association is built so it can't be
 4216|       |		 * found. Mark as reachable, since the initial creation will
 4217|       |		 * have been cleared and the NOT_IN_ASSOC flag will have
 4218|       |		 * been added... and we don't want to end up removing it
 4219|       |		 * back out.
 4220|       |		 */
 4221|  4.92k|		if (netfirst->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  4.92k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (4221:7): [True: 3.71k, False: 1.21k]
  ------------------
 4222|  3.71k|			netfirst->dest_state = (SCTP_ADDR_REACHABLE |
  ------------------
  |  |  481|  3.71k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4223|  3.71k|			    SCTP_ADDR_UNCONFIRMED);
  ------------------
  |  |  487|  3.71k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 4224|  3.71k|		} else {
 4225|  1.21k|			netfirst->dest_state = SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|  1.21k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4226|  1.21k|		}
 4227|       |
 4228|  4.92k|		return (0);
 4229|  4.92k|	}
 4230|  50.7k|	addr_inscope = 1;
 4231|  50.7k|	switch (newaddr->sa_family) {
 4232|      0|#ifdef INET
 4233|  36.3k|	case AF_INET:
  ------------------
  |  Branch (4233:2): [True: 36.3k, False: 14.4k]
  ------------------
 4234|  36.3k|	{
 4235|  36.3k|		struct sockaddr_in *sin;
 4236|       |
 4237|  36.3k|		sin = (struct sockaddr_in *)newaddr;
 4238|  36.3k|		if (sin->sin_addr.s_addr == 0) {
  ------------------
  |  Branch (4238:7): [True: 0, False: 36.3k]
  ------------------
 4239|       |			/* Invalid address */
 4240|      0|			return (-1);
 4241|      0|		}
 4242|       |		/* zero out the zero area */
 4243|  36.3k|		memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
 4244|       |
 4245|       |		/* assure len is set */
 4246|       |#ifdef HAVE_SIN_LEN
 4247|       |		sin->sin_len = sizeof(struct sockaddr_in);
 4248|       |#endif
 4249|  36.3k|		if (set_scope) {
  ------------------
  |  Branch (4249:7): [True: 0, False: 36.3k]
  ------------------
 4250|      0|			if (IN4_ISPRIVATE_ADDRESS(&sin->sin_addr)) {
  ------------------
  |  |  969|      0|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 0, False: 0]
  |  |  ------------------
  |  |  970|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  971|      0|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  972|      0|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  973|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  974|      0|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4251|      0|				stcb->asoc.scope.ipv4_local_scope = 1;
 4252|      0|			}
 4253|  36.3k|		} else {
 4254|       |			/* Validate the address is in scope */
 4255|  36.3k|			if ((IN4_ISPRIVATE_ADDRESS(&sin->sin_addr)) &&
  ------------------
  |  |  969|  36.3k|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 3.26k, False: 33.0k]
  |  |  ------------------
  |  |  970|  36.3k|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 895, False: 32.1k]
  |  |  ------------------
  |  |  971|  33.0k|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 835, False: 60]
  |  |  ------------------
  |  |  972|  33.0k|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 132, False: 703]
  |  |  ------------------
  |  |  973|  36.3k|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 70, False: 32.8k]
  |  |  ------------------
  |  |  974|  32.9k|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 20, False: 50]
  |  |  ------------------
  ------------------
 4256|  3.41k|			    (stcb->asoc.scope.ipv4_local_scope == 0)) {
  ------------------
  |  Branch (4256:8): [True: 0, False: 3.41k]
  ------------------
 4257|      0|				addr_inscope = 0;
 4258|      0|			}
 4259|  36.3k|		}
 4260|  36.3k|		break;
 4261|  36.3k|	}
 4262|      0|#endif
 4263|      0|#ifdef INET6
 4264|  4.23k|	case AF_INET6:
  ------------------
  |  Branch (4264:2): [True: 4.23k, False: 46.5k]
  ------------------
 4265|  4.23k|	{
 4266|  4.23k|		struct sockaddr_in6 *sin6;
 4267|       |
 4268|  4.23k|		sin6 = (struct sockaddr_in6 *)newaddr;
 4269|  4.23k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (4269:7): [True: 0, False: 4.23k]
  ------------------
 4270|       |			/* Invalid address */
 4271|      0|			return (-1);
 4272|      0|		}
 4273|       |		/* assure len is set */
 4274|       |#ifdef HAVE_SIN6_LEN
 4275|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
 4276|       |#endif
 4277|  4.23k|		if (set_scope) {
  ------------------
  |  Branch (4277:7): [True: 0, False: 4.23k]
  ------------------
 4278|      0|			if (sctp_is_address_on_local_host(newaddr, stcb->asoc.vrf_id)) {
  ------------------
  |  Branch (4278:8): [True: 0, False: 0]
  ------------------
 4279|      0|				stcb->asoc.scope.loopback_scope = 1;
 4280|      0|				stcb->asoc.scope.local_scope = 0;
 4281|      0|				stcb->asoc.scope.ipv4_local_scope = 1;
 4282|      0|				stcb->asoc.scope.site_scope = 1;
 4283|      0|			} else if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
  ------------------
  |  Branch (4283:15): [True: 0, False: 0]
  ------------------
 4284|       |				/*
 4285|       |				 * If the new destination is a LINK_LOCAL we
 4286|       |				 * must have common site scope. Don't set
 4287|       |				 * the local scope since we may not share
 4288|       |				 * all links, only loopback can do this.
 4289|       |				 * Links on the local network would also be
 4290|       |				 * on our private network for v4 too.
 4291|       |				 */
 4292|      0|				stcb->asoc.scope.ipv4_local_scope = 1;
 4293|      0|				stcb->asoc.scope.site_scope = 1;
 4294|      0|			} else if (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr)) {
  ------------------
  |  Branch (4294:15): [True: 0, False: 0]
  ------------------
 4295|       |				/*
 4296|       |				 * If the new destination is SITE_LOCAL then
 4297|       |				 * we must have site scope in common.
 4298|       |				 */
 4299|      0|				stcb->asoc.scope.site_scope = 1;
 4300|      0|			}
 4301|  4.23k|		} else {
 4302|       |			/* Validate the address is in scope */
 4303|  4.23k|			if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr) &&
  ------------------
  |  Branch (4303:8): [True: 7, False: 4.22k]
  ------------------
 4304|      7|			    (stcb->asoc.scope.loopback_scope == 0)) {
  ------------------
  |  Branch (4304:8): [True: 0, False: 7]
  ------------------
 4305|      0|				addr_inscope = 0;
 4306|  4.23k|			} else if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr) &&
  ------------------
  |  Branch (4306:15): [True: 2.01k, False: 2.22k]
  ------------------
 4307|  2.01k|			    (stcb->asoc.scope.local_scope == 0)) {
  ------------------
  |  Branch (4307:8): [True: 2.01k, False: 0]
  ------------------
 4308|  2.01k|				addr_inscope = 0;
 4309|  2.22k|			} else if (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr) &&
  ------------------
  |  Branch (4309:15): [True: 115, False: 2.10k]
  ------------------
 4310|    115|			    (stcb->asoc.scope.site_scope == 0)) {
  ------------------
  |  Branch (4310:8): [True: 0, False: 115]
  ------------------
 4311|      0|				addr_inscope = 0;
 4312|      0|			}
 4313|  4.23k|		}
 4314|  4.23k|		break;
 4315|  4.23k|	}
 4316|      0|#endif
 4317|      0|#if defined(__Userspace__)
 4318|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (4318:2): [True: 10.1k, False: 40.5k]
  ------------------
 4319|  10.1k|	{
 4320|  10.1k|		struct sockaddr_conn *sconn;
 4321|       |
 4322|  10.1k|		sconn = (struct sockaddr_conn *)newaddr;
 4323|  10.1k|		if (sconn->sconn_addr == NULL) {
  ------------------
  |  Branch (4323:7): [True: 0, False: 10.1k]
  ------------------
 4324|       |			/* Invalid address */
 4325|      0|			return (-1);
 4326|      0|		}
 4327|       |#ifdef HAVE_SCONN_LEN
 4328|       |		sconn->sconn_len = sizeof(struct sockaddr_conn);
 4329|       |#endif
 4330|  10.1k|		break;
 4331|  10.1k|	}
 4332|  10.1k|#endif
 4333|  10.1k|	default:
  ------------------
  |  Branch (4333:2): [True: 0, False: 50.7k]
  ------------------
 4334|       |		/* not supported family type */
 4335|      0|		return (-1);
 4336|  50.7k|	}
 4337|  50.7k|	net = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_net), struct sctp_nets);
  ------------------
  |  |  703|  50.7k|        (type *)malloc(zone);
  ------------------
 4338|  50.7k|	if (net == NULL) {
  ------------------
  |  Branch (4338:6): [True: 0, False: 50.7k]
  ------------------
 4339|      0|		return (-1);
 4340|      0|	}
 4341|  50.7k|	SCTP_INCR_RADDR_COUNT();
  ------------------
  |  |  670|  50.7k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  ------------------
  |  |  |  |   94|  50.7k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 4342|  50.7k|	memset(net, 0, sizeof(struct sctp_nets));
 4343|  50.7k|	(void)SCTP_GETTIME_TIMEVAL(&net->start_time);
  ------------------
  |  |  991|  50.7k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 4344|       |#ifdef HAVE_SA_LEN
 4345|       |	memcpy(&net->ro._l_addr, newaddr, newaddr->sa_len);
 4346|       |#endif
 4347|  50.7k|	switch (newaddr->sa_family) {
 4348|      0|#ifdef INET
 4349|  36.3k|	case AF_INET:
  ------------------
  |  Branch (4349:2): [True: 36.3k, False: 14.4k]
  ------------------
 4350|  36.3k|#ifndef HAVE_SA_LEN
 4351|  36.3k|		memcpy(&net->ro._l_addr, newaddr, sizeof(struct sockaddr_in));
 4352|  36.3k|#endif
 4353|  36.3k|		((struct sockaddr_in *)&net->ro._l_addr)->sin_port = stcb->rport;
 4354|  36.3k|		break;
 4355|      0|#endif
 4356|      0|#ifdef INET6
 4357|  4.23k|	case AF_INET6:
  ------------------
  |  Branch (4357:2): [True: 4.23k, False: 46.5k]
  ------------------
 4358|  4.23k|#ifndef HAVE_SA_LEN
 4359|  4.23k|		memcpy(&net->ro._l_addr, newaddr, sizeof(struct sockaddr_in6));
 4360|  4.23k|#endif
 4361|  4.23k|		((struct sockaddr_in6 *)&net->ro._l_addr)->sin6_port = stcb->rport;
 4362|  4.23k|		break;
 4363|      0|#endif
 4364|      0|#if defined(__Userspace__)
 4365|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (4365:2): [True: 10.1k, False: 40.5k]
  ------------------
 4366|  10.1k|#ifndef HAVE_SA_LEN
 4367|  10.1k|		memcpy(&net->ro._l_addr, newaddr, sizeof(struct sockaddr_conn));
 4368|  10.1k|#endif
 4369|  10.1k|		((struct sockaddr_conn *)&net->ro._l_addr)->sconn_port = stcb->rport;
 4370|  10.1k|		break;
 4371|      0|#endif
 4372|      0|	default:
  ------------------
  |  Branch (4372:2): [True: 0, False: 50.7k]
  ------------------
 4373|      0|		break;
 4374|  50.7k|	}
 4375|  50.7k|	net->addr_is_local = sctp_is_address_on_local_host(newaddr, stcb->asoc.vrf_id);
 4376|  50.7k|	if (net->addr_is_local && ((set_scope || (from == SCTP_ADDR_IS_CONFIRMED)))) {
  ------------------
  |  |  813|      0|#define SCTP_ADDR_IS_CONFIRMED 8
  ------------------
  |  Branch (4376:6): [True: 10.1k, False: 40.5k]
  |  Branch (4376:30): [True: 10.1k, False: 0]
  |  Branch (4376:43): [True: 0, False: 0]
  ------------------
 4377|  10.1k|		stcb->asoc.scope.loopback_scope = 1;
 4378|  10.1k|		stcb->asoc.scope.ipv4_local_scope = 1;
 4379|  10.1k|		stcb->asoc.scope.local_scope = 0;
 4380|  10.1k|		stcb->asoc.scope.site_scope = 1;
 4381|  10.1k|		addr_inscope = 1;
 4382|  10.1k|	}
 4383|  50.7k|	net->failure_threshold = stcb->asoc.def_net_failure;
 4384|  50.7k|	net->pf_threshold = stcb->asoc.def_net_pf_threshold;
 4385|  50.7k|	if (addr_inscope == 0) {
  ------------------
  |  Branch (4385:6): [True: 2.01k, False: 48.7k]
  ------------------
 4386|  2.01k|		net->dest_state = (SCTP_ADDR_REACHABLE |
  ------------------
  |  |  481|  2.01k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4387|  2.01k|		    SCTP_ADDR_OUT_OF_SCOPE);
  ------------------
  |  |  486|  2.01k|#define SCTP_ADDR_OUT_OF_SCOPE		0x080
  ------------------
 4388|  48.7k|	} else {
 4389|  48.7k|		if (from == SCTP_ADDR_IS_CONFIRMED)
  ------------------
  |  |  813|  48.7k|#define SCTP_ADDR_IS_CONFIRMED 8
  ------------------
  |  Branch (4389:7): [True: 0, False: 48.7k]
  ------------------
 4390|       |			/* SCTP_ADDR_IS_CONFIRMED is passed by connect_x */
 4391|      0|			net->dest_state = SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4392|  48.7k|		else
 4393|  48.7k|			net->dest_state = SCTP_ADDR_REACHABLE |
  ------------------
  |  |  481|  48.7k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4394|  48.7k|			    SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|  48.7k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 4395|  48.7k|	}
 4396|       |	/* We set this to 0, the timer code knows that
 4397|       |	 * this means its an initial value
 4398|       |	 */
 4399|  50.7k|	net->rto_needed = 1;
 4400|  50.7k|	net->RTO = 0;
 4401|  50.7k|	net->RTO_measured = 0;
 4402|  50.7k|	stcb->asoc.numnets++;
 4403|  50.7k|	net->ref_count = 1;
 4404|  50.7k|	net->cwr_window_tsn = net->last_cwr_tsn = stcb->asoc.sending_seq - 1;
 4405|  50.7k|	net->port = port;
 4406|  50.7k|	net->dscp = stcb->asoc.default_dscp;
 4407|  50.7k|#ifdef INET6
 4408|  50.7k|	net->flowlabel = stcb->asoc.default_flowlabel;
 4409|  50.7k|#endif
 4410|  50.7k|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) {
  ------------------
  |  |   70|  50.7k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 50.7k, False: 0]
  |  |  ------------------
  |  |   71|  50.7k|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 0, False: 50.7k]
  |  |  ------------------
  |  |   72|  50.7k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 50.7k]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|  50.7k|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4411|      0|		net->dest_state |= SCTP_ADDR_NOHB;
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
 4412|  50.7k|	} else {
 4413|  50.7k|		net->dest_state &= ~SCTP_ADDR_NOHB;
  ------------------
  |  |  483|  50.7k|#define SCTP_ADDR_NOHB			0x004
  ------------------
 4414|  50.7k|	}
 4415|  50.7k|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD)) {
  ------------------
  |  |   70|  50.7k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 50.7k, False: 0]
  |  |  ------------------
  |  |   71|  50.7k|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 0, False: 50.7k]
  |  |  ------------------
  |  |   72|  50.7k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 50.7k]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|  50.7k|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4416|      0|		net->dest_state |= SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 4417|  50.7k|	} else {
 4418|  50.7k|		net->dest_state &= ~SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|  50.7k|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 4419|  50.7k|	}
 4420|  50.7k|	net->heart_beat_delay = stcb->asoc.heart_beat_delay;
 4421|       |	/* Init the timer structure */
 4422|  50.7k|	SCTP_OS_TIMER_INIT(&net->rxt_timer.timer);
  ------------------
  |  |   92|  50.7k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4423|  50.7k|	SCTP_OS_TIMER_INIT(&net->pmtu_timer.timer);
  ------------------
  |  |   92|  50.7k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4424|  50.7k|	SCTP_OS_TIMER_INIT(&net->hb_timer.timer);
  ------------------
  |  |   92|  50.7k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4425|       |
 4426|       |	/* Now generate a route for this guy */
 4427|  50.7k|#ifdef INET6
 4428|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4429|       |	/* KAME hack: embed scopeid */
 4430|       |	if (newaddr->sa_family == AF_INET6) {
 4431|       |		struct sockaddr_in6 *sin6;
 4432|       |
 4433|       |		sin6 = (struct sockaddr_in6 *)&net->ro._l_addr;
 4434|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4435|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD)
 4436|       |		(void)in6_embedscope(&sin6->sin6_addr, sin6, &stcb->sctp_ep->ip_inp.inp, NULL);
 4437|       |#else
 4438|       |		(void)in6_embedscope(&sin6->sin6_addr, sin6, &stcb->sctp_ep->ip_inp.inp, NULL, NULL);
 4439|       |#endif
 4440|       |#elif defined(SCTP_KAME)
 4441|       |		(void)sa6_embedscope(sin6, MODULE_GLOBAL(ip6_use_defzone));
 4442|       |#else
 4443|       |		(void)in6_embedscope(&sin6->sin6_addr, sin6);
 4444|       |#endif
 4445|       |#ifndef SCOPEDROUTING
 4446|       |		sin6->sin6_scope_id = 0;
 4447|       |#endif
 4448|       |	}
 4449|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 4450|  50.7k|#endif
 4451|  50.7k|	SCTP_RTALLOC((sctp_route_t *)&net->ro,
  ------------------
  |  |  871|  50.7k|#define SCTP_RTALLOC(ro, vrf_id, fibnum) sctp_userspace_rtalloc((sctp_route_t *)ro)
  ------------------
 4452|  50.7k|	             stcb->asoc.vrf_id,
 4453|  50.7k|	             stcb->sctp_ep->fibnum);
 4454|       |
 4455|  50.7k|	net->src_addr_selected = 0;
 4456|       |#if !defined(__Userspace__)
 4457|       |	if (SCTP_ROUTE_HAS_VALID_IFN(&net->ro)) {
 4458|       |		/* Get source address */
 4459|       |		net->ro._s_addr = sctp_source_address_selection(stcb->sctp_ep,
 4460|       |		                                                stcb,
 4461|       |		                                                (sctp_route_t *)&net->ro,
 4462|       |		                                                net,
 4463|       |		                                                0,
 4464|       |		                                                stcb->asoc.vrf_id);
 4465|       |		if (stcb->asoc.default_mtu > 0) {
 4466|       |			net->mtu = stcb->asoc.default_mtu;
 4467|       |			switch (net->ro._l_addr.sa.sa_family) {
 4468|       |#ifdef INET
 4469|       |			case AF_INET:
 4470|       |				net->mtu += SCTP_MIN_V4_OVERHEAD;
 4471|       |				break;
 4472|       |#endif
 4473|       |#ifdef INET6
 4474|       |			case AF_INET6:
 4475|       |				net->mtu += SCTP_MIN_OVERHEAD;
 4476|       |				break;
 4477|       |#endif
 4478|       |#if defined(__Userspace__)
 4479|       |			case AF_CONN:
 4480|       |				net->mtu += sizeof(struct sctphdr);
 4481|       |				break;
 4482|       |#endif
 4483|       |			default:
 4484|       |				break;
 4485|       |			}
 4486|       |#if defined(INET) || defined(INET6)
 4487|       |			if (net->port) {
 4488|       |				net->mtu += (uint32_t)sizeof(struct udphdr);
 4489|       |			}
 4490|       |#endif
 4491|       |		} else if (net->ro._s_addr != NULL) {
 4492|       |			uint32_t imtu, rmtu, hcmtu;
 4493|       |
 4494|       |			net->src_addr_selected = 1;
 4495|       |			/* Now get the interface MTU */
 4496|       |			if (net->ro._s_addr->ifn_p != NULL) {
 4497|       |				/*
 4498|       |				 * XXX: Should we here just use
 4499|       |				 * net->ro._s_addr->ifn_p->ifn_mtu
 4500|       |				 */
 4501|       |				imtu = SCTP_GATHER_MTU_FROM_IFN_INFO(net->ro._s_addr->ifn_p->ifn_p,
 4502|       |				                                     net->ro._s_addr->ifn_p->ifn_index);
 4503|       |			} else {
 4504|       |				imtu = 0;
 4505|       |			}
 4506|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4507|       |			rmtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, net->ro.ro_nh);
 4508|       |			hcmtu = sctp_hc_get_mtu(&net->ro._l_addr, stcb->sctp_ep->fibnum);
 4509|       |#else
 4510|       |			rmtu = SCTP_GATHER_MTU_FROM_ROUTE(net->ro._s_addr, &net->ro._l_addr.sa, net->ro.ro_rt);
 4511|       |			hcmtu = 0;
 4512|       |#endif
 4513|       |			net->mtu = sctp_min_mtu(hcmtu, rmtu, imtu);
 4514|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4515|       |#else
 4516|       |			if (rmtu == 0) {
 4517|       |				/* Start things off to match mtu of interface please. */
 4518|       |				SCTP_SET_MTU_OF_ROUTE(&net->ro._l_addr.sa,
 4519|       |				                      net->ro.ro_rt, net->mtu);
 4520|       |			}
 4521|       |#endif
 4522|       |		}
 4523|       |	}
 4524|       |#endif
 4525|  50.7k|	if (net->mtu == 0) {
  ------------------
  |  Branch (4525:6): [True: 50.7k, False: 0]
  ------------------
 4526|  50.7k|		if (stcb->asoc.default_mtu > 0) {
  ------------------
  |  Branch (4526:7): [True: 0, False: 50.7k]
  ------------------
 4527|      0|			net->mtu = stcb->asoc.default_mtu;
 4528|      0|			switch (net->ro._l_addr.sa.sa_family) {
 4529|      0|#ifdef INET
 4530|      0|			case AF_INET:
  ------------------
  |  Branch (4530:4): [True: 0, False: 0]
  ------------------
 4531|      0|				net->mtu += SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      0|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      0|                              sizeof(struct sctphdr))
  ------------------
 4532|      0|				break;
 4533|      0|#endif
 4534|      0|#ifdef INET6
 4535|      0|			case AF_INET6:
  ------------------
  |  Branch (4535:4): [True: 0, False: 0]
  ------------------
 4536|      0|				net->mtu += SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 4537|      0|				break;
 4538|      0|#endif
 4539|      0|#if defined(__Userspace__)
 4540|      0|			case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (4540:4): [True: 0, False: 0]
  ------------------
 4541|      0|				net->mtu += sizeof(struct sctphdr);
 4542|      0|				break;
 4543|      0|#endif
 4544|      0|			default:
  ------------------
  |  Branch (4544:4): [True: 0, False: 0]
  ------------------
 4545|      0|				break;
 4546|      0|			}
 4547|      0|#if defined(INET) || defined(INET6)
 4548|      0|			if (net->port) {
  ------------------
  |  Branch (4548:8): [True: 0, False: 0]
  ------------------
 4549|      0|				net->mtu += (uint32_t)sizeof(struct udphdr);
 4550|      0|			}
 4551|      0|#endif
 4552|  50.7k|		} else {
 4553|  50.7k|			switch (newaddr->sa_family) {
 4554|      0|#ifdef INET
 4555|  36.3k|			case AF_INET:
  ------------------
  |  Branch (4555:4): [True: 36.3k, False: 14.4k]
  ------------------
 4556|  36.3k|				net->mtu = SCTP_DEFAULT_MTU;
  ------------------
  |  |  685|  36.3k|#define SCTP_DEFAULT_MTU 1500 /* emergency default MTU */
  ------------------
 4557|  36.3k|				break;
 4558|      0|#endif
 4559|      0|#ifdef INET6
 4560|  4.23k|			case AF_INET6:
  ------------------
  |  Branch (4560:4): [True: 4.23k, False: 46.5k]
  ------------------
 4561|  4.23k|				net->mtu = 1280;
 4562|  4.23k|				break;
 4563|      0|#endif
 4564|      0|#if defined(__Userspace__)
 4565|  10.1k|			case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (4565:4): [True: 10.1k, False: 40.5k]
  ------------------
 4566|  10.1k|				net->mtu = 1280;
 4567|  10.1k|				break;
 4568|      0|#endif
 4569|      0|			default:
  ------------------
  |  Branch (4569:4): [True: 0, False: 50.7k]
  ------------------
 4570|      0|				break;
 4571|  50.7k|			}
 4572|  50.7k|		}
 4573|  50.7k|	}
 4574|  50.7k|#if defined(INET) || defined(INET6)
 4575|  50.7k|	if (net->port) {
  ------------------
  |  Branch (4575:6): [True: 0, False: 50.7k]
  ------------------
 4576|      0|		net->mtu -= (uint32_t)sizeof(struct udphdr);
 4577|      0|	}
 4578|  50.7k|#endif
 4579|  50.7k|	if (from == SCTP_ALLOC_ASOC) {
  ------------------
  |  |  816|  50.7k|#define SCTP_ALLOC_ASOC  1
  ------------------
  |  Branch (4579:6): [True: 10.1k, False: 40.5k]
  ------------------
 4580|  10.1k|		stcb->asoc.smallest_mtu = net->mtu;
 4581|  10.1k|	}
 4582|  50.7k|	if (stcb->asoc.smallest_mtu > net->mtu) {
  ------------------
  |  Branch (4582:6): [True: 0, False: 50.7k]
  ------------------
 4583|      0|		sctp_pathmtu_adjustment(stcb, net->mtu, true);
 4584|      0|	}
 4585|  50.7k|#ifdef INET6
 4586|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4587|       |	if (newaddr->sa_family == AF_INET6) {
 4588|       |		struct sockaddr_in6 *sin6;
 4589|       |
 4590|       |		sin6 = (struct sockaddr_in6 *)&net->ro._l_addr;
 4591|       |#ifdef SCTP_KAME
 4592|       |		(void)sa6_recoverscope(sin6);
 4593|       |#else
 4594|       |		(void)in6_recoverscope(sin6, &sin6->sin6_addr, NULL);
 4595|       |#endif /* SCTP_KAME */
 4596|       |	}
 4597|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 4598|  50.7k|#endif
 4599|       |
 4600|       |	/* JRS - Use the congestion control given in the CC module */
 4601|  50.7k|	if (stcb->asoc.cc_functions.sctp_set_initial_cc_param != NULL)
  ------------------
  |  Branch (4601:6): [True: 50.7k, False: 0]
  ------------------
 4602|  50.7k|		(*stcb->asoc.cc_functions.sctp_set_initial_cc_param)(stcb, net);
 4603|       |
 4604|       |	/*
 4605|       |	 * CMT: CUC algo - set find_pseudo_cumack to TRUE (1) at beginning
 4606|       |	 * of assoc (2005/06/27, iyengar@cis.udel.edu)
 4607|       |	 */
 4608|  50.7k|	net->find_pseudo_cumack = 1;
 4609|  50.7k|	net->find_rtx_pseudo_cumack = 1;
 4610|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4611|       |	/* Choose an initial flowid. */
 4612|       |	net->flowid = stcb->asoc.my_vtag ^
 4613|       |	              ntohs(stcb->rport) ^
 4614|       |	              ntohs(stcb->sctp_ep->sctp_lport);
 4615|       |	net->flowtype = M_HASHTYPE_OPAQUE_HASH;
 4616|       |#endif
 4617|  50.7k|	if (netp) {
  ------------------
  |  Branch (4617:6): [True: 40.5k, False: 10.1k]
  ------------------
 4618|  40.5k|		*netp = net;
 4619|  40.5k|	}
 4620|  50.7k|	netfirst = TAILQ_FIRST(&stcb->asoc.nets);
 4621|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4622|       |	if (net->ro.ro_nh == NULL) {
 4623|       |#else
 4624|  50.7k|	if (net->ro.ro_rt == NULL) {
  ------------------
  |  Branch (4624:6): [True: 0, False: 50.7k]
  ------------------
 4625|      0|#endif
 4626|       |		/* Since we have no route put it at the back */
 4627|      0|		TAILQ_INSERT_TAIL(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4627:3): [Folded, False: 0]
  ------------------
 4628|  50.7k|	} else if (netfirst == NULL) {
  ------------------
  |  Branch (4628:13): [True: 10.1k, False: 40.5k]
  ------------------
 4629|       |		/* We are the first one in the pool. */
 4630|  10.1k|		TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4630:3): [True: 0, False: 10.1k]
  |  Branch (4630:3): [Folded, False: 10.1k]
  ------------------
 4631|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4632|       |	} else if (netfirst->ro.ro_nh == NULL) {
 4633|       |#else
 4634|  40.5k|	} else if (netfirst->ro.ro_rt == NULL) {
  ------------------
  |  Branch (4634:13): [True: 0, False: 40.5k]
  ------------------
 4635|      0|#endif
 4636|       |		/*
 4637|       |		 * First one has NO route. Place this one ahead of the first
 4638|       |		 * one.
 4639|       |		 */
 4640|      0|		TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4640:3): [True: 0, False: 0]
  |  Branch (4640:3): [Folded, False: 0]
  ------------------
 4641|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4642|       |	} else if (net->ro.ro_nh->nh_ifp != netfirst->ro.ro_nh->nh_ifp) {
 4643|       |#else
 4644|  40.5k|	} else if (net->ro.ro_rt->rt_ifp != netfirst->ro.ro_rt->rt_ifp) {
  ------------------
  |  Branch (4644:13): [True: 0, False: 40.5k]
  ------------------
 4645|      0|#endif
 4646|       |		/*
 4647|       |		 * This one has a different interface than the one at the
 4648|       |		 * top of the list. Place it ahead.
 4649|       |		 */
 4650|      0|		TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4650:3): [True: 0, False: 0]
  |  Branch (4650:3): [Folded, False: 0]
  ------------------
 4651|  40.5k|	} else {
 4652|       |		/*
 4653|       |		 * Ok we have the same interface as the first one. Move
 4654|       |		 * forward until we find either a) one with a NULL route...
 4655|       |		 * insert ahead of that b) one with a different ifp.. insert
 4656|       |		 * after that. c) end of the list.. insert at the tail.
 4657|       |		 */
 4658|  40.5k|		struct sctp_nets *netlook;
 4659|       |
 4660|   215k|		do {
 4661|   215k|			netlook = TAILQ_NEXT(netfirst, sctp_next);
 4662|   215k|			if (netlook == NULL) {
  ------------------
  |  Branch (4662:8): [True: 40.5k, False: 174k]
  ------------------
 4663|       |				/* End of the list */
 4664|  40.5k|				TAILQ_INSERT_TAIL(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4664:5): [Folded, False: 40.5k]
  ------------------
 4665|  40.5k|				break;
 4666|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4667|       |			} else if (netlook->ro.ro_nh == NULL) {
 4668|       |#else
 4669|   174k|			} else if (netlook->ro.ro_rt == NULL) {
  ------------------
  |  Branch (4669:15): [True: 0, False: 174k]
  ------------------
 4670|      0|#endif
 4671|       |				/* next one has NO route */
 4672|      0|				TAILQ_INSERT_BEFORE(netfirst, net, sctp_next);
  ------------------
  |  Branch (4672:5): [Folded, False: 0]
  ------------------
 4673|      0|				break;
 4674|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4675|       |			} else if (netlook->ro.ro_nh->nh_ifp != net->ro.ro_nh->nh_ifp) {
 4676|       |#else
 4677|   174k|			} else if (netlook->ro.ro_rt->rt_ifp != net->ro.ro_rt->rt_ifp) {
  ------------------
  |  Branch (4677:15): [True: 0, False: 174k]
  ------------------
 4678|      0|#endif
 4679|      0|				TAILQ_INSERT_AFTER(&stcb->asoc.nets, netlook,
  ------------------
  |  Branch (4679:5): [True: 0, False: 0]
  |  Branch (4679:5): [Folded, False: 0]
  ------------------
 4680|      0|				                   net, sctp_next);
 4681|      0|				break;
 4682|      0|			}
 4683|       |			/* Shift forward */
 4684|   174k|			netfirst = netlook;
 4685|   174k|		} while (netlook != NULL);
  ------------------
  |  Branch (4685:12): [True: 174k, False: 0]
  ------------------
 4686|  40.5k|	}
 4687|       |
 4688|       |	/* got to have a primary set */
 4689|  50.7k|	if (stcb->asoc.primary_destination == 0) {
  ------------------
  |  Branch (4689:6): [True: 10.1k, False: 40.5k]
  ------------------
 4690|  10.1k|		stcb->asoc.primary_destination = net;
 4691|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4692|       |	} else if ((stcb->asoc.primary_destination->ro.ro_nh == NULL) &&
 4693|       |	           (net->ro.ro_nh) &&
 4694|       |#else
 4695|  40.5k|	} else if ((stcb->asoc.primary_destination->ro.ro_rt == NULL) &&
  ------------------
  |  Branch (4695:13): [True: 0, False: 40.5k]
  ------------------
 4696|      0|	           (net->ro.ro_rt) &&
  ------------------
  |  Branch (4696:13): [True: 0, False: 0]
  ------------------
 4697|      0|#endif
 4698|      0|	           ((net->dest_state & SCTP_ADDR_UNCONFIRMED) == 0)) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (4698:13): [True: 0, False: 0]
  ------------------
 4699|       |		/* No route to current primary adopt new primary */
 4700|      0|		stcb->asoc.primary_destination = net;
 4701|      0|	}
 4702|       |	/* Validate primary is first */
 4703|  50.7k|	net = TAILQ_FIRST(&stcb->asoc.nets);
 4704|  50.7k|	if ((net != stcb->asoc.primary_destination) &&
  ------------------
  |  Branch (4704:6): [True: 67, False: 50.6k]
  ------------------
 4705|     67|	    (stcb->asoc.primary_destination)) {
  ------------------
  |  Branch (4705:6): [True: 67, False: 0]
  ------------------
 4706|       |		/* first one on the list is NOT the primary
 4707|       |		 * sctp_cmpaddr() is much more efficient if
 4708|       |		 * the primary is the first on the list, make it
 4709|       |		 * so.
 4710|       |		 */
 4711|     67|		TAILQ_REMOVE(&stcb->asoc.nets,
  ------------------
  |  Branch (4711:3): [True: 67, False: 0]
  |  Branch (4711:3): [Folded, False: 67]
  ------------------
 4712|     67|			     stcb->asoc.primary_destination, sctp_next);
 4713|       |		TAILQ_INSERT_HEAD(&stcb->asoc.nets,
  ------------------
  |  Branch (4713:3): [True: 67, False: 0]
  |  Branch (4713:3): [Folded, False: 67]
  ------------------
 4714|     67|				  stcb->asoc.primary_destination, sctp_next);
 4715|     67|	}
 4716|  50.7k|	return (0);
 4717|  50.7k|}
sctp_aloc_assoc_connected:
 5051|  10.1k|{
 5052|  10.1k|	struct sctp_tcb *stcb;
 5053|       |
 5054|  10.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  10.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5055|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5056|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5056:6): [True: 10.1k, False: 0]
  ------------------
 5057|  10.1k|	    SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|  10.1k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|  10.1k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  |  |  |  Branch (1152:32): [True: 0, False: 10.1k]
  |  |  ------------------
  ------------------
 5058|      0|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5059|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5060|      0|		*error = EINVAL;
 5061|      0|		return (NULL);
 5062|      0|	}
 5063|  10.1k|	stcb = sctp_aloc_assoc_locked(inp, firstaddr, error, override_tag,
 5064|  10.1k|	    initial_tsn, vrf_id, o_streams, port, p, initialize_auth_params);
 5065|  10.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  10.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5066|  10.1k|	if (stcb != NULL && (inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)) {
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5066:6): [True: 10.1k, False: 0]
  |  Branch (5066:22): [True: 10.1k, False: 0]
  ------------------
 5067|  10.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_CONNECTED;
  ------------------
  |  |  539|  10.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
 5068|  10.1k|		soisconnecting(inp->sctp_socket);
 5069|  10.1k|	}
 5070|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5071|  10.1k|	return (stcb);
 5072|  10.1k|}
sctp_remove_net:
 5076|  35.4k|{
 5077|  35.4k|	struct sctp_inpcb *inp;
 5078|  35.4k|	struct sctp_association *asoc;
 5079|       |
 5080|  35.4k|	inp = stcb->sctp_ep;
 5081|  35.4k|	asoc = &stcb->asoc;
 5082|  35.4k|	asoc->numnets--;
 5083|  35.4k|	TAILQ_REMOVE(&asoc->nets, net, sctp_next);
  ------------------
  |  Branch (5083:2): [True: 29.7k, False: 5.62k]
  |  Branch (5083:2): [Folded, False: 35.4k]
  ------------------
 5084|  35.4k|	if (net == asoc->primary_destination) {
  ------------------
  |  Branch (5084:6): [True: 610, False: 34.8k]
  ------------------
 5085|       |		/* Reset primary */
 5086|    610|		struct sctp_nets *lnet;
 5087|       |
 5088|    610|		lnet = TAILQ_FIRST(&asoc->nets);
 5089|       |		/* Mobility adaptation
 5090|       |		   Ideally, if deleted destination is the primary, it becomes
 5091|       |		   a fast retransmission trigger by the subsequent SET PRIMARY.
 5092|       |		   (by micchie)
 5093|       |		 */
 5094|    610|		if (sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  1.22k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 610]
  |  |  ------------------
  ------------------
 5095|    610|		                                SCTP_MOBILITY_BASE) ||
 5096|    610|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|    610|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 610]
  |  |  ------------------
  ------------------
 5097|    610|		                                SCTP_MOBILITY_FASTHANDOFF)) {
 5098|      0|			SCTPDBG(SCTP_DEBUG_ASCONF1, "remove_net: primary dst is deleting\n");
 5099|      0|			if (asoc->deleted_primary != NULL) {
  ------------------
  |  Branch (5099:8): [True: 0, False: 0]
  ------------------
 5100|      0|				SCTPDBG(SCTP_DEBUG_ASCONF1, "remove_net: deleted primary may be already stored\n");
 5101|      0|				goto out;
 5102|      0|			}
 5103|      0|			asoc->deleted_primary = net;
 5104|      0|			atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5105|      0|			memset(&net->lastsa, 0, sizeof(net->lastsa));
 5106|      0|			memset(&net->lastsv, 0, sizeof(net->lastsv));
 5107|      0|			sctp_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   82|      0|#define sctp_mobility_feature_on(inp, feature)  (inp->sctp_mobility_features |= feature)
  ------------------
 5108|      0|						 SCTP_MOBILITY_PRIM_DELETED);
 5109|      0|			sctp_timer_start(SCTP_TIMER_TYPE_PRIM_DELETED,
  ------------------
  |  |  548|      0|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
 5110|      0|					 stcb->sctp_ep, stcb, NULL);
 5111|      0|		}
 5112|    610|out:
 5113|       |		/* Try to find a confirmed primary */
 5114|    610|		asoc->primary_destination = sctp_find_alternate_net(stcb, lnet, 0);
 5115|    610|	}
 5116|  35.4k|	if (net == asoc->last_data_chunk_from) {
  ------------------
  |  Branch (5116:6): [True: 0, False: 35.4k]
  ------------------
 5117|       |		/* Reset primary */
 5118|      0|		asoc->last_data_chunk_from = TAILQ_FIRST(&asoc->nets);
 5119|      0|	}
 5120|  35.4k|	if (net == asoc->last_control_chunk_from) {
  ------------------
  |  Branch (5120:6): [True: 0, False: 35.4k]
  ------------------
 5121|       |		/* Clear net */
 5122|      0|		asoc->last_control_chunk_from = NULL;
 5123|      0|	}
 5124|  35.4k|	if (net == asoc->last_net_cmt_send_started) {
  ------------------
  |  Branch (5124:6): [True: 0, False: 35.4k]
  ------------------
 5125|       |		/* Clear net */
 5126|      0|		asoc->last_net_cmt_send_started = NULL;
 5127|      0|	}
 5128|  35.4k|	if (net == stcb->asoc.alternate) {
  ------------------
  |  Branch (5128:6): [True: 2, False: 35.4k]
  ------------------
 5129|      2|		sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      2|#define sctp_free_remote_addr(__net) { \
  |  |  229|      2|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 2, False: 0]
  |  |  ------------------
  |  |  230|      2|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      2|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      2|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      2|	} \
  |  |  245|      2|}
  ------------------
 5130|      2|		stcb->asoc.alternate = NULL;
 5131|      2|	}
 5132|  35.4k|	sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|  35.4k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
 5133|  35.4k|	                SCTP_FROM_SCTP_PCB + SCTP_LOC_9);
  ------------------
  |  |  756|  35.4k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              	                SCTP_FROM_SCTP_PCB + SCTP_LOC_9);
  ------------------
  |  |  777|  35.4k|#define SCTP_LOC_9  0x00000009
  ------------------
 5134|  35.4k|	sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|  35.4k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 5135|  35.4k|	                SCTP_FROM_SCTP_PCB + SCTP_LOC_10);
  ------------------
  |  |  756|  35.4k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              	                SCTP_FROM_SCTP_PCB + SCTP_LOC_10);
  ------------------
  |  |  778|  35.4k|#define SCTP_LOC_10 0x0000000a
  ------------------
 5136|  35.4k|	net->dest_state |= SCTP_ADDR_BEING_DELETED;
  ------------------
  |  |  484|  35.4k|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
 5137|  35.4k|	sctp_free_remote_addr(net);
  ------------------
  |  |  228|  35.4k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  35.4k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 35.4k, False: 0]
  |  |  ------------------
  |  |  230|  35.4k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  35.4k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  35.4k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 34.2k, False: 1.21k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|  34.2k|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 34.2k, False: 0]
  |  |  ------------------
  |  |  232|  34.2k|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|  34.2k|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|  34.2k|		RT_LOCK(_rt);					\
  |  |  |  |  128|  34.2k|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|  34.2k|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|  34.2k|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 34.2k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|  34.2k|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|  34.2k|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|  34.2k|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|  34.2k|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|  34.2k|		_rt = NULL;					\
  |  |  |  |  |  |  125|  34.2k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 34.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|  34.2k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 34.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|  34.2k|				(__net)->ro.ro_rt = NULL; \
  |  |  234|  34.2k|			} \
  |  |  235|  34.2k|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 34.2k]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|  34.2k|			(__net)->src_addr_selected = 0; \
  |  |  240|  34.2k|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|  34.2k|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|  34.2k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|  34.2k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  34.2k|	free(element);  \
  |  |  |  |  709|  34.2k|}
  |  |  ------------------
  |  |  242|  34.2k|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|  34.2k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  34.2k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|  34.2k|		} \
  |  |  244|  35.4k|	} \
  |  |  245|  35.4k|}
  ------------------
 5138|  35.4k|}
sctp_del_remote_addr:
 5146|  7.37k|{
 5147|       |	/*
 5148|       |	 * Here we need to remove a remote address. This is quite simple, we
 5149|       |	 * first find it in the list of address for the association
 5150|       |	 * (tasoc->asoc.nets) and then if it is there, we do a LIST_REMOVE
 5151|       |	 * on that item. Note we do not allow it to be removed if there are
 5152|       |	 * no other addresses.
 5153|       |	 */
 5154|  7.37k|	struct sctp_association *asoc;
 5155|  7.37k|	struct sctp_nets *net, *nnet;
 5156|       |
 5157|  7.37k|	asoc = &stcb->asoc;
 5158|       |
 5159|       |	/* locate the address */
 5160|  39.8k|	TAILQ_FOREACH_SAFE(net, &asoc->nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  7.37k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  46.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 39.8k, False: 6.38k]
  |  |  |  Branch (1130:24): [True: 39.8k, False: 0]
  |  |  ------------------
  |  | 1131|  38.8k|              (var) = (tvar))
  ------------------
 5161|  39.8k|		if (net->ro._l_addr.sa.sa_family != remaddr->sa_family) {
  ------------------
  |  Branch (5161:7): [True: 11.7k, False: 28.0k]
  ------------------
 5162|  11.7k|			continue;
 5163|  11.7k|		}
 5164|  28.0k|		if (sctp_cmpaddr((struct sockaddr *)&net->ro._l_addr,
  ------------------
  |  Branch (5164:7): [True: 996, False: 27.0k]
  ------------------
 5165|  28.0k|		    remaddr)) {
 5166|       |			/* we found the guy */
 5167|    996|			if (asoc->numnets < 2) {
  ------------------
  |  Branch (5167:8): [True: 0, False: 996]
  ------------------
 5168|       |				/* Must have at LEAST two remote addresses */
 5169|      0|				return (-1);
 5170|    996|			} else {
 5171|    996|				sctp_remove_net(stcb, net);
 5172|    996|				return (0);
 5173|    996|			}
 5174|    996|		}
 5175|  28.0k|	}
 5176|       |	/* not found. */
 5177|  6.38k|	return (-2);
 5178|  7.37k|}
sctp_clean_up_stream:
 5270|  4.04M|{
 5271|  4.04M|	struct sctp_tmit_chunk *chk, *nchk;
 5272|  4.04M|	struct sctp_queued_to_read *control, *ncontrol;
 5273|       |
 5274|  4.04M|	TAILQ_FOREACH_SAFE(control, rh, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  4.04M|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  4.04M|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 3.40k, False: 4.04M]
  |  |  |  Branch (1130:24): [True: 3.40k, False: 0]
  |  |  ------------------
  |  | 1131|  4.04M|              (var) = (tvar))
  ------------------
 5275|  3.40k|		TAILQ_REMOVE(rh, control, next_instrm);
  ------------------
  |  Branch (5275:3): [True: 1.06k, False: 2.34k]
  |  Branch (5275:3): [Folded, False: 3.40k]
  ------------------
 5276|  3.40k|		control->on_strm_q = 0;
 5277|  3.40k|		if (control->on_read_q == 0) {
  ------------------
  |  Branch (5277:7): [True: 3.40k, False: 0]
  ------------------
 5278|  3.40k|			sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|  3.40k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  3.40k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 3.40k, False: 0]
  |  |  ------------------
  |  |  230|  3.40k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  3.40k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  3.40k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 3.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|  3.40k|	} \
  |  |  245|  3.40k|}
  ------------------
 5279|  3.40k|			if (control->data) {
  ------------------
  |  Branch (5279:8): [True: 2.00k, False: 1.39k]
  ------------------
 5280|  2.00k|				sctp_m_freem(control->data);
  ------------------
  |  |   52|  2.00k|#define sctp_m_freem m_freem
  ------------------
 5281|  2.00k|				control->data = NULL;
 5282|  2.00k|			}
 5283|  3.40k|		}
 5284|       |		/* Reassembly free? */
 5285|  3.40k|		TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
  ------------------
  |  | 1129|  3.40k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  6.08k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 2.68k, False: 3.40k]
  |  |  |  Branch (1130:24): [True: 2.68k, False: 0]
  |  |  ------------------
  |  | 1131|  3.40k|              (var) = (tvar))
  ------------------
 5286|  2.68k|			TAILQ_REMOVE(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (5286:4): [True: 1.08k, False: 1.60k]
  |  Branch (5286:4): [Folded, False: 2.68k]
  ------------------
 5287|  2.68k|			if (chk->data) {
  ------------------
  |  Branch (5287:8): [True: 2.68k, False: 0]
  ------------------
 5288|  2.68k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  2.68k|#define sctp_m_freem m_freem
  ------------------
 5289|  2.68k|				chk->data = NULL;
 5290|  2.68k|			}
 5291|  2.68k|			if (chk->holds_key_ref)
  ------------------
  |  Branch (5291:8): [True: 0, False: 2.68k]
  ------------------
 5292|      0|				sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5293|  2.68k|			sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  2.68k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  2.68k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 2.68k, False: 0]
  |  |  ------------------
  |  |  230|  2.68k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  2.68k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  2.68k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 2.68k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|  2.68k|	} \
  |  |  245|  2.68k|}
  ------------------
 5294|  2.68k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  2.68k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  2.68k|	free(element);  \
  |  |  709|  2.68k|}
  ------------------
 5295|  2.68k|			SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  2.68k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  2.68k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5296|       |			/*sa_ignore FREED_MEMORY*/
 5297|  2.68k|		}
 5298|       |		/*
 5299|       |		 * We don't free the address here
 5300|       |		 * since all the net's were freed
 5301|       |		 * above.
 5302|       |		 */
 5303|  3.40k|		if (control->on_read_q == 0) {
  ------------------
  |  Branch (5303:7): [True: 3.40k, False: 0]
  ------------------
 5304|  3.40k|			sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|  3.40k|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|  3.40k|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 3.40k]
  |  |  ------------------
  |  |  107|  3.40k|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|  3.40k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|  3.40k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  3.40k|	free(element);  \
  |  |  |  |  709|  3.40k|}
  |  |  ------------------
  |  |  109|  3.40k|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|  3.40k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  3.40k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|  3.40k|}
  ------------------
 5305|  3.40k|		}
 5306|  3.40k|	}
 5307|  4.04M|}
sctp_free_assoc:
 5319|  12.5k|{
 5320|  12.5k|	int i;
 5321|  12.5k|	struct sctp_association *asoc;
 5322|  12.5k|	struct sctp_nets *net, *nnet;
 5323|  12.5k|	struct sctp_laddr *laddr, *naddr;
 5324|  12.5k|	struct sctp_tmit_chunk *chk, *nchk;
 5325|  12.5k|	struct sctp_asconf_addr *aparam, *naparam;
 5326|  12.5k|	struct sctp_asconf_ack *aack, *naack;
 5327|  12.5k|	struct sctp_stream_reset_list *strrst, *nstrrst;
 5328|  12.5k|	struct sctp_queued_to_read *sq, *nsq;
 5329|  12.5k|	struct sctp_stream_queue_pending *sp, *nsp;
 5330|  12.5k|	sctp_sharedkey_t *shared_key, *nshared_key;
 5331|  12.5k|	struct socket *so;
 5332|       |
 5333|       |	/* first, lets purge the entry from the hash table. */
 5334|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5335|       |	sctp_lock_assert(SCTP_INP_SO(inp));
 5336|       |#endif
 5337|  12.5k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  12.5k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  12.5k|	do {                         \
  |  |  |  |  113|  12.5k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 12.5k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  12.5k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 12.5k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5338|       |
 5339|       |#ifdef SCTP_LOG_CLOSING
 5340|       |	sctp_log_closing(inp, stcb, 6);
 5341|       |#endif
 5342|  12.5k|	if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (5342:6): [True: 0, False: 12.5k]
  ------------------
 5343|       |#ifdef SCTP_LOG_CLOSING
 5344|       |		sctp_log_closing(inp, NULL, 7);
 5345|       |#endif
 5346|       |		/* there is no asoc, really TSNH :-0 */
 5347|      0|		return (1);
 5348|      0|	}
 5349|  12.5k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (5349:6): [True: 108, False: 12.4k]
  ------------------
 5350|    108|		sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|    108|#define sctp_free_remote_addr(__net) { \
  |  |  229|    108|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 108, False: 0]
  |  |  ------------------
  |  |  230|    108|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|    108|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    108|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|    108|	} \
  |  |  245|    108|}
  ------------------
 5351|    108|		stcb->asoc.alternate = NULL;
 5352|    108|	}
 5353|  12.5k|#if !(defined(__APPLE__) && !defined(__Userspace__))
 5354|       |	/* TEMP CODE */
 5355|  12.5k|	if (stcb->freed_from_where == 0) {
  ------------------
  |  Branch (5355:6): [True: 10.1k, False: 2.40k]
  ------------------
 5356|       |		/* Only record the first place free happened from */
 5357|  10.1k|		stcb->freed_from_where = from_location;
 5358|  10.1k|	}
 5359|       |	/* TEMP CODE */
 5360|  12.5k|#endif
 5361|       |
 5362|  12.5k|	asoc = &stcb->asoc;
 5363|  12.5k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  12.5k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5363:6): [True: 1, False: 12.5k]
  ------------------
 5364|  12.5k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE))
  ------------------
  |  |  546|  12.5k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5364:6): [True: 10.9k, False: 1.66k]
  ------------------
 5365|       |		/* nothing around */
 5366|  10.9k|		so = NULL;
 5367|  1.66k|	else
 5368|  1.66k|		so = inp->sctp_socket;
 5369|       |
 5370|       |	/*
 5371|       |	 * We used timer based freeing if a reader or writer is in the way.
 5372|       |	 * So we first check if we are actually being called from a timer,
 5373|       |	 * if so we abort early if a reader or writer is still in the way.
 5374|       |	 */
 5375|  12.5k|	if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) &&
  ------------------
  |  |  465|  12.5k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (5375:6): [True: 2.40k, False: 10.1k]
  ------------------
 5376|  2.40k|	    (from_inpcbfree == SCTP_NORMAL_PROC)) {
  ------------------
  |  |  808|  2.40k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5376:6): [True: 2.40k, False: 0]
  ------------------
 5377|       |		/*
 5378|       |		 * is it the timer driving us? if so are the reader/writers
 5379|       |		 * gone?
 5380|       |		 */
 5381|  2.40k|		if (stcb->asoc.refcnt) {
  ------------------
  |  Branch (5381:7): [True: 2.37k, False: 24]
  ------------------
 5382|       |			/* nope, reader or writer in the way */
 5383|  2.37k|			sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|  2.37k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 5384|       |			/* no asoc destroyed */
 5385|  2.37k|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  2.37k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.37k|	do {                         \
  |  |  |  |  113|  2.37k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.37k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.37k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.37k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5386|       |#ifdef SCTP_LOG_CLOSING
 5387|       |			sctp_log_closing(inp, stcb, 8);
 5388|       |#endif
 5389|  2.37k|			return (0);
 5390|  2.37k|		}
 5391|  2.40k|	}
 5392|       |	/* Now clean up any other timers */
 5393|  10.1k|	sctp_stop_association_timers(stcb, false);
 5394|       |	/* Now the read queue needs to be cleaned up (only once) */
 5395|  10.1k|	if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0) {
  ------------------
  |  |  465|  10.1k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (5395:6): [True: 10.1k, False: 24]
  ------------------
 5396|  10.1k|		SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_ABOUT_TO_BE_FREED);
  ------------------
  |  |  478|  10.1k|	sctp_add_substate(_stcb, _substate)
  ------------------
 5397|  10.1k|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5398|   115k|		TAILQ_FOREACH(sq, &inp->read_queue, next) {
  ------------------
  |  Branch (5398:3): [True: 115k, False: 10.1k]
  ------------------
 5399|   115k|			if (sq->stcb == stcb) {
  ------------------
  |  Branch (5399:8): [True: 115k, False: 0]
  ------------------
 5400|   115k|				sq->do_not_ref_stcb = 1;
 5401|   115k|				sq->sinfo_cumtsn = stcb->asoc.cumulative_tsn;
 5402|       |				/* If there is no end, there never
 5403|       |				 * will be now.
 5404|       |				 */
 5405|   115k|				if (sq->end_added == 0) {
  ------------------
  |  Branch (5405:9): [True: 0, False: 115k]
  ------------------
 5406|       |					/* Held for PD-API, clear that. */
 5407|      0|					sq->pdapi_aborted = 1;
 5408|      0|					sq->held_length = 0;
 5409|      0|					if (sctp_stcb_is_feature_on(inp, stcb, SCTP_PCB_FLAGS_PDAPIEVNT) && (so != NULL)) {
  ------------------
  |  |   70|      0|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   71|      0|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   72|      0|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 0]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|      0|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (5409:74): [True: 0, False: 0]
  ------------------
 5410|      0|						sctp_ulp_notify(SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION,
  ------------------
  |  |  717|      0|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
 5411|      0|						                stcb,
 5412|      0|						                SCTP_PARTIAL_DELIVERY_ABORTED,
  ------------------
  |  |  451|      0|#define SCTP_PARTIAL_DELIVERY_ABORTED	0x0001
  ------------------
 5413|      0|						                (void *)sq,
 5414|      0|						                SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5415|      0|					}
 5416|       |					/* Add an end to wake them */
 5417|      0|					sq->end_added = 1;
 5418|      0|				}
 5419|   115k|			}
 5420|   115k|		}
 5421|  10.1k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5422|  10.1k|		if (stcb->block_entry) {
  ------------------
  |  Branch (5422:7): [True: 0, False: 10.1k]
  ------------------
 5423|      0|			SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_PCB, ECONNRESET);
 5424|      0|			stcb->block_entry->error = ECONNRESET;
 5425|      0|			stcb->block_entry = NULL;
 5426|      0|		}
 5427|  10.1k|	}
 5428|  10.1k|	if ((stcb->asoc.refcnt) || (stcb->asoc.state & SCTP_STATE_IN_ACCEPT_QUEUE)) {
  ------------------
  |  |  468|  10.1k|#define SCTP_STATE_IN_ACCEPT_QUEUE      0x1000
  ------------------
  |  Branch (5428:6): [True: 24, False: 10.1k]
  |  Branch (5428:29): [True: 0, False: 10.1k]
  ------------------
 5429|       |		/* Someone holds a reference OR the socket is unaccepted yet.
 5430|       |		*/
 5431|     24|		if ((stcb->asoc.refcnt) ||
  ------------------
  |  Branch (5431:7): [True: 24, False: 0]
  ------------------
 5432|      0|		    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|      0|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5432:7): [True: 0, False: 0]
  ------------------
 5433|     24|		    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) {
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5433:7): [True: 0, False: 0]
  ------------------
 5434|     24|			SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_IN_ACCEPT_QUEUE);
  ------------------
  |  |  476|     24|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 5435|     24|			sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|     24|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 5436|     24|		}
 5437|     24|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|     24|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5437:7): [True: 0, False: 24]
  ------------------
 5438|     24|		    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE))
  ------------------
  |  |  546|     24|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5438:7): [True: 6, False: 18]
  ------------------
 5439|       |			/* nothing around */
 5440|      6|			so = NULL;
 5441|     24|		if (so) {
  ------------------
  |  Branch (5441:7): [True: 18, False: 6]
  ------------------
 5442|       |			/* Wake any reader/writers */
 5443|     18|			sctp_sorwakeup(inp, so);
  ------------------
  |  | 1032|     18|#define sctp_sorwakeup(inp, so) \
  |  | 1033|     18|do { \
  |  | 1034|     18|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|     36|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 18]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|     18|	} else { \
  |  | 1037|     18|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|     18|#define	sorwakeup(so) do {						\
  |  |  |  |  520|     18|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|     18|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|     18|	do {                         \
  |  |  |  |  |  |  |  |  113|     18|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 18]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|     18|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 18]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|     18|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|     18|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|     18|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|     18|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|     18|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|     18|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 18]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|     18|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 18]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|     18|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|     18|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|     18|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|     18|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|     18|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 18, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|     18|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|     18|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|     18|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|     18|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|     18|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|     18|	else								\
  |  |  |  |  |  |  516|     18|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  517|     18|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 18]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|     18|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 18]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|     18|	} \
  |  | 1039|     18|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 18]
  |  |  ------------------
  ------------------
 5444|     18|			sctp_sowwakeup(inp, so);
  ------------------
  |  | 1001|     18|#define sctp_sowwakeup(inp, so) \
  |  | 1002|     18|do { \
  |  | 1003|     18|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|     36|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1003:6): [True: 0, False: 18]
  |  |  ------------------
  |  | 1004|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEOUTPUT); \
  |  |  ------------------
  |  |  |  |  542|      0|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  |  |  ------------------
  |  | 1005|     18|	} else { \
  |  | 1006|     18|		sowwakeup(so); \
  |  |  ------------------
  |  |  |  |  532|     18|#define	sowwakeup(so) do {						\
  |  |  |  |  533|     18|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|     18|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|     18|	do {                         \
  |  |  |  |  |  |  |  |  113|     18|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 18]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|     18|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 18]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  534|     18|	sowwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  524|     18|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  |  |  525|     18|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|     18|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|     18|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|     18|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 18]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|     18|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 18]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  526|     18|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|     18|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|     18|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|     18|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|     18|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 18, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|     18|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|     18|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|     18|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|     18|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  527|     18|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  |  |  528|     18|	else								\
  |  |  |  |  |  |  529|     18|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  530|     18|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (530:10): [Folded, False: 18]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  535|     18|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (535:10): [Folded, False: 18]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1007|     18|	} \
  |  | 1008|     18|} while (0)
  |  |  ------------------
  |  |  |  Branch (1008:10): [Folded, False: 18]
  |  |  ------------------
  ------------------
 5445|     18|		}
 5446|     24|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     24|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5447|       |
 5448|       |#ifdef SCTP_LOG_CLOSING
 5449|       |		sctp_log_closing(inp, stcb, 9);
 5450|       |#endif
 5451|       |		/* no asoc destroyed */
 5452|     24|		return (0);
 5453|     24|	}
 5454|       |#ifdef SCTP_LOG_CLOSING
 5455|       |	sctp_log_closing(inp, stcb, 10);
 5456|       |#endif
 5457|       |	/* When I reach here, no others want
 5458|       |	 * to kill the assoc yet.. and I own
 5459|       |	 * the lock. Now its possible an abort
 5460|       |	 * comes in when I do the lock exchange
 5461|       |	 * below to grab all the locks to do
 5462|       |	 * the final take out. to prevent this
 5463|       |	 * we increment the count, which will
 5464|       |	 * start a timer and blow out above thus
 5465|       |	 * assuring us that we hold exclusive
 5466|       |	 * killing of the asoc. Note that
 5467|       |	 * after getting back the TCB lock
 5468|       |	 * we will go ahead and increment the
 5469|       |	 * counter back up and stop any timer
 5470|       |	 * a passing stranger may have started :-S
 5471|       |	 */
 5472|  10.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  10.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5472:6): [True: 1.67k, False: 8.50k]
  ------------------
 5473|  1.67k|		atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  1.67k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5474|       |
 5475|  1.67k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  1.67k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5476|  1.67k|		SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  1.67k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5477|  1.67k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  1.67k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5478|  1.67k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  1.67k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5479|  1.67k|	}
 5480|       |	/* Double check the GONE flag */
 5481|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5481:6): [True: 0, False: 10.1k]
  ------------------
 5482|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE))
  ------------------
  |  |  546|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5482:6): [True: 8.52k, False: 1.64k]
  ------------------
 5483|       |		/* nothing around */
 5484|  8.52k|		so = NULL;
 5485|       |
 5486|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5486:6): [True: 10.1k, False: 0]
  ------------------
 5487|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5487:6): [True: 0, False: 0]
  ------------------
 5488|       |		/*
 5489|       |		 * For TCP type we need special handling when we are
 5490|       |		 * connected. We also include the peel'ed off ones to.
 5491|       |		 */
 5492|  10.1k|		if (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) {
  ------------------
  |  |  539|  10.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (5492:7): [True: 10.1k, False: 0]
  ------------------
 5493|  10.1k|			inp->sctp_flags &= ~SCTP_PCB_FLAGS_CONNECTED;
  ------------------
  |  |  539|  10.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
 5494|  10.1k|			inp->sctp_flags |= SCTP_PCB_FLAGS_WAS_CONNECTED;
  ------------------
  |  |  535|  10.1k|#define SCTP_PCB_FLAGS_WAS_CONNECTED    0x00080000
  ------------------
 5495|  10.1k|			if (so) {
  ------------------
  |  Branch (5495:8): [True: 1.64k, False: 8.52k]
  ------------------
 5496|  1.64k|				SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|  1.64k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.64k|	do {                         \
  |  |  |  |  113|  1.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.64k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5497|  1.64k|				so->so_state &= ~(SS_ISCONNECTING |
  ------------------
  |  |  341|  1.64k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
 5498|  1.64k|				    SS_ISDISCONNECTING |
  ------------------
  |  |  342|  1.64k|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
 5499|  1.64k|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 5500|  1.64k|				    SS_ISCONFIRMING |
  ------------------
  |  |  345|  1.64k|#define	SS_ISCONFIRMING		0x0400	/* deciding to accept connection req */
  ------------------
 5501|  1.64k|#endif
 5502|  1.64k|				    SS_ISCONNECTED);
  ------------------
  |  |  340|  1.64k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
 5503|  1.64k|				so->so_state |= SS_ISDISCONNECTED;
  ------------------
  |  |  346|  1.64k|#define	SS_ISDISCONNECTED	0x2000	/* socket disconnected from peer */
  ------------------
 5504|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5505|       |				socantrcvmore(so);
 5506|       |#else
 5507|  1.64k|				socantrcvmore_locked(so);
 5508|  1.64k|#endif
 5509|  1.64k|				socantsendmore(so);
 5510|  1.64k|				sctp_sowwakeup(inp, so);
  ------------------
  |  | 1001|  1.64k|#define sctp_sowwakeup(inp, so) \
  |  | 1002|  1.64k|do { \
  |  | 1003|  1.64k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  3.29k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1003:6): [True: 0, False: 1.64k]
  |  |  ------------------
  |  | 1004|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEOUTPUT); \
  |  |  ------------------
  |  |  |  |  542|      0|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  |  |  ------------------
  |  | 1005|  1.64k|	} else { \
  |  | 1006|  1.64k|		sowwakeup(so); \
  |  |  ------------------
  |  |  |  |  532|  1.64k|#define	sowwakeup(so) do {						\
  |  |  |  |  533|  1.64k|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.64k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  1.64k|	do {                         \
  |  |  |  |  |  |  |  |  113|  1.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.64k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  1.64k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.64k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  534|  1.64k|	sowwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  524|  1.64k|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  |  |  525|  1.64k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|  1.64k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|  1.64k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|  1.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.64k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|  1.64k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.64k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  526|  1.64k|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|  1.64k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|  1.64k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|  1.64k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|  1.64k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 1.64k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|  1.64k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|  1.64k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|  1.64k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|  1.64k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  527|  1.64k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  |  |  528|  1.64k|	else								\
  |  |  |  |  |  |  529|  1.64k|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  530|  1.64k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (530:10): [Folded, False: 1.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  535|  1.64k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (535:10): [Folded, False: 1.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1007|  1.64k|	} \
  |  | 1008|  1.64k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1008:10): [Folded, False: 1.64k]
  |  |  ------------------
  ------------------
 5511|  1.64k|				sctp_sorwakeup(inp, so);
  ------------------
  |  | 1032|  1.64k|#define sctp_sorwakeup(inp, so) \
  |  | 1033|  1.64k|do { \
  |  | 1034|  1.64k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  3.29k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 1.64k]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|  1.64k|	} else { \
  |  | 1037|  1.64k|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|  1.64k|#define	sorwakeup(so) do {						\
  |  |  |  |  520|  1.64k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.64k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  1.64k|	do {                         \
  |  |  |  |  |  |  |  |  113|  1.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.64k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  1.64k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.64k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|  1.64k|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|  1.64k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|  1.64k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|  1.64k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|  1.64k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|  1.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.64k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|  1.64k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.64k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|  1.64k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|  1.64k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|  1.64k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|  1.64k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|  1.64k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 1.64k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|  1.64k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|  1.64k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|  1.64k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|  1.64k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  1.64k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|  1.64k|	else								\
  |  |  |  |  |  |  516|  1.64k|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.64k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 1.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|  1.64k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 1.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|  1.64k|	} \
  |  | 1039|  1.64k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 1.64k]
  |  |  ------------------
  ------------------
 5512|  1.64k|				SCTP_SOWAKEUP(so);
  ------------------
  |  |  966|  1.64k|#define SCTP_SOWAKEUP(so)	wakeup(&(so)->so_timeo, so)
  ------------------
 5513|  1.64k|			}
 5514|  10.1k|		}
 5515|  10.1k|	}
 5516|       |
 5517|       |	/* Make it invalid too, that way if its
 5518|       |	 * about to run it will abort and return.
 5519|       |	 */
 5520|       |	/* re-increment the lock */
 5521|  10.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  10.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5521:6): [True: 1.67k, False: 8.50k]
  ------------------
 5522|  1.67k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  1.67k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5523|  1.67k|	}
 5524|  10.1k|	if (stcb->asoc.refcnt) {
  ------------------
  |  Branch (5524:6): [True: 0, False: 10.1k]
  ------------------
 5525|      0|		SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_IN_ACCEPT_QUEUE);
  ------------------
  |  |  476|      0|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 5526|      0|		sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|      0|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 5527|      0|		if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|      0|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5527:7): [True: 0, False: 0]
  ------------------
 5528|      0|			SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5529|      0|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5530|      0|		}
 5531|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5532|      0|		return (0);
 5533|      0|	}
 5534|  10.1k|	asoc->state = 0;
 5535|  10.1k|	if (inp->sctp_tcbhash) {
  ------------------
  |  Branch (5535:6): [True: 10.1k, False: 0]
  ------------------
 5536|  10.1k|		LIST_REMOVE(stcb, sctp_tcbhash);
  ------------------
  |  Branch (5536:3): [True: 0, False: 10.1k]
  |  Branch (5536:3): [Folded, False: 10.1k]
  ------------------
 5537|  10.1k|	}
 5538|  10.1k|	if (stcb->asoc.in_asocid_hash) {
  ------------------
  |  Branch (5538:6): [True: 10.1k, False: 0]
  ------------------
 5539|  10.1k|		LIST_REMOVE(stcb, sctp_tcbasocidhash);
  ------------------
  |  Branch (5539:3): [True: 0, False: 10.1k]
  |  Branch (5539:3): [Folded, False: 10.1k]
  ------------------
 5540|  10.1k|	}
 5541|  10.1k|	if (inp->sctp_socket == NULL) {
  ------------------
  |  Branch (5541:6): [True: 8.52k, False: 1.64k]
  ------------------
 5542|  8.52k|		stcb->sctp_socket = NULL;
 5543|  8.52k|	}
 5544|       |	/* Now lets remove it from the list of ALL associations in the EP */
 5545|  10.1k|	LIST_REMOVE(stcb, sctp_tcblist);
  ------------------
  |  Branch (5545:2): [True: 0, False: 10.1k]
  |  Branch (5545:2): [Folded, False: 10.1k]
  ------------------
 5546|  10.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  10.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5546:6): [True: 1.67k, False: 8.50k]
  ------------------
 5547|  1.67k|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  1.67k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  1.67k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 5548|  1.67k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  1.67k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5549|  1.67k|	}
 5550|       |	/* pull from vtag hash */
 5551|  10.1k|	LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (5551:2): [True: 2, False: 10.1k]
  |  Branch (5551:2): [Folded, False: 10.1k]
  ------------------
 5552|  10.1k|	sctp_add_vtag_to_timewait(asoc->my_vtag, inp->sctp_lport, stcb->rport);
  ------------------
  |  |  426|  10.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  10.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  10.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5553|       |
 5554|       |	/* Now restop the timers to be sure
 5555|       |	 * this is paranoia at is finest!
 5556|       |	 */
 5557|  10.1k|	sctp_stop_association_timers(stcb, true);
 5558|       |
 5559|       |	/*
 5560|       |	 * The chunk lists and such SHOULD be empty but we check them just
 5561|       |	 * in case.
 5562|       |	 */
 5563|       |	/* anything on the wheel needs to be removed */
 5564|  2.55M|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (5564:14): [True: 2.54M, False: 10.1k]
  ------------------
 5565|  2.54M|		struct sctp_stream_out *outs;
 5566|       |
 5567|  2.54M|		outs = &asoc->strmout[i];
 5568|       |		/* now clean up any chunks here */
 5569|  2.54M|		TAILQ_FOREACH_SAFE(sp, &outs->outqueue, next, nsp) {
  ------------------
  |  | 1129|  2.54M|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  2.54M|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 100, False: 2.54M]
  |  |  |  Branch (1130:24): [True: 100, False: 0]
  |  |  ------------------
  |  | 1131|  2.54M|              (var) = (tvar))
  ------------------
 5570|    100|			atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|    100|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5571|    100|			TAILQ_REMOVE(&outs->outqueue, sp, next);
  ------------------
  |  Branch (5571:4): [True: 0, False: 100]
  |  Branch (5571:4): [Folded, False: 100]
  ------------------
 5572|    100|			stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, outs, sp);
 5573|    100|			sctp_free_spbufspace(stcb, asoc, sp);
  ------------------
  |  |  270|    100|#define sctp_free_spbufspace(stcb, asoc, sp)  \
  |  |  271|    100|do { \
  |  |  272|    100|	if (sp->data != NULL) { \
  |  |  ------------------
  |  |  |  Branch (272:6): [True: 100, False: 0]
  |  |  ------------------
  |  |  273|    100|		if ((asoc)->total_output_queue_size >= sp->length) { \
  |  |  ------------------
  |  |  |  Branch (273:7): [True: 100, False: 0]
  |  |  ------------------
  |  |  274|    100|			atomic_subtract_int(&(asoc)->total_output_queue_size, sp->length); \
  |  |  ------------------
  |  |  |  |   97|    100|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  275|    100|		} else { \
  |  |  276|      0|			(asoc)->total_output_queue_size = 0; \
  |  |  277|      0|		} \
  |  |  278|    100|		if (stcb->sctp_socket && ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (278:7): [True: 0, False: 100]
  |  |  |  Branch (278:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  279|      0|		    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (279:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  280|      0|			SCTP_SB_DECR(&stcb->sctp_socket->so_snd, sp->length); \
  |  |  ------------------
  |  |  |  |  973|      0|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|      0|{								\
  |  |  |  |  975|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|      0|{ \
  |  |  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|	} \
  |  |  |  |  |  |  124|      0|}
  |  |  |  |  ------------------
  |  |  |  |  976|      0|}
  |  |  ------------------
  |  |  281|      0|		} \
  |  |  282|    100|	} \
  |  |  283|    100|} while (0)
  |  |  ------------------
  |  |  |  Branch (283:10): [Folded, False: 100]
  |  |  ------------------
  ------------------
 5574|    100|			if (sp->data) {
  ------------------
  |  Branch (5574:8): [True: 100, False: 0]
  ------------------
 5575|    100|				if (so) {
  ------------------
  |  Branch (5575:9): [True: 0, False: 100]
  ------------------
 5576|       |					/* Still an open socket - report */
 5577|      0|					sctp_ulp_notify(SCTP_NOTIFY_SPECIAL_SP_FAIL, stcb,
  ------------------
  |  |  709|      0|#define SCTP_NOTIFY_SPECIAL_SP_FAIL              7
  ------------------
 5578|      0|					                0, (void *)sp, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5579|      0|				}
 5580|    100|				if (sp->data) {
  ------------------
  |  Branch (5580:9): [True: 100, False: 0]
  ------------------
 5581|    100|					sctp_m_freem(sp->data);
  ------------------
  |  |   52|    100|#define sctp_m_freem m_freem
  ------------------
 5582|    100|					sp->data = NULL;
 5583|    100|					sp->tail_mbuf = NULL;
 5584|    100|					sp->length = 0;
 5585|    100|				}
 5586|    100|			}
 5587|    100|			if (sp->net) {
  ------------------
  |  Branch (5587:8): [True: 0, False: 100]
  ------------------
 5588|      0|				sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 5589|      0|				sp->net = NULL;
 5590|      0|			}
 5591|    100|			sctp_free_a_strmoq(stcb, sp, SCTP_SO_LOCKED);
  ------------------
  |  |  125|    100|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|    100|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 100]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|    100|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|    100|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    100|	free(element);  \
  |  |  |  |  709|    100|}
  |  |  ------------------
  |  |  131|    100|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|    100|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    100|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|    100|}
  ------------------
 5592|    100|		}
 5593|  2.54M|	}
 5594|       |	/*sa_ignore FREED_MEMORY*/
 5595|  10.1k|	TAILQ_FOREACH_SAFE(strrst, &asoc->resetHead, next_resp, nstrrst) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  10.5k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 363, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 363, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5596|    363|		TAILQ_REMOVE(&asoc->resetHead, strrst, next_resp);
  ------------------
  |  Branch (5596:3): [True: 22, False: 341]
  |  Branch (5596:3): [Folded, False: 363]
  ------------------
 5597|    363|		SCTP_FREE(strrst, SCTP_M_STRESET);
  ------------------
  |  |  679|    363|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    363|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5598|    363|	}
 5599|  10.1k|	TAILQ_FOREACH_SAFE(sq, &asoc->pending_reply_queue, next, nsq) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  10.3k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 162, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 162, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5600|    162|		TAILQ_REMOVE(&asoc->pending_reply_queue, sq, next);
  ------------------
  |  Branch (5600:3): [True: 106, False: 56]
  |  Branch (5600:3): [Folded, False: 162]
  ------------------
 5601|    162|		if (sq->data) {
  ------------------
  |  Branch (5601:7): [True: 162, False: 0]
  ------------------
 5602|    162|			sctp_m_freem(sq->data);
  ------------------
  |  |   52|    162|#define sctp_m_freem m_freem
  ------------------
 5603|    162|			sq->data = NULL;
 5604|    162|		}
 5605|    162|		sctp_free_remote_addr(sq->whoFrom);
  ------------------
  |  |  228|    162|#define sctp_free_remote_addr(__net) { \
  |  |  229|    162|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 162, False: 0]
  |  |  ------------------
  |  |  230|    162|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|    162|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    162|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 162]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|    162|	} \
  |  |  245|    162|}
  ------------------
 5606|    162|		sq->whoFrom = NULL;
 5607|    162|		sq->stcb = NULL;
 5608|       |		/* Free the ctl entry */
 5609|    162|		sctp_free_a_readq(stcb, sq);
  ------------------
  |  |  105|    162|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|    162|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 162]
  |  |  ------------------
  |  |  107|    162|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|    162|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|    162|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    162|	free(element);  \
  |  |  |  |  709|    162|}
  |  |  ------------------
  |  |  109|    162|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|    162|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    162|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|    162|}
  ------------------
 5610|       |		/*sa_ignore FREED_MEMORY*/
 5611|    162|	}
 5612|  17.8k|	TAILQ_FOREACH_SAFE(chk, &asoc->free_chunks, sctp_next, nchk) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  28.0k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 17.8k, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 17.8k, False: 0]
  |  |  ------------------
  |  | 1131|  17.8k|              (var) = (tvar))
  ------------------
 5613|  17.8k|		TAILQ_REMOVE(&asoc->free_chunks, chk, sctp_next);
  ------------------
  |  Branch (5613:3): [True: 10.5k, False: 7.28k]
  |  Branch (5613:3): [Folded, False: 17.8k]
  ------------------
 5614|  17.8k|		if (chk->data) {
  ------------------
  |  Branch (5614:7): [True: 0, False: 17.8k]
  ------------------
 5615|      0|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5616|      0|			chk->data = NULL;
 5617|      0|		}
 5618|  17.8k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5618:7): [True: 0, False: 17.8k]
  ------------------
 5619|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5620|  17.8k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  17.8k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  17.8k|	free(element);  \
  |  |  709|  17.8k|}
  ------------------
 5621|  17.8k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  17.8k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  17.8k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5622|  17.8k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1);
  ------------------
  |  |   97|  17.8k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5623|  17.8k|		asoc->free_chunk_cnt--;
 5624|       |		/*sa_ignore FREED_MEMORY*/
 5625|  17.8k|	}
 5626|       |	/* pending send queue SHOULD be empty */
 5627|  10.1k|	TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.5k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 1.39k, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 1.39k, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5628|  1.39k|		if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (5628:7): [True: 1.39k, False: 0]
  ------------------
 5629|  1.39k|			asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 5630|  1.39k|#ifdef INVARIANTS
 5631|  1.39k|		} else {
 5632|      0|			panic("No chunks on the queues for sid %u.", chk->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5633|      0|#endif
 5634|      0|		}
 5635|  1.39k|		TAILQ_REMOVE(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (5635:3): [True: 0, False: 1.39k]
  |  Branch (5635:3): [Folded, False: 1.39k]
  ------------------
 5636|  1.39k|		if (chk->data) {
  ------------------
  |  Branch (5636:7): [True: 1.39k, False: 0]
  ------------------
 5637|  1.39k|			if (so) {
  ------------------
  |  Branch (5637:8): [True: 0, False: 1.39k]
  ------------------
 5638|       |				/* Still a socket? */
 5639|      0|				sctp_ulp_notify(SCTP_NOTIFY_UNSENT_DG_FAIL, stcb,
  ------------------
  |  |  708|      0|#define SCTP_NOTIFY_UNSENT_DG_FAIL               6
  ------------------
 5640|      0|				                0, chk, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5641|      0|			}
 5642|  1.39k|			if (chk->data) {
  ------------------
  |  Branch (5642:8): [True: 1.39k, False: 0]
  ------------------
 5643|  1.39k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  1.39k|#define sctp_m_freem m_freem
  ------------------
 5644|  1.39k|				chk->data = NULL;
 5645|  1.39k|			}
 5646|  1.39k|		}
 5647|  1.39k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5647:7): [True: 0, False: 1.39k]
  ------------------
 5648|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5649|  1.39k|		if (chk->whoTo) {
  ------------------
  |  Branch (5649:7): [True: 0, False: 1.39k]
  ------------------
 5650|      0|			sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 5651|      0|			chk->whoTo = NULL;
 5652|      0|		}
 5653|  1.39k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  1.39k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  1.39k|	free(element);  \
  |  |  709|  1.39k|}
  ------------------
 5654|  1.39k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  1.39k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  1.39k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5655|       |		/*sa_ignore FREED_MEMORY*/
 5656|  1.39k|	}
 5657|       |	/* sent queue SHOULD be empty */
 5658|  10.1k|	TAILQ_FOREACH_SAFE(chk, &asoc->sent_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  12.9k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 2.80k, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 2.80k, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5659|  2.80k|		if (chk->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|  2.80k|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (5659:7): [True: 2.80k, False: 0]
  ------------------
 5660|  2.80k|			if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (5660:8): [True: 2.80k, False: 0]
  ------------------
 5661|  2.80k|				asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 5662|  2.80k|#ifdef INVARIANTS
 5663|  2.80k|			} else {
 5664|      0|				panic("No chunks on the queues for sid %u.", chk->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5665|      0|#endif
 5666|      0|			}
 5667|  2.80k|		}
 5668|  2.80k|		TAILQ_REMOVE(&asoc->sent_queue, chk, sctp_next);
  ------------------
  |  Branch (5668:3): [True: 217, False: 2.58k]
  |  Branch (5668:3): [Folded, False: 2.80k]
  ------------------
 5669|  2.80k|		if (chk->data) {
  ------------------
  |  Branch (5669:7): [True: 2.80k, False: 0]
  ------------------
 5670|  2.80k|			if (so) {
  ------------------
  |  Branch (5670:8): [True: 0, False: 2.80k]
  ------------------
 5671|       |				/* Still a socket? */
 5672|      0|				sctp_ulp_notify(SCTP_NOTIFY_SENT_DG_FAIL, stcb,
  ------------------
  |  |  707|      0|#define SCTP_NOTIFY_SENT_DG_FAIL                 5
  ------------------
 5673|      0|				                0, chk, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5674|      0|			}
 5675|  2.80k|			if (chk->data) {
  ------------------
  |  Branch (5675:8): [True: 2.80k, False: 0]
  ------------------
 5676|  2.80k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  2.80k|#define sctp_m_freem m_freem
  ------------------
 5677|  2.80k|				chk->data = NULL;
 5678|  2.80k|			}
 5679|  2.80k|		}
 5680|  2.80k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5680:7): [True: 0, False: 2.80k]
  ------------------
 5681|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5682|  2.80k|		sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  2.80k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  2.80k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 2.80k, False: 0]
  |  |  ------------------
  |  |  230|  2.80k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  2.80k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  2.80k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 2.80k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|  2.80k|	} \
  |  |  245|  2.80k|}
  ------------------
 5683|  2.80k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  2.80k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  2.80k|	free(element);  \
  |  |  709|  2.80k|}
  ------------------
 5684|  2.80k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  2.80k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  2.80k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5685|       |		/*sa_ignore FREED_MEMORY*/
 5686|  2.80k|	}
 5687|  10.1k|#ifdef INVARIANTS
 5688|  2.55M|	for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (5688:14): [True: 2.54M, False: 10.1k]
  ------------------
 5689|  2.54M|		if (stcb->asoc.strmout[i].chunks_on_queues > 0) {
  ------------------
  |  Branch (5689:7): [True: 0, False: 2.54M]
  ------------------
 5690|      0|			panic("%u chunks left for stream %u.", stcb->asoc.strmout[i].chunks_on_queues, i);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5691|      0|		}
 5692|  2.54M|	}
 5693|  10.1k|#endif
 5694|       |	/* control queue MAY not be empty */
 5695|  25.2k|	TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  35.4k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 25.2k, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 25.2k, False: 0]
  |  |  ------------------
  |  | 1131|  25.2k|              (var) = (tvar))
  ------------------
 5696|  25.2k|		TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (5696:3): [True: 20.1k, False: 5.09k]
  |  Branch (5696:3): [Folded, False: 25.2k]
  ------------------
 5697|  25.2k|		if (chk->data) {
  ------------------
  |  Branch (5697:7): [True: 25.2k, False: 0]
  ------------------
 5698|  25.2k|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|  25.2k|#define sctp_m_freem m_freem
  ------------------
 5699|  25.2k|			chk->data = NULL;
 5700|  25.2k|		}
 5701|  25.2k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5701:7): [True: 0, False: 25.2k]
  ------------------
 5702|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5703|  25.2k|		sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  25.2k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  25.2k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 11.6k, False: 13.5k]
  |  |  ------------------
  |  |  230|  11.6k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  11.6k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  11.6k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 111, False: 11.5k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|    111|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 111, False: 0]
  |  |  ------------------
  |  |  232|    111|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|    111|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|    111|		RT_LOCK(_rt);					\
  |  |  |  |  128|    111|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|    111|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|    111|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 111, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|    111|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|    111|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|    111|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|    111|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|    111|		_rt = NULL;					\
  |  |  |  |  |  |  125|    111|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 111]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|    111|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 111]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|    111|				(__net)->ro.ro_rt = NULL; \
  |  |  234|    111|			} \
  |  |  235|    111|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 111]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|    111|			(__net)->src_addr_selected = 0; \
  |  |  240|    111|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|    111|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|    111|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|    111|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    111|	free(element);  \
  |  |  |  |  709|    111|}
  |  |  ------------------
  |  |  242|    111|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|    111|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    111|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|    111|		} \
  |  |  244|  11.6k|	} \
  |  |  245|  25.2k|}
  ------------------
 5704|  25.2k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  25.2k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  25.2k|	free(element);  \
  |  |  709|  25.2k|}
  ------------------
 5705|  25.2k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  25.2k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  25.2k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5706|       |		/*sa_ignore FREED_MEMORY*/
 5707|  25.2k|	}
 5708|       |	/* ASCONF queue MAY not be empty */
 5709|  10.1k|	TAILQ_FOREACH_SAFE(chk, &asoc->asconf_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  10.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5710|      0|		TAILQ_REMOVE(&asoc->asconf_send_queue, chk, sctp_next);
  ------------------
  |  Branch (5710:3): [True: 0, False: 0]
  |  Branch (5710:3): [Folded, False: 0]
  ------------------
 5711|      0|		if (chk->data) {
  ------------------
  |  Branch (5711:7): [True: 0, False: 0]
  ------------------
 5712|      0|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5713|      0|			chk->data = NULL;
 5714|      0|		}
 5715|      0|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5715:7): [True: 0, False: 0]
  ------------------
 5716|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5717|      0|		sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 5718|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
 5719|      0|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5720|       |		/*sa_ignore FREED_MEMORY*/
 5721|      0|	}
 5722|  10.1k|	if (asoc->mapping_array) {
  ------------------
  |  Branch (5722:6): [True: 10.1k, False: 0]
  ------------------
 5723|  10.1k|		SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  10.1k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  10.1k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5724|  10.1k|		asoc->mapping_array = NULL;
 5725|  10.1k|	}
 5726|  10.1k|	if (asoc->nr_mapping_array) {
  ------------------
  |  Branch (5726:6): [True: 10.1k, False: 0]
  ------------------
 5727|  10.1k|		SCTP_FREE(asoc->nr_mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  10.1k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  10.1k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5728|  10.1k|		asoc->nr_mapping_array = NULL;
 5729|  10.1k|	}
 5730|       |	/* the stream outs */
 5731|  10.1k|	if (asoc->strmout) {
  ------------------
  |  Branch (5731:6): [True: 10.1k, False: 0]
  ------------------
 5732|  10.1k|		SCTP_FREE(asoc->strmout, SCTP_M_STRMO);
  ------------------
  |  |  679|  10.1k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  10.1k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5733|  10.1k|		asoc->strmout = NULL;
 5734|  10.1k|	}
 5735|  10.1k|	asoc->strm_realoutsize = asoc->streamoutcnt = 0;
 5736|  10.1k|	if (asoc->strmin) {
  ------------------
  |  Branch (5736:6): [True: 8.11k, False: 2.06k]
  ------------------
 5737|  2.03M|		for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (5737:15): [True: 2.02M, False: 8.11k]
  ------------------
 5738|  2.02M|			sctp_clean_up_stream(stcb, &asoc->strmin[i].inqueue);
 5739|  2.02M|			sctp_clean_up_stream(stcb, &asoc->strmin[i].uno_inqueue);
 5740|  2.02M|		}
 5741|  8.11k|		SCTP_FREE(asoc->strmin, SCTP_M_STRMI);
  ------------------
  |  |  679|  8.11k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  8.11k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5742|  8.11k|		asoc->strmin = NULL;
 5743|  8.11k|	}
 5744|  10.1k|	asoc->streamincnt = 0;
 5745|  15.3k|	TAILQ_FOREACH_SAFE(net, &asoc->nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  25.5k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 15.3k, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 15.3k, False: 0]
  |  |  ------------------
  |  | 1131|  15.3k|              (var) = (tvar))
  ------------------
 5746|  15.3k|#ifdef INVARIANTS
 5747|  15.3k|		if (SCTP_BASE_INFO(ipi_count_raddr) == 0) {
  ------------------
  |  |  587|  15.3k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  |  Branch (5747:7): [True: 0, False: 15.3k]
  ------------------
 5748|      0|			panic("no net's left alloc'ed, or list points to itself");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5749|      0|		}
 5750|  15.3k|#endif
 5751|  15.3k|		TAILQ_REMOVE(&asoc->nets, net, sctp_next);
  ------------------
  |  Branch (5751:3): [True: 5.16k, False: 10.1k]
  |  Branch (5751:3): [Folded, False: 15.3k]
  ------------------
 5752|  15.3k|		sctp_free_remote_addr(net);
  ------------------
  |  |  228|  15.3k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  15.3k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 15.3k, False: 0]
  |  |  ------------------
  |  |  230|  15.3k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  15.3k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  15.3k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 13.6k, False: 1.68k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|  13.6k|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 13.6k, False: 0]
  |  |  ------------------
  |  |  232|  13.6k|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|  13.6k|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|  13.6k|		RT_LOCK(_rt);					\
  |  |  |  |  128|  13.6k|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|  13.6k|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|  13.6k|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 13.6k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|  13.6k|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|  13.6k|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|  13.6k|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|  13.6k|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|  13.6k|		_rt = NULL;					\
  |  |  |  |  |  |  125|  13.6k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 13.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|  13.6k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 13.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|  13.6k|				(__net)->ro.ro_rt = NULL; \
  |  |  234|  13.6k|			} \
  |  |  235|  13.6k|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 13.6k]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|  13.6k|			(__net)->src_addr_selected = 0; \
  |  |  240|  13.6k|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|  13.6k|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|  13.6k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|  13.6k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  13.6k|	free(element);  \
  |  |  |  |  709|  13.6k|}
  |  |  ------------------
  |  |  242|  13.6k|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|  13.6k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  13.6k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|  13.6k|		} \
  |  |  244|  15.3k|	} \
  |  |  245|  15.3k|}
  ------------------
 5753|  15.3k|	}
 5754|  10.1k|	LIST_FOREACH_SAFE(laddr, &asoc->sctp_restricted_addrs, sctp_nxt_addr, naddr) {
  ------------------
  |  | 1135|  10.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  10.1k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 0, False: 10.1k]
  |  |  |  Branch (1136:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1137|  10.1k|              (var) = (tvar))
  ------------------
 5755|       |		/*sa_ignore FREED_MEMORY*/
 5756|      0|		sctp_remove_laddr(laddr);
 5757|      0|	}
 5758|       |
 5759|       |	/* pending asconf (address) parameters */
 5760|  10.1k|	TAILQ_FOREACH_SAFE(aparam, &asoc->asconf_queue, next, naparam) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  10.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5761|       |		/*sa_ignore FREED_MEMORY*/
 5762|      0|		TAILQ_REMOVE(&asoc->asconf_queue, aparam, next);
  ------------------
  |  Branch (5762:3): [True: 0, False: 0]
  |  Branch (5762:3): [Folded, False: 0]
  ------------------
 5763|      0|		SCTP_FREE(aparam,SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5764|      0|	}
 5765|  10.1k|	TAILQ_FOREACH_SAFE(aack, &asoc->asconf_ack_sent, next, naack) {
  ------------------
  |  | 1129|  10.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.3k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 1.20k, False: 10.1k]
  |  |  |  Branch (1130:24): [True: 1.20k, False: 0]
  |  |  ------------------
  |  | 1131|  10.1k|              (var) = (tvar))
  ------------------
 5766|       |		/*sa_ignore FREED_MEMORY*/
 5767|  1.20k|		TAILQ_REMOVE(&asoc->asconf_ack_sent, aack, next);
  ------------------
  |  Branch (5767:3): [True: 38, False: 1.16k]
  |  Branch (5767:3): [Folded, False: 1.20k]
  ------------------
 5768|  1.20k|		if (aack->data != NULL) {
  ------------------
  |  Branch (5768:7): [True: 1.20k, False: 0]
  ------------------
 5769|  1.20k|			sctp_m_freem(aack->data);
  ------------------
  |  |   52|  1.20k|#define sctp_m_freem m_freem
  ------------------
 5770|  1.20k|		}
 5771|  1.20k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asconf_ack), aack);
  ------------------
  |  |  707|  1.20k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  1.20k|	free(element);  \
  |  |  709|  1.20k|}
  ------------------
 5772|  1.20k|	}
 5773|       |	/* clean up auth stuff */
 5774|  10.1k|	if (asoc->local_hmacs)
  ------------------
  |  Branch (5774:6): [True: 10.1k, False: 0]
  ------------------
 5775|  10.1k|		sctp_free_hmaclist(asoc->local_hmacs);
 5776|  10.1k|	if (asoc->peer_hmacs)
  ------------------
  |  Branch (5776:6): [True: 7.43k, False: 2.73k]
  ------------------
 5777|  7.43k|		sctp_free_hmaclist(asoc->peer_hmacs);
 5778|       |
 5779|  10.1k|	if (asoc->local_auth_chunks)
  ------------------
  |  Branch (5779:6): [True: 10.1k, False: 0]
  ------------------
 5780|  10.1k|		sctp_free_chunklist(asoc->local_auth_chunks);
 5781|  10.1k|	if (asoc->peer_auth_chunks)
  ------------------
  |  Branch (5781:6): [True: 7.55k, False: 2.62k]
  ------------------
 5782|  7.55k|		sctp_free_chunklist(asoc->peer_auth_chunks);
 5783|       |
 5784|  10.1k|	sctp_free_authinfo(&asoc->authinfo);
 5785|       |
 5786|  10.1k|	LIST_FOREACH_SAFE(shared_key, &asoc->shared_keys, next, nshared_key) {
  ------------------
  |  | 1135|  10.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  20.3k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 10.1k, False: 10.1k]
  |  |  |  Branch (1136:24): [True: 10.1k, False: 0]
  |  |  ------------------
  |  | 1137|  10.1k|              (var) = (tvar))
  ------------------
 5787|  10.1k|		LIST_REMOVE(shared_key, next);
  ------------------
  |  Branch (5787:3): [True: 0, False: 10.1k]
  |  Branch (5787:3): [Folded, False: 10.1k]
  ------------------
 5788|  10.1k|		sctp_free_sharedkey(shared_key);
 5789|       |		/*sa_ignore FREED_MEMORY*/
 5790|  10.1k|	}
 5791|       |
 5792|       |	/* Insert new items here :> */
 5793|       |
 5794|       |	/* Get rid of LOCK */
 5795|  10.1k|	SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  10.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5796|  10.1k|	SCTP_TCB_LOCK_DESTROY(stcb);
  ------------------
  |  |  456|  10.1k|	(void)pthread_mutex_destroy(&(_tcb)->tcb_mtx)
  ------------------
 5797|  10.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  10.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5797:6): [True: 1.67k, False: 8.50k]
  ------------------
 5798|  1.67k|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  1.67k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5799|  1.67k|		SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|  1.67k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.67k|	do {                         \
  |  |  |  |  113|  1.67k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.67k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5800|  1.67k|	}
 5801|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5802|       |	/* TEMP CODE */
 5803|       |	stcb->freed_from_where = from_location;
 5804|       |#endif
 5805|       |#ifdef SCTP_TRACK_FREED_ASOCS
 5806|       |	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
 5807|       |		/* now clean up the tasoc itself */
 5808|       |		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
 5809|       |		SCTP_DECR_ASOC_COUNT();
 5810|       |	} else {
 5811|       |		LIST_INSERT_HEAD(&inp->sctp_asoc_free_list, stcb, sctp_tcblist);
 5812|       |	}
 5813|       |#else
 5814|  10.1k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
  ------------------
  |  |  707|  10.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  10.1k|	free(element);  \
  |  |  709|  10.1k|}
  ------------------
 5815|  10.1k|	SCTP_DECR_ASOC_COUNT();
  ------------------
  |  |  661|  10.1k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_asoc), 1)
  |  |  ------------------
  |  |  |  |   97|  10.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5816|  10.1k|#endif
 5817|  10.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  10.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5817:6): [True: 1.67k, False: 8.50k]
  ------------------
 5818|  1.67k|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  1.67k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5818:7): [True: 24, False: 1.64k]
  ------------------
 5819|       |			/* If its NOT the inp_free calling us AND
 5820|       |			 * sctp_close as been called, we
 5821|       |			 * call back...
 5822|       |			 */
 5823|     24|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|     24|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     24|	do {                         \
  |  |  |  |  113|     24|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     24|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5824|       |			/* This will start the kill timer (if we are
 5825|       |			 * the last one) since we hold an increment yet. But
 5826|       |			 * this is the only safe way to do this
 5827|       |			 * since otherwise if the socket closes
 5828|       |			 * at the same time we are here we might
 5829|       |			 * collide in the cleanup.
 5830|       |			 */
 5831|     24|			sctp_inpcb_free(inp,
 5832|     24|					SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE,
  ------------------
  |  |  870|     24|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
 5833|     24|					SCTP_CALLED_DIRECTLY_NOCMPSET);
  ------------------
  |  |  865|     24|#define SCTP_CALLED_DIRECTLY_NOCMPSET     0
  ------------------
 5834|     24|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|     24|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|     24|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5835|  1.64k|		} else {
 5836|       |			/* The socket is still open. */
 5837|  1.64k|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  1.64k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  1.64k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5838|  1.64k|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|  1.64k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.64k|	do {                         \
  |  |  |  |  113|  1.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.64k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5839|  1.64k|		}
 5840|  1.67k|	}
 5841|       |	/* destroyed the asoc */
 5842|       |#ifdef SCTP_LOG_CLOSING
 5843|       |	sctp_log_closing(inp, NULL, 11);
 5844|       |#endif
 5845|  10.1k|	return (1);
 5846|  10.1k|}
sctp_pcb_init:
 6407|      1|{
 6408|       |	/*
 6409|       |	 * SCTP initialization for the PCB structures should be called by
 6410|       |	 * the sctp_init() function.
 6411|       |	 */
 6412|      1|	int i;
 6413|      1|	struct timeval tv;
 6414|       |
 6415|      1|	if (SCTP_BASE_VAR(sctp_pcb_initialized) != 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (6415:6): [True: 0, False: 1]
  ------------------
 6416|       |		/* error I was called twice */
 6417|      0|		return;
 6418|      0|	}
 6419|      1|	SCTP_BASE_VAR(sctp_pcb_initialized) = 1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 6420|       |
 6421|      1|#if defined(SCTP_PROCESS_LEVEL_LOCKS)
 6422|      1|#if !defined(_WIN32)
 6423|      1|	pthread_mutexattr_init(&SCTP_BASE_VAR(mtx_attr));
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 6424|      1|	pthread_rwlockattr_init(&SCTP_BASE_VAR(rwlock_attr));
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 6425|      1|#ifdef INVARIANTS
 6426|      1|	pthread_mutexattr_settype(&SCTP_BASE_VAR(mtx_attr), PTHREAD_MUTEX_ERRORCHECK);
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 6427|      1|#endif
 6428|      1|#endif
 6429|      1|#endif
 6430|       |#if defined(SCTP_LOCAL_TRACE_BUF)
 6431|       |#if defined(_WIN32) && !defined(__Userspace__)
 6432|       |	if (SCTP_BASE_SYSCTL(sctp_log) != NULL) {
 6433|       |		memset(SCTP_BASE_SYSCTL(sctp_log), 0, sizeof(struct sctp_log));
 6434|       |	}
 6435|       |#else
 6436|       |	memset(&SCTP_BASE_SYSCTL(sctp_log), 0, sizeof(struct sctp_log));
 6437|       |#endif
 6438|       |#endif
 6439|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6440|       |#if defined(SMP) && defined(SCTP_USE_PERCPU_STAT)
 6441|       |	SCTP_MALLOC(SCTP_BASE_STATS, struct sctpstat *,
 6442|       |		    ((mp_maxid+1) * sizeof(struct sctpstat)),
 6443|       |		    SCTP_M_MCORE);
 6444|       |#endif
 6445|       |#endif
 6446|      1|	(void)SCTP_GETTIME_TIMEVAL(&tv);
  ------------------
  |  |  991|      1|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 6447|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6448|       |#if defined(SMP) && defined(SCTP_USE_PERCPU_STAT)
 6449|       |	memset(SCTP_BASE_STATS, 0, sizeof(struct sctpstat) * (mp_maxid+1));
 6450|       |	SCTP_BASE_STATS[PCPU_GET(cpuid)].sctps_discontinuitytime.tv_sec = (uint32_t)tv.tv_sec;
 6451|       |	SCTP_BASE_STATS[PCPU_GET(cpuid)].sctps_discontinuitytime.tv_usec = (uint32_t)tv.tv_usec;
 6452|       |#else
 6453|       |	memset(&SCTP_BASE_STATS, 0, sizeof(struct sctpstat));
 6454|       |	SCTP_BASE_STAT(sctps_discontinuitytime).tv_sec = (uint32_t)tv.tv_sec;
 6455|       |	SCTP_BASE_STAT(sctps_discontinuitytime).tv_usec = (uint32_t)tv.tv_usec;
 6456|       |#endif
 6457|       |#else
 6458|      1|	memset(&SCTP_BASE_STATS, 0, sizeof(struct sctpstat));
  ------------------
  |  |  588|      1|#define SCTP_BASE_STATS system_base_info.sctpstat
  ------------------
 6459|      1|	SCTP_BASE_STAT(sctps_discontinuitytime).tv_sec = (uint32_t)tv.tv_sec;
  ------------------
  |  |  589|      1|#define SCTP_BASE_STAT(__m)     system_base_info.sctpstat.__m
  ------------------
 6460|      1|	SCTP_BASE_STAT(sctps_discontinuitytime).tv_usec = (uint32_t)tv.tv_usec;
  ------------------
  |  |  589|      1|#define SCTP_BASE_STAT(__m)     system_base_info.sctpstat.__m
  ------------------
 6461|      1|#endif
 6462|       |	/* init the empty list of (All) Endpoints */
 6463|      1|	LIST_INIT(&SCTP_BASE_INFO(listhead));
  ------------------
  |  Branch (6463:2): [Folded, False: 1]
  ------------------
 6464|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6465|       |	LIST_INIT(&SCTP_BASE_INFO(inplisthead));
 6466|       |#if defined(APPLE_LEOPARD) || defined(APPLE_SNOWLEOPARD) || defined(APPLE_LION) || defined(APPLE_MOUNTAINLION)
 6467|       |	SCTP_BASE_INFO(sctbinfo).listhead = &SCTP_BASE_INFO(inplisthead);
 6468|       |	SCTP_BASE_INFO(sctbinfo).mtx_grp_attr = lck_grp_attr_alloc_init();
 6469|       |	lck_grp_attr_setdefault(SCTP_BASE_INFO(sctbinfo).mtx_grp_attr);
 6470|       |	SCTP_BASE_INFO(sctbinfo).mtx_grp = lck_grp_alloc_init("sctppcb", SCTP_BASE_INFO(sctbinfo).mtx_grp_attr);
 6471|       |	SCTP_BASE_INFO(sctbinfo).mtx_attr = lck_attr_alloc_init();
 6472|       |	lck_attr_setdefault(SCTP_BASE_INFO(sctbinfo).mtx_attr);
 6473|       |#else
 6474|       |	SCTP_BASE_INFO(sctbinfo).ipi_listhead = &SCTP_BASE_INFO(inplisthead);
 6475|       |	SCTP_BASE_INFO(sctbinfo).ipi_lock_grp_attr = lck_grp_attr_alloc_init();
 6476|       |	lck_grp_attr_setdefault(SCTP_BASE_INFO(sctbinfo).ipi_lock_grp_attr);
 6477|       |	SCTP_BASE_INFO(sctbinfo).ipi_lock_grp = lck_grp_alloc_init("sctppcb", SCTP_BASE_INFO(sctbinfo).ipi_lock_grp_attr);
 6478|       |	SCTP_BASE_INFO(sctbinfo).ipi_lock_attr = lck_attr_alloc_init();
 6479|       |	lck_attr_setdefault(SCTP_BASE_INFO(sctbinfo).ipi_lock_attr);
 6480|       |#endif
 6481|       |#if !defined(APPLE_LEOPARD) && !defined(APPLE_SNOWLEOPARD) && !defined(APPLE_LION) && !defined(APPLE_MOUNTAINLION)
 6482|       |	SCTP_BASE_INFO(sctbinfo).ipi_gc = sctp_gc;
 6483|       |	in_pcbinfo_attach(&SCTP_BASE_INFO(sctbinfo));
 6484|       |#endif
 6485|       |#endif
 6486|       |
 6487|       |	/* init the hash table of endpoints */
 6488|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6489|       |	TUNABLE_INT_FETCH("net.inet.sctp.tcbhashsize", &SCTP_BASE_SYSCTL(sctp_hashtblsize));
 6490|       |	TUNABLE_INT_FETCH("net.inet.sctp.pcbhashsize", &SCTP_BASE_SYSCTL(sctp_pcbtblsize));
 6491|       |	TUNABLE_INT_FETCH("net.inet.sctp.chunkscale", &SCTP_BASE_SYSCTL(sctp_chunkscale));
 6492|       |	VALIDATE_LOADER_TUNABLE(sctp_hashtblsize, SCTPCTL_TCBHASHSIZE);
 6493|       |	VALIDATE_LOADER_TUNABLE(sctp_pcbtblsize, SCTPCTL_PCBHASHSIZE);
 6494|       |	VALIDATE_LOADER_TUNABLE(sctp_chunkscale, SCTPCTL_CHUNKSCALE);
 6495|       |#endif
 6496|      1|	SCTP_BASE_INFO(sctp_asochash) = SCTP_HASH_INIT((SCTP_BASE_SYSCTL(sctp_hashtblsize) * 31),
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	SCTP_BASE_INFO(sctp_asochash) = SCTP_HASH_INIT((SCTP_BASE_SYSCTL(sctp_hashtblsize) * 31),
  ------------------
  |  |  765|      1|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|      1|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 6497|      1|						       &SCTP_BASE_INFO(hashasocmark));
 6498|      1|	SCTP_BASE_INFO(sctp_ephash) = SCTP_HASH_INIT(SCTP_BASE_SYSCTL(sctp_hashtblsize),
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	SCTP_BASE_INFO(sctp_ephash) = SCTP_HASH_INIT(SCTP_BASE_SYSCTL(sctp_hashtblsize),
  ------------------
  |  |  765|      1|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|      1|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 6499|      1|						     &SCTP_BASE_INFO(hashmark));
 6500|      1|	SCTP_BASE_INFO(sctp_tcpephash) = SCTP_HASH_INIT(SCTP_BASE_SYSCTL(sctp_hashtblsize),
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	SCTP_BASE_INFO(sctp_tcpephash) = SCTP_HASH_INIT(SCTP_BASE_SYSCTL(sctp_hashtblsize),
  ------------------
  |  |  765|      1|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|      1|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 6501|      1|							&SCTP_BASE_INFO(hashtcpmark));
 6502|      1|	SCTP_BASE_INFO(hashtblsize) = SCTP_BASE_SYSCTL(sctp_hashtblsize);
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	SCTP_BASE_INFO(hashtblsize) = SCTP_BASE_SYSCTL(sctp_hashtblsize);
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 6503|      1|	SCTP_BASE_INFO(sctp_vrfhash) = SCTP_HASH_INIT(SCTP_SIZE_OF_VRF_HASH,
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	SCTP_BASE_INFO(sctp_vrfhash) = SCTP_HASH_INIT(SCTP_SIZE_OF_VRF_HASH,
  ------------------
  |  |  765|      1|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|      1|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 6504|      1|						      &SCTP_BASE_INFO(hashvrfmark));
 6505|       |
 6506|      1|	SCTP_BASE_INFO(vrf_ifn_hash) = SCTP_HASH_INIT(SCTP_VRF_IFN_HASH_SIZE,
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	SCTP_BASE_INFO(vrf_ifn_hash) = SCTP_HASH_INIT(SCTP_VRF_IFN_HASH_SIZE,
  ------------------
  |  |  765|      1|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|      1|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 6507|      1|						      &SCTP_BASE_INFO(vrf_ifn_hashmark));
 6508|       |	/* init the zones */
 6509|       |	/*
 6510|       |	 * FIX ME: Should check for NULL returns, but if it does fail we are
 6511|       |	 * doomed to panic anyways... add later maybe.
 6512|       |	 */
 6513|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_ep), "sctp_ep",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6514|      1|		       sizeof(struct sctp_inpcb), maxsockets);
 6515|       |
 6516|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_asoc), "sctp_asoc",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6517|      1|		       sizeof(struct sctp_tcb), sctp_max_number_of_assoc);
 6518|       |
 6519|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_laddr), "sctp_laddr",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6520|      1|		       sizeof(struct sctp_laddr),
 6521|      1|		       (sctp_max_number_of_assoc * sctp_scale_up_for_address));
 6522|       |
 6523|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_net), "sctp_raddr",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6524|      1|		       sizeof(struct sctp_nets),
 6525|      1|		       (sctp_max_number_of_assoc * sctp_scale_up_for_address));
 6526|       |
 6527|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_chunk), "sctp_chunk",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6528|      1|		       sizeof(struct sctp_tmit_chunk),
 6529|      1|		       (sctp_max_number_of_assoc * SCTP_BASE_SYSCTL(sctp_chunkscale)));
 6530|       |
 6531|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_readq), "sctp_readq",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6532|      1|		       sizeof(struct sctp_queued_to_read),
 6533|      1|		       (sctp_max_number_of_assoc * SCTP_BASE_SYSCTL(sctp_chunkscale)));
 6534|       |
 6535|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_strmoq), "sctp_stream_msg_out",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6536|      1|		       sizeof(struct sctp_stream_queue_pending),
 6537|      1|		       (sctp_max_number_of_assoc * SCTP_BASE_SYSCTL(sctp_chunkscale)));
 6538|       |
 6539|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_asconf), "sctp_asconf",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6540|      1|		       sizeof(struct sctp_asconf),
 6541|      1|		       (sctp_max_number_of_assoc * SCTP_BASE_SYSCTL(sctp_chunkscale)));
 6542|       |
 6543|      1|	SCTP_ZONE_INIT(SCTP_BASE_INFO(ipi_zone_asconf_ack), "sctp_asconf_ack",
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
 6544|      1|		       sizeof(struct sctp_asconf_ack),
 6545|      1|		       (sctp_max_number_of_assoc * SCTP_BASE_SYSCTL(sctp_chunkscale)));
 6546|       |
 6547|       |	/* Master Lock INIT for info structure */
 6548|      1|	SCTP_INP_INFO_LOCK_INIT();
  ------------------
  |  |  290|      1|	(void)pthread_rwlock_init(&SCTP_BASE_INFO(ipi_ep_mtx), &SCTP_BASE_VAR(rwlock_attr))
  |  |  ------------------
  |  |  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               	(void)pthread_rwlock_init(&SCTP_BASE_INFO(ipi_ep_mtx), &SCTP_BASE_VAR(rwlock_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 6549|      1|	SCTP_STATLOG_INIT_LOCK();
 6550|       |
 6551|      1|	SCTP_IPI_COUNT_INIT();
 6552|      1|	SCTP_IPI_ADDR_INIT();
  ------------------
  |  |  592|      1|	(void)pthread_rwlock_init(&SCTP_BASE_INFO(ipi_addr_mtx), &SCTP_BASE_VAR(rwlock_attr))
  |  |  ------------------
  |  |  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               	(void)pthread_rwlock_init(&SCTP_BASE_INFO(ipi_addr_mtx), &SCTP_BASE_VAR(rwlock_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 6553|       |#ifdef SCTP_PACKET_LOGGING
 6554|       |	SCTP_IP_PKTLOG_INIT();
 6555|       |#endif
 6556|      1|	LIST_INIT(&SCTP_BASE_INFO(addr_wq));
  ------------------
  |  Branch (6556:2): [Folded, False: 1]
  ------------------
 6557|       |
 6558|      1|	SCTP_WQ_ADDR_INIT();
  ------------------
  |  |  272|      1|	(void)pthread_mutex_init(&SCTP_BASE_INFO(wq_addr_mtx), &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               	(void)pthread_mutex_init(&SCTP_BASE_INFO(wq_addr_mtx), &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 6559|       |	/* not sure if we need all the counts */
 6560|      1|	SCTP_BASE_INFO(ipi_count_ep) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6561|       |	/* assoc/tcb zone info */
 6562|      1|	SCTP_BASE_INFO(ipi_count_asoc) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6563|       |	/* local addrlist zone info */
 6564|      1|	SCTP_BASE_INFO(ipi_count_laddr) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6565|       |	/* remote addrlist zone info */
 6566|      1|	SCTP_BASE_INFO(ipi_count_raddr) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6567|       |	/* chunk info */
 6568|      1|	SCTP_BASE_INFO(ipi_count_chunk) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6569|       |
 6570|       |	/* socket queue zone info */
 6571|      1|	SCTP_BASE_INFO(ipi_count_readq) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6572|       |
 6573|       |	/* stream out queue cont */
 6574|      1|	SCTP_BASE_INFO(ipi_count_strmoq) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6575|       |
 6576|      1|	SCTP_BASE_INFO(ipi_free_strmoq) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6577|      1|	SCTP_BASE_INFO(ipi_free_chunks) = 0;
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6578|       |
 6579|      1|	SCTP_OS_TIMER_INIT(&SCTP_BASE_INFO(addr_wq_timer.timer));
  ------------------
  |  |   92|      1|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
              	SCTP_OS_TIMER_INIT(&SCTP_BASE_INFO(addr_wq_timer.timer));
  ------------------
  |  |  587|      1|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 6580|       |
 6581|       |	/* Init the TIMEWAIT list */
 6582|     33|	for (i = 0; i < SCTP_STACK_VTAG_HASH_SIZE; i++) {
  ------------------
  |  |  924|     33|#define SCTP_STACK_VTAG_HASH_SIZE   32
  ------------------
  |  Branch (6582:14): [True: 32, False: 1]
  ------------------
 6583|     32|		LIST_INIT(&SCTP_BASE_INFO(vtag_timewait)[i]);
  ------------------
  |  Branch (6583:3): [Folded, False: 32]
  ------------------
 6584|     32|	}
 6585|      1|#if defined(SCTP_PROCESS_LEVEL_LOCKS)
 6586|       |#if defined(_WIN32)
 6587|       |	InitializeConditionVariable(&sctp_it_ctl.iterator_wakeup);
 6588|       |#else
 6589|      1|	(void)pthread_cond_init(&sctp_it_ctl.iterator_wakeup, NULL);
 6590|      1|#endif
 6591|      1|#endif
 6592|      1|	sctp_startup_iterator();
 6593|       |
 6594|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6595|       |#if defined(SCTP_MCORE_INPUT) && defined(SMP)
 6596|       |	sctp_startup_mcore_threads();
 6597|       |#endif
 6598|       |#endif
 6599|       |
 6600|       |	/*
 6601|       |	 * INIT the default VRF which for BSD is the only one, other O/S's
 6602|       |	 * may have more. But initially they must start with one and then
 6603|       |	 * add the VRF's as addresses are added.
 6604|       |	 */
 6605|      1|	sctp_init_vrf_list(SCTP_DEFAULT_VRF);
  ------------------
  |  |   81|      1|#define SCTP_DEFAULT_VRF 0
  ------------------
 6606|       |#if defined(__FreeBSD__) && !defined(__Userspace__) && defined(SCTP_NOT_YET)
 6607|       |	if (ip_register_flow_handler(sctp_netisr_hdlr, IPPROTO_SCTP)) {
 6608|       |		SCTP_PRINTF("***SCTP- Error can't register netisr handler***\n");
 6609|       |	}
 6610|       |#endif
 6611|      1|#if defined(_SCTP_NEEDS_CALLOUT_) || defined(_USER_SCTP_NEEDS_CALLOUT_)
 6612|       |	/* allocate the lock for the callout/timer queue */
 6613|      1|	SCTP_TIMERQ_LOCK_INIT();
  ------------------
  |  |   64|      1|#define SCTP_TIMERQ_LOCK_INIT()     (void)pthread_mutex_init(&SCTP_BASE_VAR(timer_mtx), &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |               #define SCTP_TIMERQ_LOCK_INIT()     (void)pthread_mutex_init(&SCTP_BASE_VAR(timer_mtx), &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 6614|      1|	TAILQ_INIT(&SCTP_BASE_INFO(callqueue));
  ------------------
  |  Branch (6614:2): [Folded, False: 1]
  ------------------
 6615|      1|#endif
 6616|      1|#if defined(__Userspace__)
 6617|      1|	mbuf_initialize(NULL);
 6618|      1|	atomic_init();
 6619|      1|#if defined(INET) || defined(INET6)
 6620|      1|	if (start_threads)
  ------------------
  |  Branch (6620:6): [True: 1, False: 0]
  ------------------
 6621|      1|		recv_thread_init();
 6622|      1|#endif
 6623|      1|#endif
 6624|      1|}
sctp_load_addresses_from_init:
 6873|  8.11k|{
 6874|       |	/*
 6875|       |	 * grub through the INIT pulling addresses and loading them to the
 6876|       |	 * nets structure in the asoc. The from address in the mbuf should
 6877|       |	 * also be loaded (if it is not already). This routine can be called
 6878|       |	 * with either INIT or INIT-ACK's as long as the m points to the IP
 6879|       |	 * packet and the offset points to the beginning of the parameters.
 6880|       |	 */
 6881|  8.11k|	struct sctp_inpcb *inp;
 6882|  8.11k|	struct sctp_nets *net, *nnet, *net_tmp;
 6883|  8.11k|	struct sctp_paramhdr *phdr, param_buf;
 6884|  8.11k|	struct sctp_tcb *stcb_tmp;
 6885|  8.11k|	uint16_t ptype, plen;
 6886|  8.11k|	struct sockaddr *sa;
 6887|  8.11k|	uint8_t random_store[SCTP_PARAM_BUFFER_SIZE];
 6888|  8.11k|	struct sctp_auth_random *p_random = NULL;
 6889|  8.11k|	uint16_t random_len = 0;
 6890|  8.11k|	uint8_t hmacs_store[SCTP_PARAM_BUFFER_SIZE];
 6891|  8.11k|	struct sctp_auth_hmac_algo *hmacs = NULL;
 6892|  8.11k|	uint16_t hmacs_len = 0;
 6893|  8.11k|	uint8_t saw_asconf = 0;
 6894|  8.11k|	uint8_t saw_asconf_ack = 0;
 6895|  8.11k|	uint8_t chunks_store[SCTP_PARAM_BUFFER_SIZE];
 6896|  8.11k|	struct sctp_auth_chunk_list *chunks = NULL;
 6897|  8.11k|	uint16_t num_chunks = 0;
 6898|  8.11k|	sctp_key_t *new_key;
 6899|  8.11k|	uint32_t keylen;
 6900|  8.11k|	int got_random = 0, got_hmacs = 0, got_chklist = 0;
 6901|  8.11k|	uint8_t peer_supports_ecn;
 6902|  8.11k|	uint8_t peer_supports_prsctp;
 6903|  8.11k|	uint8_t peer_supports_auth;
 6904|  8.11k|	uint8_t peer_supports_asconf;
 6905|  8.11k|	uint8_t peer_supports_asconf_ack;
 6906|  8.11k|	uint8_t peer_supports_reconfig;
 6907|  8.11k|	uint8_t peer_supports_nrsack;
 6908|  8.11k|	uint8_t peer_supports_pktdrop;
 6909|  8.11k|	uint8_t peer_supports_idata;
 6910|  8.11k|#ifdef INET
 6911|  8.11k|	struct sockaddr_in sin;
 6912|  8.11k|#endif
 6913|  8.11k|#ifdef INET6
 6914|  8.11k|	struct sockaddr_in6 sin6;
 6915|  8.11k|#endif
 6916|       |
 6917|       |	/* First get the destination address setup too. */
 6918|  8.11k|#ifdef INET
 6919|  8.11k|	memset(&sin, 0, sizeof(sin));
 6920|  8.11k|	sin.sin_family = AF_INET;
 6921|       |#ifdef HAVE_SIN_LEN
 6922|       |	sin.sin_len = sizeof(sin);
 6923|       |#endif
 6924|  8.11k|	sin.sin_port = stcb->rport;
 6925|  8.11k|#endif
 6926|  8.11k|#ifdef INET6
 6927|  8.11k|	memset(&sin6, 0, sizeof(sin6));
 6928|  8.11k|	sin6.sin6_family = AF_INET6;
 6929|       |#ifdef HAVE_SIN6_LEN
 6930|       |	sin6.sin6_len = sizeof(struct sockaddr_in6);
 6931|       |#endif
 6932|  8.11k|	sin6.sin6_port = stcb->rport;
 6933|  8.11k|#endif
 6934|  8.11k|	if (altsa) {
  ------------------
  |  Branch (6934:6): [True: 0, False: 8.11k]
  ------------------
 6935|      0|		sa = altsa;
 6936|  8.11k|	} else {
 6937|  8.11k|		sa = src;
 6938|  8.11k|	}
 6939|  8.11k|	peer_supports_idata = 0;
 6940|  8.11k|	peer_supports_ecn = 0;
 6941|  8.11k|	peer_supports_prsctp = 0;
 6942|  8.11k|	peer_supports_auth = 0;
 6943|  8.11k|	peer_supports_asconf = 0;
 6944|  8.11k|	peer_supports_asconf_ack = 0;
 6945|  8.11k|	peer_supports_reconfig = 0;
 6946|  8.11k|	peer_supports_nrsack = 0;
 6947|  8.11k|	peer_supports_pktdrop = 0;
 6948|  8.11k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6948:2): [True: 8.11k, False: 8.11k]
  ------------------
 6949|       |		/* mark all addresses that we have currently on the list */
 6950|  8.11k|		net->dest_state |= SCTP_ADDR_NOT_IN_ASSOC;
  ------------------
  |  |  485|  8.11k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 6951|  8.11k|	}
 6952|       |	/* does the source address already exist? if so skip it */
 6953|  8.11k|	inp = stcb->sctp_ep;
 6954|  8.11k|	atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  8.11k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6955|  8.11k|	stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net_tmp, dst, stcb);
 6956|  8.11k|	atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  8.11k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6957|       |
 6958|  8.11k|	if ((stcb_tmp == NULL && inp == stcb->sctp_ep) || inp == NULL) {
  ------------------
  |  Branch (6958:7): [True: 0, False: 8.11k]
  |  Branch (6958:27): [True: 0, False: 0]
  |  Branch (6958:52): [True: 0, False: 8.11k]
  ------------------
 6959|       |		/* we must add the source address */
 6960|       |		/* no scope set here since we have a tcb already. */
 6961|      0|		switch (sa->sa_family) {
 6962|      0|#ifdef INET
 6963|      0|		case AF_INET:
  ------------------
  |  Branch (6963:3): [True: 0, False: 0]
  ------------------
 6964|      0|			if (stcb->asoc.scope.ipv4_addr_legal) {
  ------------------
  |  Branch (6964:8): [True: 0, False: 0]
  ------------------
 6965|      0|				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_2)) {
  ------------------
  |  |  822|      0|#define SCTP_DONOT_SETSCOPE 0
  ------------------
              				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_2)) {
  ------------------
  |  |  817|      0|#define SCTP_LOAD_ADDR_2 2
  ------------------
  |  Branch (6965:9): [True: 0, False: 0]
  ------------------
 6966|      0|					return (-1);
 6967|      0|				}
 6968|      0|			}
 6969|      0|			break;
 6970|      0|#endif
 6971|      0|#ifdef INET6
 6972|      0|		case AF_INET6:
  ------------------
  |  Branch (6972:3): [True: 0, False: 0]
  ------------------
 6973|      0|			if (stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (6973:8): [True: 0, False: 0]
  ------------------
 6974|      0|				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_3)) {
  ------------------
  |  |  822|      0|#define SCTP_DONOT_SETSCOPE 0
  ------------------
              				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_3)) {
  ------------------
  |  |  818|      0|#define SCTP_LOAD_ADDR_3 3
  ------------------
  |  Branch (6974:9): [True: 0, False: 0]
  ------------------
 6975|      0|					return (-2);
 6976|      0|				}
 6977|      0|			}
 6978|      0|			break;
 6979|      0|#endif
 6980|      0|#if defined(__Userspace__)
 6981|      0|		case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (6981:3): [True: 0, False: 0]
  ------------------
 6982|      0|			if (stcb->asoc.scope.conn_addr_legal) {
  ------------------
  |  Branch (6982:8): [True: 0, False: 0]
  ------------------
 6983|      0|				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_3)) {
  ------------------
  |  |  822|      0|#define SCTP_DONOT_SETSCOPE 0
  ------------------
              				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_3)) {
  ------------------
  |  |  818|      0|#define SCTP_LOAD_ADDR_3 3
  ------------------
  |  Branch (6983:9): [True: 0, False: 0]
  ------------------
 6984|      0|					return (-2);
 6985|      0|				}
 6986|      0|			}
 6987|      0|			break;
 6988|      0|#endif
 6989|      0|		default:
  ------------------
  |  Branch (6989:3): [True: 0, False: 0]
  ------------------
 6990|      0|			break;
 6991|      0|		}
 6992|  8.11k|	} else {
 6993|  8.11k|		if (net_tmp != NULL && stcb_tmp == stcb) {
  ------------------
  |  Branch (6993:7): [True: 8.11k, False: 0]
  |  Branch (6993:26): [True: 8.11k, False: 0]
  ------------------
 6994|  8.11k|			net_tmp->dest_state &= ~SCTP_ADDR_NOT_IN_ASSOC;
  ------------------
  |  |  485|  8.11k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 6995|  8.11k|		} else if (stcb_tmp != stcb) {
  ------------------
  |  Branch (6995:14): [True: 0, False: 0]
  ------------------
 6996|       |			/* It belongs to another association? */
 6997|      0|			if (stcb_tmp)
  ------------------
  |  Branch (6997:8): [True: 0, False: 0]
  ------------------
 6998|      0|				SCTP_TCB_UNLOCK(stcb_tmp);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6999|      0|			return (-3);
 7000|      0|		}
 7001|  8.11k|	}
 7002|  8.11k|	if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7002:6): [True: 0, False: 8.11k]
  ------------------
 7003|       |		/* the assoc was freed? */
 7004|      0|		return (-4);
 7005|      0|	}
 7006|       |	/* now we must go through each of the params. */
 7007|  8.11k|	phdr = sctp_get_next_param(m, offset, &param_buf, sizeof(param_buf));
 7008|   122k|	while (phdr) {
  ------------------
  |  Branch (7008:9): [True: 122k, False: 159]
  ------------------
 7009|   122k|		ptype = ntohs(phdr->param_type);
 7010|   122k|		plen = ntohs(phdr->param_length);
 7011|       |		/*
 7012|       |		 * SCTP_PRINTF("ptype => %0x, plen => %d\n", (uint32_t)ptype,
 7013|       |		 * (int)plen);
 7014|       |		 */
 7015|   122k|		if (offset + plen > limit) {
  ------------------
  |  Branch (7015:7): [True: 22, False: 122k]
  ------------------
 7016|     22|			break;
 7017|     22|		}
 7018|   122k|		if (plen < sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (7018:7): [True: 4, False: 122k]
  ------------------
 7019|      4|			break;
 7020|      4|		}
 7021|   122k|#ifdef INET
 7022|   122k|		if (ptype == SCTP_IPV4_ADDRESS) {
  ------------------
  |  |  394|   122k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (7022:7): [True: 166, False: 122k]
  ------------------
 7023|    166|			if (stcb->asoc.scope.ipv4_addr_legal) {
  ------------------
  |  Branch (7023:8): [True: 0, False: 166]
  ------------------
 7024|      0|				struct sctp_ipv4addr_param *p4, p4_buf;
 7025|       |
 7026|       |				/* ok get the v4 address and check/add */
 7027|      0|				phdr = sctp_get_next_param(m, offset,
 7028|      0|							   (struct sctp_paramhdr *)&p4_buf,
 7029|      0|							   sizeof(p4_buf));
 7030|      0|				if (plen != sizeof(struct sctp_ipv4addr_param) ||
  ------------------
  |  Branch (7030:9): [True: 0, False: 0]
  ------------------
 7031|      0|				    phdr == NULL) {
  ------------------
  |  Branch (7031:9): [True: 0, False: 0]
  ------------------
 7032|      0|					return (-5);
 7033|      0|				}
 7034|      0|				p4 = (struct sctp_ipv4addr_param *)phdr;
 7035|      0|				sin.sin_addr.s_addr = p4->addr;
 7036|      0|				if (IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) {
  ------------------
  |  Branch (7036:9): [True: 0, False: 0]
  ------------------
 7037|       |					/* Skip multi-cast addresses */
 7038|      0|					goto next_param;
 7039|      0|				}
 7040|      0|				if (in_broadcast(sin.sin_addr)) {
  ------------------
  |  Branch (7040:9): [True: 0, False: 0]
  ------------------
 7041|      0|					goto next_param;
 7042|      0|				}
 7043|      0|				sa = (struct sockaddr *)&sin;
 7044|      0|				inp = stcb->sctp_ep;
 7045|      0|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 7046|      0|				stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net,
 7047|      0|									dst, stcb);
 7048|      0|				atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 7049|       |
 7050|      0|				if ((stcb_tmp == NULL && inp == stcb->sctp_ep) ||
  ------------------
  |  Branch (7050:10): [True: 0, False: 0]
  |  Branch (7050:30): [True: 0, False: 0]
  ------------------
 7051|      0|				    inp == NULL) {
  ------------------
  |  Branch (7051:9): [True: 0, False: 0]
  ------------------
 7052|       |					/* we must add the source address */
 7053|       |					/*
 7054|       |					 * no scope set since we have a tcb
 7055|       |					 * already
 7056|       |					 */
 7057|       |
 7058|       |					/*
 7059|       |					 * we must validate the state again
 7060|       |					 * here
 7061|       |					 */
 7062|      0|				add_it_now:
 7063|      0|					if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7063:10): [True: 0, False: 0]
  ------------------
 7064|       |						/* the assoc was freed? */
 7065|      0|						return (-7);
 7066|      0|					}
 7067|      0|					if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_4)) {
  ------------------
  |  |  822|      0|#define SCTP_DONOT_SETSCOPE 0
  ------------------
              					if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_4)) {
  ------------------
  |  |  819|      0|#define SCTP_LOAD_ADDR_4 4
  ------------------
  |  Branch (7067:10): [True: 0, False: 0]
  ------------------
 7068|      0|						return (-8);
 7069|      0|					}
 7070|      0|				} else if (stcb_tmp == stcb) {
  ------------------
  |  Branch (7070:16): [True: 0, False: 0]
  ------------------
 7071|      0|					if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7071:10): [True: 0, False: 0]
  ------------------
 7072|       |						/* the assoc was freed? */
 7073|      0|						return (-10);
 7074|      0|					}
 7075|      0|					if (net != NULL) {
  ------------------
  |  Branch (7075:10): [True: 0, False: 0]
  ------------------
 7076|       |						/* clear flag */
 7077|      0|						net->dest_state &=
 7078|      0|							~SCTP_ADDR_NOT_IN_ASSOC;
  ------------------
  |  |  485|      0|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 7079|      0|					}
 7080|      0|				} else {
 7081|       |					/*
 7082|       |					 * strange, address is in another
 7083|       |					 * assoc? straighten out locks.
 7084|       |					 */
 7085|      0|					if (stcb_tmp) {
  ------------------
  |  Branch (7085:10): [True: 0, False: 0]
  ------------------
 7086|      0|						if (SCTP_GET_STATE(stcb_tmp) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              						if (SCTP_GET_STATE(stcb_tmp) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|      0|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (7086:11): [True: 0, False: 0]
  ------------------
 7087|      0|							struct mbuf *op_err;
 7088|      0|							char msg[SCTP_DIAG_INFO_LEN];
 7089|       |
 7090|       |							/* in setup state we abort this guy */
 7091|      0|							SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 7092|      0|							              "%s:%d at %s", __FILE__, __LINE__, __func__);
 7093|      0|							op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 7094|      0|							         msg);
 7095|      0|							sctp_abort_an_association(stcb_tmp->sctp_ep,
 7096|      0|							                          stcb_tmp, op_err, false,
 7097|      0|							                          SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 7098|      0|							goto add_it_now;
 7099|      0|						}
 7100|      0|						SCTP_TCB_UNLOCK(stcb_tmp);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7101|      0|					}
 7102|       |
 7103|      0|					if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7103:10): [True: 0, False: 0]
  ------------------
 7104|       |						/* the assoc was freed? */
 7105|      0|						return (-12);
 7106|      0|					}
 7107|      0|					return (-13);
 7108|      0|				}
 7109|      0|			}
 7110|    166|		} else
 7111|   122k|#endif
 7112|   122k|#ifdef INET6
 7113|   122k|		if (ptype == SCTP_IPV6_ADDRESS) {
  ------------------
  |  |  395|   122k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (7113:7): [True: 66, False: 122k]
  ------------------
 7114|     66|			if (stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (7114:8): [True: 0, False: 66]
  ------------------
 7115|       |				/* ok get the v6 address and check/add */
 7116|      0|				struct sctp_ipv6addr_param *p6, p6_buf;
 7117|       |
 7118|      0|				phdr = sctp_get_next_param(m, offset,
 7119|      0|							   (struct sctp_paramhdr *)&p6_buf,
 7120|      0|							   sizeof(p6_buf));
 7121|      0|				if (plen != sizeof(struct sctp_ipv6addr_param) ||
  ------------------
  |  Branch (7121:9): [True: 0, False: 0]
  ------------------
 7122|      0|				    phdr == NULL) {
  ------------------
  |  Branch (7122:9): [True: 0, False: 0]
  ------------------
 7123|      0|					return (-14);
 7124|      0|				}
 7125|      0|				p6 = (struct sctp_ipv6addr_param *)phdr;
 7126|      0|				memcpy((caddr_t)&sin6.sin6_addr, p6->addr,
 7127|      0|				       sizeof(p6->addr));
 7128|      0|				if (IN6_IS_ADDR_MULTICAST(&sin6.sin6_addr)) {
  ------------------
  |  Branch (7128:9): [True: 0, False: 0]
  ------------------
 7129|       |					/* Skip multi-cast addresses */
 7130|      0|					goto next_param;
 7131|      0|				}
 7132|      0|				if (IN6_IS_ADDR_LINKLOCAL(&sin6.sin6_addr)) {
  ------------------
  |  Branch (7132:9): [True: 0, False: 0]
  ------------------
 7133|       |					/* Link local make no sense without scope */
 7134|      0|					goto next_param;
 7135|      0|				}
 7136|      0|				sa = (struct sockaddr *)&sin6;
 7137|      0|				inp = stcb->sctp_ep;
 7138|      0|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 7139|      0|				stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net,
 7140|      0|									dst, stcb);
 7141|      0|				atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 7142|      0|				if (stcb_tmp == NULL &&
  ------------------
  |  Branch (7142:9): [True: 0, False: 0]
  ------------------
 7143|      0|				    (inp == stcb->sctp_ep || inp == NULL)) {
  ------------------
  |  Branch (7143:10): [True: 0, False: 0]
  |  Branch (7143:34): [True: 0, False: 0]
  ------------------
 7144|       |					/*
 7145|       |					 * we must validate the state again
 7146|       |					 * here
 7147|       |					 */
 7148|      0|				add_it_now6:
 7149|      0|					if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7149:10): [True: 0, False: 0]
  ------------------
 7150|       |						/* the assoc was freed? */
 7151|      0|						return (-16);
 7152|      0|					}
 7153|       |					/*
 7154|       |					 * we must add the address, no scope
 7155|       |					 * set
 7156|       |					 */
 7157|      0|					if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_5)) {
  ------------------
  |  |  822|      0|#define SCTP_DONOT_SETSCOPE 0
  ------------------
              					if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_5)) {
  ------------------
  |  |  820|      0|#define SCTP_LOAD_ADDR_5 5
  ------------------
  |  Branch (7157:10): [True: 0, False: 0]
  ------------------
 7158|      0|						return (-17);
 7159|      0|					}
 7160|      0|				} else if (stcb_tmp == stcb) {
  ------------------
  |  Branch (7160:16): [True: 0, False: 0]
  ------------------
 7161|       |					/*
 7162|       |					 * we must validate the state again
 7163|       |					 * here
 7164|       |					 */
 7165|      0|					if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7165:10): [True: 0, False: 0]
  ------------------
 7166|       |						/* the assoc was freed? */
 7167|      0|						return (-19);
 7168|      0|					}
 7169|      0|					if (net != NULL) {
  ------------------
  |  Branch (7169:10): [True: 0, False: 0]
  ------------------
 7170|       |						/* clear flag */
 7171|      0|						net->dest_state &=
 7172|      0|							~SCTP_ADDR_NOT_IN_ASSOC;
  ------------------
  |  |  485|      0|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 7173|      0|					}
 7174|      0|				} else {
 7175|       |					/*
 7176|       |					 * strange, address is in another
 7177|       |					 * assoc? straighten out locks.
 7178|       |					 */
 7179|      0|					if (stcb_tmp) {
  ------------------
  |  Branch (7179:10): [True: 0, False: 0]
  ------------------
 7180|      0|						if (SCTP_GET_STATE(stcb_tmp) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              						if (SCTP_GET_STATE(stcb_tmp) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|      0|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (7180:11): [True: 0, False: 0]
  ------------------
 7181|      0|							struct mbuf *op_err;
 7182|      0|							char msg[SCTP_DIAG_INFO_LEN];
 7183|       |
 7184|       |							/* in setup state we abort this guy */
 7185|      0|							SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      0|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 7186|      0|							              "%s:%d at %s", __FILE__, __LINE__, __func__);
 7187|      0|							op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 7188|      0|							         msg);
 7189|      0|							sctp_abort_an_association(stcb_tmp->sctp_ep,
 7190|      0|							                          stcb_tmp, op_err, false,
 7191|      0|							                          SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 7192|      0|							goto add_it_now6;
 7193|      0|						}
 7194|      0|						SCTP_TCB_UNLOCK(stcb_tmp);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7195|      0|					}
 7196|      0|					if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7196:10): [True: 0, False: 0]
  ------------------
 7197|       |						/* the assoc was freed? */
 7198|      0|						return (-21);
 7199|      0|					}
 7200|      0|					return (-22);
 7201|      0|				}
 7202|      0|			}
 7203|     66|		} else
 7204|   122k|#endif
 7205|   122k|		if (ptype == SCTP_ECN_CAPABLE) {
  ------------------
  |  |  416|   122k|#define SCTP_ECN_CAPABLE		0x8000
  ------------------
  |  Branch (7205:7): [True: 13.1k, False: 109k]
  ------------------
 7206|  13.1k|			peer_supports_ecn = 1;
 7207|   109k|		} else if (ptype == SCTP_ULP_ADAPTATION) {
  ------------------
  |  |  435|   109k|#define SCTP_ULP_ADAPTATION		0xc006
  ------------------
  |  Branch (7207:14): [True: 7.69k, False: 101k]
  ------------------
 7208|  7.69k|			if (stcb->asoc.state != SCTP_STATE_OPEN) {
  ------------------
  |  |  459|  7.69k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (7208:8): [True: 7.69k, False: 0]
  ------------------
 7209|  7.69k|				struct sctp_adaptation_layer_indication ai, *aip;
 7210|       |
 7211|  7.69k|				phdr = sctp_get_next_param(m, offset,
 7212|  7.69k|							   (struct sctp_paramhdr *)&ai, sizeof(ai));
 7213|  7.69k|				aip = (struct sctp_adaptation_layer_indication *)phdr;
 7214|  7.69k|				if (aip) {
  ------------------
  |  Branch (7214:9): [True: 7.69k, False: 1]
  ------------------
 7215|  7.69k|					stcb->asoc.peers_adaptation = ntohl(aip->indication);
 7216|  7.69k|					stcb->asoc.adaptation_needed = 1;
 7217|  7.69k|				}
 7218|  7.69k|			}
 7219|   101k|		} else if (ptype == SCTP_SET_PRIM_ADDR) {
  ------------------
  |  |  433|   101k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (7219:14): [True: 1.92k, False: 99.5k]
  ------------------
 7220|  1.92k|			struct sctp_asconf_addr_param lstore, *fee;
 7221|  1.92k|			int lptype;
 7222|  1.92k|			struct sockaddr *lsa = NULL;
 7223|  1.92k|#ifdef INET
 7224|  1.92k|			struct sctp_asconf_addrv4_param *fii;
 7225|  1.92k|#endif
 7226|       |
 7227|  1.92k|			if (stcb->asoc.asconf_supported == 0) {
  ------------------
  |  Branch (7227:8): [True: 0, False: 1.92k]
  ------------------
 7228|      0|				return (-100);
 7229|      0|			}
 7230|  1.92k|			if (plen > sizeof(lstore)) {
  ------------------
  |  Branch (7230:8): [True: 0, False: 1.92k]
  ------------------
 7231|      0|				return (-23);
 7232|      0|			}
 7233|  1.92k|			if (plen < sizeof(struct sctp_asconf_addrv4_param)) {
  ------------------
  |  Branch (7233:8): [True: 1, False: 1.92k]
  ------------------
 7234|      1|				return (-101);
 7235|      1|			}
 7236|  1.92k|			phdr = sctp_get_next_param(m, offset,
 7237|  1.92k|						   (struct sctp_paramhdr *)&lstore,
 7238|  1.92k|						   plen);
 7239|  1.92k|			if (phdr == NULL) {
  ------------------
  |  Branch (7239:8): [True: 0, False: 1.92k]
  ------------------
 7240|      0|				return (-24);
 7241|      0|			}
 7242|  1.92k|			fee = (struct sctp_asconf_addr_param *)phdr;
 7243|  1.92k|			lptype = ntohs(fee->addrp.ph.param_type);
 7244|  1.92k|			switch (lptype) {
 7245|      0|#ifdef INET
 7246|  1.03k|			case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  1.03k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (7246:4): [True: 1.03k, False: 884]
  ------------------
 7247|  1.03k|				if (plen !=
  ------------------
  |  Branch (7247:9): [True: 40, False: 996]
  ------------------
 7248|  1.03k|				    sizeof(struct sctp_asconf_addrv4_param)) {
 7249|     40|					SCTP_PRINTF("Sizeof setprim in init/init ack not %d but %d - ignored\n",
  ------------------
  |  |  548|     40|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|     40|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 40]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7250|     40|						    (int)sizeof(struct sctp_asconf_addrv4_param),
 7251|     40|						    plen);
 7252|    996|				} else {
 7253|    996|					fii = (struct sctp_asconf_addrv4_param *)fee;
 7254|    996|					sin.sin_addr.s_addr = fii->addrp.addr;
 7255|    996|					lsa = (struct sockaddr *)&sin;
 7256|    996|				}
 7257|  1.03k|				break;
 7258|      0|#endif
 7259|      0|#ifdef INET6
 7260|    234|			case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|    234|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (7260:4): [True: 234, False: 1.68k]
  ------------------
 7261|    234|				if (plen !=
  ------------------
  |  Branch (7261:9): [True: 94, False: 140]
  ------------------
 7262|    234|				    sizeof(struct sctp_asconf_addr_param)) {
 7263|     94|					SCTP_PRINTF("Sizeof setprim (v6) in init/init ack not %d but %d - ignored\n",
  ------------------
  |  |  548|     94|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|     94|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 94]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7264|     94|						    (int)sizeof(struct sctp_asconf_addr_param),
 7265|     94|						    plen);
 7266|    140|				} else {
 7267|    140|					memcpy(sin6.sin6_addr.s6_addr,
 7268|    140|					       fee->addrp.addr,
 7269|    140|					       sizeof(fee->addrp.addr));
 7270|    140|					lsa = (struct sockaddr *)&sin6;
 7271|    140|				}
 7272|    234|				break;
 7273|      0|#endif
 7274|    650|			default:
  ------------------
  |  Branch (7274:4): [True: 650, False: 1.27k]
  ------------------
 7275|    650|				break;
 7276|  1.92k|			}
 7277|  1.92k|			if (lsa) {
  ------------------
  |  Branch (7277:8): [True: 1.13k, False: 784]
  ------------------
 7278|  1.13k|				(void)sctp_set_primary_addr(stcb, sa, NULL);
 7279|  1.13k|			}
 7280|  99.5k|		} else if (ptype == SCTP_HAS_NAT_SUPPORT) {
  ------------------
  |  |  437|  99.5k|#define SCTP_HAS_NAT_SUPPORT		0xc007
  ------------------
  |  Branch (7280:14): [True: 2.90k, False: 96.6k]
  ------------------
 7281|  2.90k|			stcb->asoc.peer_supports_nat = 1;
 7282|  96.6k|		} else if (ptype == SCTP_PRSCTP_SUPPORTED) {
  ------------------
  |  |  428|  96.6k|#define SCTP_PRSCTP_SUPPORTED		0xc000
  ------------------
  |  Branch (7282:14): [True: 10.3k, False: 86.2k]
  ------------------
 7283|       |			/* Peer supports pr-sctp */
 7284|  10.3k|			peer_supports_prsctp = 1;
 7285|  86.2k|		} else if (ptype == SCTP_ZERO_CHECKSUM_ACCEPTABLE) {
  ------------------
  |  |  417|  86.2k|#define SCTP_ZERO_CHECKSUM_ACCEPTABLE	0x8001
  ------------------
  |  Branch (7285:14): [True: 982, False: 85.2k]
  ------------------
 7286|    982|			struct sctp_zero_checksum_acceptable zero_chksum, *zero_chksum_p;
 7287|       |
 7288|    982|			phdr = sctp_get_next_param(m, offset,
 7289|    982|			                           (struct sctp_paramhdr *)&zero_chksum,
 7290|    982|			                           sizeof(struct sctp_zero_checksum_acceptable));
 7291|    982|			if (phdr != NULL) {
  ------------------
  |  Branch (7291:8): [True: 981, False: 1]
  ------------------
 7292|       |				/*
 7293|       |				 * Only send zero checksums if the upper layer
 7294|       |				 * has enabled the support for the same method
 7295|       |				 * as allowed by the peer.
 7296|       |				 */
 7297|    981|				zero_chksum_p = (struct sctp_zero_checksum_acceptable *)phdr;
 7298|    981|				if ((ntohl(zero_chksum_p->edmid) != SCTP_EDMID_NONE) &&
  ------------------
  |  |  809|    981|#define SCTP_EDMID_NONE             0
  ------------------
  |  Branch (7298:9): [True: 866, False: 115]
  ------------------
 7299|    866|				    (ntohl(zero_chksum_p->edmid) == stcb->asoc.rcv_edmid)) {
  ------------------
  |  Branch (7299:9): [True: 0, False: 866]
  ------------------
 7300|      0|					stcb->asoc.snd_edmid = stcb->asoc.rcv_edmid;
 7301|      0|				}
 7302|    981|			}
 7303|  85.2k|		} else if (ptype == SCTP_SUPPORTED_CHUNK_EXT) {
  ------------------
  |  |  425|  85.2k|#define SCTP_SUPPORTED_CHUNK_EXT	0x8008
  ------------------
  |  Branch (7303:14): [True: 22.0k, False: 63.2k]
  ------------------
 7304|       |			/* A supported extension chunk */
 7305|  22.0k|			struct sctp_supported_chunk_types_param *pr_supported;
 7306|  22.0k|			uint8_t local_store[SCTP_PARAM_BUFFER_SIZE];
 7307|  22.0k|			int num_ent, i;
 7308|       |
 7309|  22.0k|			if (plen > sizeof(local_store)) {
  ------------------
  |  Branch (7309:8): [True: 0, False: 22.0k]
  ------------------
 7310|      0|				return (-35);
 7311|      0|			}
 7312|  22.0k|			phdr = sctp_get_next_param(m, offset,
 7313|  22.0k|						   (struct sctp_paramhdr *)&local_store, plen);
 7314|  22.0k|			if (phdr == NULL) {
  ------------------
  |  Branch (7314:8): [True: 0, False: 22.0k]
  ------------------
 7315|      0|				return (-25);
 7316|      0|			}
 7317|  22.0k|			pr_supported = (struct sctp_supported_chunk_types_param *)phdr;
 7318|  22.0k|			num_ent = plen - sizeof(struct sctp_paramhdr);
 7319|   277k|			for (i = 0; i < num_ent; i++) {
  ------------------
  |  Branch (7319:16): [True: 255k, False: 22.0k]
  ------------------
 7320|   255k|				switch (pr_supported->chunk_types[i]) {
 7321|  10.5k|				case SCTP_ASCONF:
  ------------------
  |  |  489|  10.5k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (7321:5): [True: 10.5k, False: 244k]
  ------------------
 7322|  10.5k|					peer_supports_asconf = 1;
 7323|  10.5k|					break;
 7324|  25.4k|				case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|  25.4k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (7324:5): [True: 25.4k, False: 229k]
  ------------------
 7325|  25.4k|					peer_supports_asconf_ack = 1;
 7326|  25.4k|					break;
 7327|  15.2k|				case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|  15.2k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (7327:5): [True: 15.2k, False: 240k]
  ------------------
 7328|  15.2k|					peer_supports_prsctp = 1;
 7329|  15.2k|					break;
 7330|  1.90k|				case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|  1.90k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (7330:5): [True: 1.90k, False: 253k]
  ------------------
 7331|  1.90k|					peer_supports_pktdrop = 1;
 7332|  1.90k|					break;
 7333|  3.38k|				case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|  3.38k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (7333:5): [True: 3.38k, False: 252k]
  ------------------
 7334|  3.38k|					peer_supports_nrsack = 1;
 7335|  3.38k|					break;
 7336|  10.9k|				case SCTP_STREAM_RESET:
  ------------------
  |  |  481|  10.9k|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (7336:5): [True: 10.9k, False: 244k]
  ------------------
 7337|  10.9k|					peer_supports_reconfig = 1;
 7338|  10.9k|					break;
 7339|  10.6k|				case SCTP_AUTHENTICATION:
  ------------------
  |  |  470|  10.6k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (7339:5): [True: 10.6k, False: 244k]
  ------------------
 7340|  10.6k|					peer_supports_auth = 1;
 7341|  10.6k|					break;
 7342|  8.35k|				case SCTP_IDATA:
  ------------------
  |  |  474|  8.35k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (7342:5): [True: 8.35k, False: 247k]
  ------------------
 7343|  8.35k|					peer_supports_idata = 1;
 7344|  8.35k|					break;
 7345|   168k|				default:
  ------------------
  |  Branch (7345:5): [True: 168k, False: 86.4k]
  ------------------
 7346|       |					/* one I have not learned yet */
 7347|   168k|					break;
 7348|   255k|				}
 7349|   255k|			}
 7350|  63.2k|		} else if (ptype == SCTP_RANDOM) {
  ------------------
  |  |  419|  63.2k|#define SCTP_RANDOM			0x8002
  ------------------
  |  Branch (7350:14): [True: 7.44k, False: 55.7k]
  ------------------
 7351|  7.44k|			if (plen > sizeof(random_store))
  ------------------
  |  Branch (7351:8): [True: 0, False: 7.44k]
  ------------------
 7352|      0|				break;
 7353|  7.44k|			if (got_random) {
  ------------------
  |  Branch (7353:8): [True: 34, False: 7.41k]
  ------------------
 7354|       |				/* already processed a RANDOM */
 7355|     34|				goto next_param;
 7356|     34|			}
 7357|  7.41k|			phdr = sctp_get_next_param(m, offset,
 7358|  7.41k|						   (struct sctp_paramhdr *)random_store,
 7359|  7.41k|						   plen);
 7360|  7.41k|			if (phdr == NULL)
  ------------------
  |  Branch (7360:8): [True: 0, False: 7.41k]
  ------------------
 7361|      0|				return (-26);
 7362|  7.41k|			p_random = (struct sctp_auth_random *)phdr;
 7363|  7.41k|			random_len = plen - sizeof(*p_random);
 7364|       |			/* enforce the random length */
 7365|  7.41k|			if (random_len != SCTP_AUTH_RANDOM_SIZE_REQUIRED) {
  ------------------
  |  |   47|  7.41k|#define SCTP_AUTH_RANDOM_SIZE_REQUIRED	32
  ------------------
  |  Branch (7365:8): [True: 15, False: 7.39k]
  ------------------
 7366|     15|				SCTPDBG(SCTP_DEBUG_AUTH1, "SCTP: invalid RANDOM len\n");
 7367|     15|				return (-27);
 7368|     15|			}
 7369|  7.39k|			got_random = 1;
 7370|  55.7k|		} else if (ptype == SCTP_HMAC_LIST) {
  ------------------
  |  |  421|  55.7k|#define SCTP_HMAC_LIST			0x8004
  ------------------
  |  Branch (7370:14): [True: 7.69k, False: 48.1k]
  ------------------
 7371|  7.69k|			uint16_t num_hmacs;
 7372|  7.69k|			uint16_t i;
 7373|       |
 7374|  7.69k|			if (plen > sizeof(hmacs_store))
  ------------------
  |  Branch (7374:8): [True: 2, False: 7.69k]
  ------------------
 7375|      2|				break;
 7376|  7.69k|			if (got_hmacs) {
  ------------------
  |  Branch (7376:8): [True: 233, False: 7.45k]
  ------------------
 7377|       |				/* already processed a HMAC list */
 7378|    233|				goto next_param;
 7379|    233|			}
 7380|  7.45k|			phdr = sctp_get_next_param(m, offset,
 7381|  7.45k|						   (struct sctp_paramhdr *)hmacs_store,
 7382|  7.45k|						   plen);
 7383|  7.45k|			if (phdr == NULL)
  ------------------
  |  Branch (7383:8): [True: 0, False: 7.45k]
  ------------------
 7384|      0|				return (-28);
 7385|  7.45k|			hmacs = (struct sctp_auth_hmac_algo *)phdr;
 7386|  7.45k|			hmacs_len = plen - sizeof(*hmacs);
 7387|  7.45k|			num_hmacs = hmacs_len / sizeof(hmacs->hmac_ids[0]);
 7388|       |			/* validate the hmac list */
 7389|  7.45k|			if (sctp_verify_hmac_param(hmacs, num_hmacs)) {
  ------------------
  |  Branch (7389:8): [True: 21, False: 7.43k]
  ------------------
 7390|     21|				return (-29);
 7391|     21|			}
 7392|  7.43k|			if (stcb->asoc.peer_hmacs != NULL)
  ------------------
  |  Branch (7392:8): [True: 0, False: 7.43k]
  ------------------
 7393|      0|				sctp_free_hmaclist(stcb->asoc.peer_hmacs);
 7394|  7.43k|			stcb->asoc.peer_hmacs = sctp_alloc_hmaclist(num_hmacs);
 7395|  7.43k|			if (stcb->asoc.peer_hmacs != NULL) {
  ------------------
  |  Branch (7395:8): [True: 7.43k, False: 0]
  ------------------
 7396|  24.6k|				for (i = 0; i < num_hmacs; i++) {
  ------------------
  |  Branch (7396:17): [True: 17.1k, False: 7.43k]
  ------------------
 7397|  17.1k|					(void)sctp_auth_add_hmacid(stcb->asoc.peer_hmacs,
 7398|  17.1k|								   ntohs(hmacs->hmac_ids[i]));
 7399|  17.1k|				}
 7400|  7.43k|			}
 7401|  7.43k|			got_hmacs = 1;
 7402|  48.1k|		} else if (ptype == SCTP_CHUNK_LIST) {
  ------------------
  |  |  420|  48.1k|#define SCTP_CHUNK_LIST			0x8003
  ------------------
  |  Branch (7402:14): [True: 10.1k, False: 37.9k]
  ------------------
 7403|  10.1k|			int i;
 7404|       |
 7405|  10.1k|			if (plen > sizeof(chunks_store))
  ------------------
  |  Branch (7405:8): [True: 0, False: 10.1k]
  ------------------
 7406|      0|				break;
 7407|  10.1k|			if (got_chklist) {
  ------------------
  |  Branch (7407:8): [True: 2.64k, False: 7.55k]
  ------------------
 7408|       |				/* already processed a Chunks list */
 7409|  2.64k|				goto next_param;
 7410|  2.64k|			}
 7411|  7.55k|			phdr = sctp_get_next_param(m, offset,
 7412|  7.55k|						   (struct sctp_paramhdr *)chunks_store,
 7413|  7.55k|						   plen);
 7414|  7.55k|			if (phdr == NULL)
  ------------------
  |  Branch (7414:8): [True: 0, False: 7.55k]
  ------------------
 7415|      0|				return (-30);
 7416|  7.55k|			chunks = (struct sctp_auth_chunk_list *)phdr;
 7417|  7.55k|			num_chunks = plen - sizeof(*chunks);
 7418|  7.55k|			if (stcb->asoc.peer_auth_chunks != NULL)
  ------------------
  |  Branch (7418:8): [True: 0, False: 7.55k]
  ------------------
 7419|      0|				sctp_clear_chunklist(stcb->asoc.peer_auth_chunks);
 7420|  7.55k|			else
 7421|  7.55k|				stcb->asoc.peer_auth_chunks = sctp_alloc_chunklist();
 7422|  32.1k|			for (i = 0; i < num_chunks; i++) {
  ------------------
  |  Branch (7422:16): [True: 24.6k, False: 7.55k]
  ------------------
 7423|  24.6k|				(void)sctp_auth_add_chunk(chunks->chunk_types[i],
 7424|  24.6k|							  stcb->asoc.peer_auth_chunks);
 7425|       |				/* record asconf/asconf-ack if listed */
 7426|  24.6k|				if (chunks->chunk_types[i] == SCTP_ASCONF)
  ------------------
  |  |  489|  24.6k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (7426:9): [True: 7.62k, False: 16.9k]
  ------------------
 7427|  7.62k|					saw_asconf = 1;
 7428|  24.6k|				if (chunks->chunk_types[i] == SCTP_ASCONF_ACK)
  ------------------
  |  |  477|  24.6k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (7428:9): [True: 7.87k, False: 16.7k]
  ------------------
 7429|  7.87k|					saw_asconf_ack = 1;
 7430|  24.6k|			}
 7431|  7.55k|			got_chklist = 1;
 7432|  37.9k|		} else if ((ptype == SCTP_HEARTBEAT_INFO) ||
  ------------------
  |  |  390|  37.9k|#define SCTP_HEARTBEAT_INFO		0x0001
  ------------------
  |  Branch (7432:14): [True: 444, False: 37.4k]
  ------------------
 7433|  37.4k|			   (ptype == SCTP_STATE_COOKIE) ||
  ------------------
  |  |  396|  37.4k|#define SCTP_STATE_COOKIE		0x0007
  ------------------
  |  Branch (7433:7): [True: 10.0k, False: 27.4k]
  ------------------
 7434|  27.4k|			   (ptype == SCTP_UNRECOG_PARAM) ||
  ------------------
  |  |  397|  27.4k|#define SCTP_UNRECOG_PARAM		0x0008
  ------------------
  |  Branch (7434:7): [True: 1.64k, False: 25.7k]
  ------------------
 7435|  25.7k|			   (ptype == SCTP_COOKIE_PRESERVE) ||
  ------------------
  |  |  398|  25.7k|#define SCTP_COOKIE_PRESERVE		0x0009
  ------------------
  |  Branch (7435:7): [True: 688, False: 25.1k]
  ------------------
 7436|  25.1k|			   (ptype == SCTP_SUPPORTED_ADDRTYPE) ||
  ------------------
  |  |  400|  25.1k|#define SCTP_SUPPORTED_ADDRTYPE		0x000c
  ------------------
  |  Branch (7436:7): [True: 1.71k, False: 23.3k]
  ------------------
 7437|  23.3k|			   (ptype == SCTP_ADD_IP_ADDRESS) ||
  ------------------
  |  |  430|  23.3k|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (7437:7): [True: 1.89k, False: 21.4k]
  ------------------
 7438|  21.4k|			   (ptype == SCTP_DEL_IP_ADDRESS) ||
  ------------------
  |  |  431|  21.4k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (7438:7): [True: 864, False: 20.6k]
  ------------------
 7439|  20.6k|			   (ptype == SCTP_ERROR_CAUSE_IND) ||
  ------------------
  |  |  432|  20.6k|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (7439:7): [True: 1.50k, False: 19.1k]
  ------------------
 7440|  19.2k|			   (ptype == SCTP_SUCCESS_REPORT)) {
  ------------------
  |  |  434|  19.1k|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (7440:7): [True: 469, False: 18.6k]
  ------------------
 7441|       |			/* don't care */
 7442|  19.2k|		} else {
 7443|  18.6k|			if ((ptype & 0x8000) == 0x0000) {
  ------------------
  |  Branch (7443:8): [True: 188, False: 18.4k]
  ------------------
 7444|       |				/*
 7445|       |				 * must stop processing the rest of the
 7446|       |				 * param's. Any report bits were handled
 7447|       |				 * with the call to
 7448|       |				 * sctp_arethere_unrecognized_parameters()
 7449|       |				 * when the INIT or INIT-ACK was first seen.
 7450|       |				 */
 7451|    188|				break;
 7452|    188|			}
 7453|  18.6k|		}
 7454|       |
 7455|   122k|	next_param:
 7456|   122k|		offset += SCTP_SIZE32(plen);
  ------------------
  |  |  383|   122k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 7457|   122k|		if (offset >= limit) {
  ------------------
  |  Branch (7457:7): [True: 7.69k, False: 114k]
  ------------------
 7458|  7.69k|			break;
 7459|  7.69k|		}
 7460|   114k|		phdr = sctp_get_next_param(m, offset, &param_buf,
 7461|   114k|		                           sizeof(param_buf));
 7462|   114k|	}
 7463|       |	/* Now check to see if we need to purge any addresses */
 7464|  8.07k|	TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  8.07k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  16.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 8.07k, False: 8.07k]
  |  |  |  Branch (1130:24): [True: 8.07k, False: 0]
  |  |  ------------------
  |  | 1131|  8.07k|              (var) = (tvar))
  ------------------
 7465|  8.07k|		if ((net->dest_state & SCTP_ADDR_NOT_IN_ASSOC) ==
  ------------------
  |  |  485|  8.07k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
  |  Branch (7465:7): [True: 0, False: 8.07k]
  ------------------
 7466|  8.07k|		    SCTP_ADDR_NOT_IN_ASSOC) {
  ------------------
  |  |  485|  8.07k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 7467|       |			/* This address has been removed from the asoc */
 7468|       |			/* remove and free it */
 7469|      0|			stcb->asoc.numnets--;
 7470|      0|			TAILQ_REMOVE(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (7470:4): [True: 0, False: 0]
  |  Branch (7470:4): [Folded, False: 0]
  ------------------
 7471|      0|			if (net == stcb->asoc.alternate) {
  ------------------
  |  Branch (7471:8): [True: 0, False: 0]
  ------------------
 7472|      0|				sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 7473|      0|				stcb->asoc.alternate = NULL;
 7474|      0|			}
 7475|      0|			if (net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (7475:8): [True: 0, False: 0]
  ------------------
 7476|      0|				stcb->asoc.primary_destination = NULL;
 7477|      0|				sctp_select_primary_destination(stcb);
 7478|      0|			}
 7479|      0|			sctp_free_remote_addr(net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 7480|      0|		}
 7481|  8.07k|	}
 7482|  8.07k|	if ((stcb->asoc.ecn_supported == 1) &&
  ------------------
  |  Branch (7482:6): [True: 8.07k, False: 0]
  ------------------
 7483|  8.07k|	    (peer_supports_ecn == 0)) {
  ------------------
  |  Branch (7483:6): [True: 618, False: 7.45k]
  ------------------
 7484|    618|		stcb->asoc.ecn_supported = 0;
 7485|    618|	}
 7486|  8.07k|	if ((stcb->asoc.prsctp_supported == 1) &&
  ------------------
  |  Branch (7486:6): [True: 8.07k, False: 0]
  ------------------
 7487|  8.07k|	    (peer_supports_prsctp == 0)) {
  ------------------
  |  Branch (7487:6): [True: 604, False: 7.46k]
  ------------------
 7488|    604|		stcb->asoc.prsctp_supported = 0;
 7489|    604|	}
 7490|  8.07k|	if ((stcb->asoc.auth_supported == 1) &&
  ------------------
  |  Branch (7490:6): [True: 8.07k, False: 0]
  ------------------
 7491|  8.07k|	    ((peer_supports_auth == 0) ||
  ------------------
  |  Branch (7491:7): [True: 570, False: 7.50k]
  ------------------
 7492|  7.50k|	     (got_random == 0) || (got_hmacs == 0))) {
  ------------------
  |  Branch (7492:7): [True: 119, False: 7.38k]
  |  Branch (7492:28): [True: 7, False: 7.37k]
  ------------------
 7493|    696|		stcb->asoc.auth_supported = 0;
 7494|    696|	}
 7495|  8.07k|	if ((stcb->asoc.asconf_supported == 1) &&
  ------------------
  |  Branch (7495:6): [True: 8.07k, False: 0]
  ------------------
 7496|  8.07k|	    ((peer_supports_asconf == 0) || (peer_supports_asconf_ack == 0) ||
  ------------------
  |  Branch (7496:7): [True: 616, False: 7.45k]
  |  Branch (7496:38): [True: 32, False: 7.42k]
  ------------------
 7497|  7.42k|	     (stcb->asoc.auth_supported == 0) ||
  ------------------
  |  Branch (7497:7): [True: 69, False: 7.35k]
  ------------------
 7498|  7.35k|	     (saw_asconf == 0) || (saw_asconf_ack == 0))) {
  ------------------
  |  Branch (7498:7): [True: 1, False: 7.35k]
  |  Branch (7498:28): [True: 1, False: 7.35k]
  ------------------
 7499|    719|		stcb->asoc.asconf_supported = 0;
 7500|    719|	}
 7501|  8.07k|	if ((stcb->asoc.reconfig_supported == 1) &&
  ------------------
  |  Branch (7501:6): [True: 8.07k, False: 0]
  ------------------
 7502|  8.07k|	    (peer_supports_reconfig == 0)) {
  ------------------
  |  Branch (7502:6): [True: 636, False: 7.43k]
  ------------------
 7503|    636|		stcb->asoc.reconfig_supported = 0;
 7504|    636|	}
 7505|  8.07k|	if ((stcb->asoc.idata_supported == 1) &&
  ------------------
  |  Branch (7505:6): [True: 4.33k, False: 3.74k]
  ------------------
 7506|  4.33k|	    (peer_supports_idata == 0)) {
  ------------------
  |  Branch (7506:6): [True: 464, False: 3.86k]
  ------------------
 7507|    464|		stcb->asoc.idata_supported = 0;
 7508|    464|	}
 7509|  8.07k|	if ((stcb->asoc.nrsack_supported == 1) &&
  ------------------
  |  Branch (7509:6): [True: 8.07k, False: 0]
  ------------------
 7510|  8.07k|	    (peer_supports_nrsack == 0)) {
  ------------------
  |  Branch (7510:6): [True: 7.98k, False: 86]
  ------------------
 7511|  7.98k|		stcb->asoc.nrsack_supported = 0;
 7512|  7.98k|	}
 7513|  8.07k|	if ((stcb->asoc.pktdrop_supported == 1) &&
  ------------------
  |  Branch (7513:6): [True: 8.07k, False: 0]
  ------------------
 7514|  8.07k|	    (peer_supports_pktdrop == 0)) {
  ------------------
  |  Branch (7514:6): [True: 7.98k, False: 91]
  ------------------
 7515|  7.98k|		stcb->asoc.pktdrop_supported = 0;
 7516|  7.98k|	}
 7517|       |	/* validate authentication required parameters */
 7518|  8.07k|	if ((peer_supports_auth == 0) && (got_chklist == 1)) {
  ------------------
  |  Branch (7518:6): [True: 570, False: 7.50k]
  |  Branch (7518:35): [True: 105, False: 465]
  ------------------
 7519|       |		/* peer does not support auth but sent a chunks list? */
 7520|    105|		return (-31);
 7521|    105|	}
 7522|  7.96k|	if ((peer_supports_asconf == 1) && (peer_supports_auth == 0)) {
  ------------------
  |  Branch (7522:6): [True: 7.44k, False: 522]
  |  Branch (7522:37): [True: 27, False: 7.41k]
  ------------------
 7523|       |		/* peer supports asconf but not auth? */
 7524|     27|		return (-32);
 7525|  7.94k|	} else if ((peer_supports_asconf == 1) &&
  ------------------
  |  Branch (7525:13): [True: 7.41k, False: 522]
  ------------------
 7526|  7.41k|	           (peer_supports_auth == 1) &&
  ------------------
  |  Branch (7526:13): [True: 7.41k, False: 0]
  ------------------
 7527|  7.41k|		   ((saw_asconf == 0) || (saw_asconf_ack == 0))) {
  ------------------
  |  Branch (7527:7): [True: 53, False: 7.36k]
  |  Branch (7527:28): [True: 2, False: 7.36k]
  ------------------
 7528|     55|		return (-33);
 7529|     55|	}
 7530|       |	/* concatenate the full random key */
 7531|  7.88k|	keylen = sizeof(*p_random) + random_len + sizeof(*hmacs) + hmacs_len;
 7532|  7.88k|	if (chunks != NULL) {
  ------------------
  |  Branch (7532:6): [True: 7.41k, False: 474]
  ------------------
 7533|  7.41k|		keylen += sizeof(*chunks) + num_chunks;
 7534|  7.41k|	}
 7535|  7.88k|	new_key = sctp_alloc_key(keylen);
 7536|  7.88k|	if (new_key != NULL) {
  ------------------
  |  Branch (7536:6): [True: 7.88k, False: 0]
  ------------------
 7537|       |		/* copy in the RANDOM */
 7538|  7.88k|		if (p_random != NULL) {
  ------------------
  |  Branch (7538:7): [True: 7.38k, False: 498]
  ------------------
 7539|  7.38k|			keylen = sizeof(*p_random) + random_len;
 7540|  7.38k|			memcpy(new_key->key, p_random, keylen);
 7541|  7.38k|		} else {
 7542|    498|			keylen = 0;
 7543|    498|		}
 7544|       |		/* append in the AUTH chunks */
 7545|  7.88k|		if (chunks != NULL) {
  ------------------
  |  Branch (7545:7): [True: 7.41k, False: 474]
  ------------------
 7546|  7.41k|			memcpy(new_key->key + keylen, chunks,
 7547|  7.41k|			       sizeof(*chunks) + num_chunks);
 7548|  7.41k|			keylen += sizeof(*chunks) + num_chunks;
 7549|  7.41k|		}
 7550|       |		/* append in the HMACs */
 7551|  7.88k|		if (hmacs != NULL) {
  ------------------
  |  Branch (7551:7): [True: 7.42k, False: 462]
  ------------------
 7552|  7.42k|			memcpy(new_key->key + keylen, hmacs,
 7553|  7.42k|			       sizeof(*hmacs) + hmacs_len);
 7554|  7.42k|		}
 7555|  7.88k|	} else {
 7556|       |		/* failed to get memory for the key */
 7557|      0|		return (-34);
 7558|      0|	}
 7559|  7.88k|	if (stcb->asoc.authinfo.peer_random != NULL)
  ------------------
  |  Branch (7559:6): [True: 0, False: 7.88k]
  ------------------
 7560|      0|		sctp_free_key(stcb->asoc.authinfo.peer_random);
 7561|  7.88k|	stcb->asoc.authinfo.peer_random = new_key;
 7562|  7.88k|	sctp_clear_cachedkeys(stcb, stcb->asoc.authinfo.assoc_keyid);
 7563|  7.88k|	sctp_clear_cachedkeys(stcb, stcb->asoc.authinfo.recv_keyid);
 7564|       |
 7565|  7.88k|	return (0);
 7566|  7.88k|}
sctp_set_primary_addr:
 7571|  8.38k|{
 7572|       |	/* make sure the requested primary address exists in the assoc */
 7573|  8.38k|	if (net == NULL && sa)
  ------------------
  |  Branch (7573:6): [True: 8.38k, False: 0]
  |  Branch (7573:21): [True: 8.38k, False: 0]
  ------------------
 7574|  8.38k|		net = sctp_findnet(stcb, sa);
 7575|       |
 7576|  8.38k|	if (net == NULL) {
  ------------------
  |  Branch (7576:6): [True: 5.50k, False: 2.87k]
  ------------------
 7577|       |		/* didn't find the requested primary address! */
 7578|  5.50k|		return (-1);
 7579|  5.50k|	} else {
 7580|       |		/* set the primary address */
 7581|  2.87k|		if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  2.87k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (7581:7): [True: 512, False: 2.36k]
  ------------------
 7582|       |			/* Must be confirmed, so queue to set */
 7583|    512|			net->dest_state |= SCTP_ADDR_REQ_PRIMARY;
  ------------------
  |  |  488|    512|#define SCTP_ADDR_REQ_PRIMARY           0x400
  ------------------
 7584|    512|			return (0);
 7585|    512|		}
 7586|  2.36k|		stcb->asoc.primary_destination = net;
 7587|  2.36k|		if (((net->dest_state & SCTP_ADDR_PF) == 0) &&
  ------------------
  |  |  490|  2.36k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (7587:7): [True: 2.36k, False: 0]
  ------------------
 7588|  2.36k|		    (stcb->asoc.alternate != NULL)) {
  ------------------
  |  Branch (7588:7): [True: 3, False: 2.36k]
  ------------------
 7589|      3|			sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      3|#define sctp_free_remote_addr(__net) { \
  |  |  229|      3|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 3, False: 0]
  |  |  ------------------
  |  |  230|      3|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      3|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      3|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      3|	} \
  |  |  245|      3|}
  ------------------
 7590|      3|			stcb->asoc.alternate = NULL;
 7591|      3|		}
 7592|  2.36k|		net = TAILQ_FIRST(&stcb->asoc.nets);
 7593|  2.36k|		if (net != stcb->asoc.primary_destination) {
  ------------------
  |  Branch (7593:7): [True: 633, False: 1.73k]
  ------------------
 7594|       |			/* first one on the list is NOT the primary
 7595|       |			 * sctp_cmpaddr() is much more efficient if
 7596|       |			 * the primary is the first on the list, make it
 7597|       |			 * so.
 7598|       |			 */
 7599|    633|			TAILQ_REMOVE(&stcb->asoc.nets, stcb->asoc.primary_destination, sctp_next);
  ------------------
  |  Branch (7599:4): [True: 169, False: 464]
  |  Branch (7599:4): [Folded, False: 633]
  ------------------
 7600|       |			TAILQ_INSERT_HEAD(&stcb->asoc.nets, stcb->asoc.primary_destination, sctp_next);
  ------------------
  |  Branch (7600:4): [True: 633, False: 0]
  |  Branch (7600:4): [Folded, False: 633]
  ------------------
 7601|    633|		}
 7602|  2.36k|		return (0);
 7603|  2.36k|	}
 7604|  8.38k|}
sctp_is_vtag_good:
 7608|  27.4k|{
 7609|  27.4k|	struct sctpasochead *head;
 7610|  27.4k|	struct sctp_tcb *stcb;
 7611|       |
 7612|  27.4k|	SCTP_INP_INFO_LOCK_ASSERT();
 7613|       |
 7614|  27.4k|	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(tag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|  27.4k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(tag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |   57|  27.4k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 7615|  27.4k|	LIST_FOREACH(stcb, head, sctp_asocs) {
  ------------------
  |  Branch (7615:2): [True: 23, False: 27.4k]
  ------------------
 7616|       |		/* We choose not to lock anything here. TCB's can't be
 7617|       |		 * removed since we have the read lock, so they can't
 7618|       |		 * be freed on us, same thing for the INP. I may
 7619|       |		 * be wrong with this assumption, but we will go
 7620|       |		 * with it for now :-)
 7621|       |		 */
 7622|     23|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|     23|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (7622:7): [True: 0, False: 23]
  ------------------
 7623|      0|			continue;
 7624|      0|		}
 7625|     23|		if (stcb->asoc.my_vtag == tag) {
  ------------------
  |  Branch (7625:7): [True: 0, False: 23]
  ------------------
 7626|       |			/* candidate */
 7627|      0|			if (stcb->rport != rport) {
  ------------------
  |  Branch (7627:8): [True: 0, False: 0]
  ------------------
 7628|      0|				continue;
 7629|      0|			}
 7630|      0|			if (stcb->sctp_ep->sctp_lport != lport) {
  ------------------
  |  |  426|      0|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      0|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      0|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (7630:8): [True: 0, False: 0]
  ------------------
 7631|      0|				continue;
 7632|      0|			}
 7633|       |			/* The tag is currently used, so don't use it. */
 7634|      0|			return (false);
 7635|      0|		}
 7636|     23|	}
 7637|  27.4k|	return (!sctp_is_in_timewait(tag, lport, rport, now->tv_sec));
 7638|  27.4k|}
sctp_pcb_add_flags:
 8005|  6.83k|{
 8006|  6.83k|	uint32_t old_flags, new_flags;
 8007|       |
 8008|  6.83k|	do {
 8009|  6.83k|		old_flags = inp->sctp_flags;
 8010|  6.83k|		new_flags = old_flags | flags;
 8011|  6.83k|	} while (atomic_cmpset_int(&inp->sctp_flags, old_flags, new_flags) == 0);
  ------------------
  |  |  113|  6.83k|#define atomic_cmpset_int(dst, exp, src) __sync_bool_compare_and_swap(dst, exp, src)
  ------------------
  |  Branch (8011:11): [True: 0, False: 6.83k]
  ------------------
 8012|  6.83k|}
sctp_pcb.c:sctp_does_stcb_own_this_addr:
  784|  31.8k|{
  785|  31.8k|	int loopback_scope;
  786|  31.8k|#if defined(INET)
  787|  31.8k|	int ipv4_local_scope, ipv4_addr_legal;
  788|  31.8k|#endif
  789|  31.8k|#if defined(INET6)
  790|  31.8k|	int local_scope, site_scope, ipv6_addr_legal;
  791|  31.8k|#endif
  792|  31.8k|#if defined(__Userspace__)
  793|  31.8k|	int conn_addr_legal;
  794|  31.8k|#endif
  795|  31.8k|	struct sctp_vrf *vrf;
  796|  31.8k|	struct sctp_ifn *sctp_ifn;
  797|  31.8k|	struct sctp_ifa *sctp_ifa;
  798|       |
  799|  31.8k|	loopback_scope = stcb->asoc.scope.loopback_scope;
  800|  31.8k|#if defined(INET)
  801|  31.8k|	ipv4_local_scope = stcb->asoc.scope.ipv4_local_scope;
  802|  31.8k|	ipv4_addr_legal = stcb->asoc.scope.ipv4_addr_legal;
  803|  31.8k|#endif
  804|  31.8k|#if defined(INET6)
  805|  31.8k|	local_scope = stcb->asoc.scope.local_scope;
  806|  31.8k|	site_scope = stcb->asoc.scope.site_scope;
  807|  31.8k|	ipv6_addr_legal = stcb->asoc.scope.ipv6_addr_legal;
  808|  31.8k|#endif
  809|  31.8k|#if defined(__Userspace__)
  810|  31.8k|	conn_addr_legal = stcb->asoc.scope.conn_addr_legal;
  811|  31.8k|#endif
  812|       |
  813|  31.8k|	SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  31.8k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  31.8k|	do {                         \
  |  |  |  |  113|  31.8k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 31.8k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  31.8k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 31.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  814|  31.8k|	vrf = sctp_find_vrf(stcb->asoc.vrf_id);
  815|  31.8k|	if (vrf == NULL) {
  ------------------
  |  Branch (815:6): [True: 0, False: 31.8k]
  ------------------
  816|       |		/* no vrf, no addresses */
  817|      0|		SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  818|      0|		return (0);
  819|      0|	}
  820|       |
  821|  31.8k|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|  31.8k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (821:6): [True: 0, False: 31.8k]
  ------------------
  822|      0|		LIST_FOREACH(sctp_ifn, &vrf->ifnlist, next_ifn) {
  ------------------
  |  Branch (822:3): [True: 0, False: 0]
  ------------------
  823|      0|			if ((loopback_scope == 0) &&
  ------------------
  |  Branch (823:8): [True: 0, False: 0]
  ------------------
  824|      0|			    SCTP_IFN_IS_IFT_LOOP(sctp_ifn)) {
  ------------------
  |  |  656|      0|#define SCTP_IFN_IS_IFT_LOOP(ifn) (strncmp((ifn)->ifn_name, "lo", 2) == 0)
  |  |  ------------------
  |  |  |  Branch (656:35): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  825|      0|				continue;
  826|      0|			}
  827|      0|			LIST_FOREACH(sctp_ifa, &sctp_ifn->ifalist, next_ifa) {
  ------------------
  |  Branch (827:4): [True: 0, False: 0]
  ------------------
  828|      0|				if (sctp_is_addr_restricted(stcb, sctp_ifa) &&
  ------------------
  |  Branch (828:9): [True: 0, False: 0]
  ------------------
  829|      0|				    (!sctp_is_addr_pending(stcb, sctp_ifa))) {
  ------------------
  |  Branch (829:9): [True: 0, False: 0]
  ------------------
  830|       |					/* We allow pending addresses, where we
  831|       |					 * have sent an asconf-add to be considered
  832|       |					 * valid.
  833|       |					 */
  834|      0|					continue;
  835|      0|				}
  836|      0|				if (sctp_ifa->address.sa.sa_family != to->sa_family) {
  ------------------
  |  Branch (836:9): [True: 0, False: 0]
  ------------------
  837|      0|					continue;
  838|      0|				}
  839|      0|				switch (sctp_ifa->address.sa.sa_family) {
  840|      0|#ifdef INET
  841|      0|				case AF_INET:
  ------------------
  |  Branch (841:5): [True: 0, False: 0]
  ------------------
  842|      0|					if (ipv4_addr_legal) {
  ------------------
  |  Branch (842:10): [True: 0, False: 0]
  ------------------
  843|      0|						struct sockaddr_in *sin, *rsin;
  844|       |
  845|      0|						sin = &sctp_ifa->address.sin;
  846|      0|						rsin = (struct sockaddr_in *)to;
  847|      0|						if ((ipv4_local_scope == 0) &&
  ------------------
  |  Branch (847:11): [True: 0, False: 0]
  ------------------
  848|      0|						    IN4_ISPRIVATE_ADDRESS(&sin->sin_addr)) {
  ------------------
  |  |  969|      0|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 0, False: 0]
  |  |  ------------------
  |  |  970|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  971|      0|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  972|      0|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  973|      0|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  974|      0|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  849|      0|							continue;
  850|      0|						}
  851|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  852|       |						if (prison_check_ip4(stcb->sctp_ep->ip_inp.inp.inp_cred,
  853|       |						                     &sin->sin_addr) != 0) {
  854|       |							continue;
  855|       |						}
  856|       |#endif
  857|      0|						if (sin->sin_addr.s_addr == rsin->sin_addr.s_addr) {
  ------------------
  |  Branch (857:11): [True: 0, False: 0]
  ------------------
  858|      0|							SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  859|      0|							return (1);
  860|      0|						}
  861|      0|					}
  862|      0|					break;
  863|      0|#endif
  864|      0|#ifdef INET6
  865|      0|				case AF_INET6:
  ------------------
  |  Branch (865:5): [True: 0, False: 0]
  ------------------
  866|      0|					if (ipv6_addr_legal) {
  ------------------
  |  Branch (866:10): [True: 0, False: 0]
  ------------------
  867|      0|						struct sockaddr_in6 *sin6, *rsin6;
  868|       |#if defined(SCTP_EMBEDDED_V6_SCOPE) && !defined(SCTP_KAME)
  869|       |						struct sockaddr_in6 lsa6;
  870|       |#endif
  871|      0|						sin6 = &sctp_ifa->address.sin6;
  872|      0|						rsin6 = (struct sockaddr_in6 *)to;
  873|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  874|       |						if (prison_check_ip6(stcb->sctp_ep->ip_inp.inp.inp_cred,
  875|       |						                     &sin6->sin6_addr) != 0) {
  876|       |							continue;
  877|       |						}
  878|       |#endif
  879|      0|						if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
  ------------------
  |  Branch (879:11): [True: 0, False: 0]
  ------------------
  880|      0|							if (local_scope == 0)
  ------------------
  |  Branch (880:12): [True: 0, False: 0]
  ------------------
  881|      0|								continue;
  882|       |#if defined(SCTP_EMBEDDED_V6_SCOPE)
  883|       |							if (sin6->sin6_scope_id == 0) {
  884|       |#ifdef SCTP_KAME
  885|       |								if (sa6_recoverscope(sin6) != 0)
  886|       |									continue;
  887|       |#else
  888|       |								lsa6 = *sin6;
  889|       |								if (in6_recoverscope(&lsa6,
  890|       |								                     &lsa6.sin6_addr,
  891|       |								                     NULL))
  892|       |									continue;
  893|       |								sin6 = &lsa6;
  894|       |#endif /* SCTP_KAME */
  895|       |							}
  896|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
  897|      0|						}
  898|      0|						if ((site_scope == 0) &&
  ------------------
  |  Branch (898:11): [True: 0, False: 0]
  ------------------
  899|      0|						    (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr))) {
  ------------------
  |  Branch (899:11): [True: 0, False: 0]
  ------------------
  900|      0|							continue;
  901|      0|						}
  902|      0|						if (SCTP6_ARE_ADDR_EQUAL(sin6, rsin6)) {
  ------------------
  |  Branch (902:11): [True: 0, False: 0]
  ------------------
  903|      0|							SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  904|      0|							return (1);
  905|      0|						}
  906|      0|					}
  907|      0|					break;
  908|      0|#endif
  909|      0|#if defined(__Userspace__)
  910|      0|				case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (910:5): [True: 0, False: 0]
  ------------------
  911|      0|					if (conn_addr_legal) {
  ------------------
  |  Branch (911:10): [True: 0, False: 0]
  ------------------
  912|      0|						struct sockaddr_conn *sconn, *rsconn;
  913|       |
  914|      0|						sconn = &sctp_ifa->address.sconn;
  915|      0|						rsconn = (struct sockaddr_conn *)to;
  916|      0|						if (sconn->sconn_addr == rsconn->sconn_addr) {
  ------------------
  |  Branch (916:11): [True: 0, False: 0]
  ------------------
  917|      0|							SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  918|      0|							return (1);
  919|      0|						}
  920|      0|					}
  921|      0|					break;
  922|      0|#endif
  923|      0|				default:
  ------------------
  |  Branch (923:5): [True: 0, False: 0]
  ------------------
  924|       |					/* TSNH */
  925|      0|					break;
  926|      0|				}
  927|      0|			}
  928|      0|		}
  929|  31.8k|	} else {
  930|  31.8k|		struct sctp_laddr *laddr;
  931|       |
  932|  31.8k|		LIST_FOREACH(laddr, &stcb->sctp_ep->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (932:3): [True: 31.8k, False: 0]
  ------------------
  933|  31.8k|			if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
  ------------------
  |  |   90|  31.8k|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (933:8): [True: 0, False: 31.8k]
  ------------------
  934|      0|				SCTPDBG(SCTP_DEBUG_PCB1, "ifa being deleted\n");
  935|      0|				continue;
  936|      0|			}
  937|  31.8k|			if (sctp_is_addr_restricted(stcb, laddr->ifa) &&
  ------------------
  |  Branch (937:8): [True: 0, False: 31.8k]
  ------------------
  938|      0|			    (!sctp_is_addr_pending(stcb, laddr->ifa))) {
  ------------------
  |  Branch (938:8): [True: 0, False: 0]
  ------------------
  939|       |				/* We allow pending addresses, where we
  940|       |				 * have sent an asconf-add to be considered
  941|       |				 * valid.
  942|       |				 */
  943|      0|				continue;
  944|      0|			}
  945|  31.8k|			if (laddr->ifa->address.sa.sa_family != to->sa_family) {
  ------------------
  |  Branch (945:8): [True: 0, False: 31.8k]
  ------------------
  946|      0|				continue;
  947|      0|			}
  948|  31.8k|			switch (to->sa_family) {
  949|      0|#ifdef INET
  950|      0|			case AF_INET:
  ------------------
  |  Branch (950:4): [True: 0, False: 31.8k]
  ------------------
  951|      0|			{
  952|      0|				struct sockaddr_in *sin, *rsin;
  953|       |
  954|      0|				sin = &laddr->ifa->address.sin;
  955|      0|				rsin = (struct sockaddr_in *)to;
  956|      0|				if (sin->sin_addr.s_addr == rsin->sin_addr.s_addr) {
  ------------------
  |  Branch (956:9): [True: 0, False: 0]
  ------------------
  957|      0|					SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  958|      0|					return (1);
  959|      0|				}
  960|      0|				break;
  961|      0|			}
  962|      0|#endif
  963|      0|#ifdef INET6
  964|      0|			case AF_INET6:
  ------------------
  |  Branch (964:4): [True: 0, False: 31.8k]
  ------------------
  965|      0|			{
  966|      0|				struct sockaddr_in6 *sin6, *rsin6;
  967|       |
  968|      0|				sin6 = &laddr->ifa->address.sin6;
  969|      0|				rsin6 = (struct sockaddr_in6 *)to;
  970|      0|				if (SCTP6_ARE_ADDR_EQUAL(sin6, rsin6)) {
  ------------------
  |  Branch (970:9): [True: 0, False: 0]
  ------------------
  971|      0|					SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  972|      0|					return (1);
  973|      0|				}
  974|      0|				break;
  975|      0|			}
  976|       |
  977|      0|#endif
  978|      0|#if defined(__Userspace__)
  979|  31.8k|			case AF_CONN:
  ------------------
  |  | 1014|  31.8k|#define AF_CONN 123
  ------------------
  |  Branch (979:4): [True: 31.8k, False: 0]
  ------------------
  980|  31.8k|			{
  981|  31.8k|				struct sockaddr_conn *sconn, *rsconn;
  982|       |
  983|  31.8k|				sconn = &laddr->ifa->address.sconn;
  984|  31.8k|				rsconn = (struct sockaddr_conn *)to;
  985|  31.8k|				if (sconn->sconn_addr == rsconn->sconn_addr) {
  ------------------
  |  Branch (985:9): [True: 31.8k, False: 0]
  ------------------
  986|  31.8k|					SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  31.8k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  31.8k|	do {                         \
  |  |  |  |  113|  31.8k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 31.8k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  31.8k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 31.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  987|  31.8k|					return (1);
  988|  31.8k|				}
  989|      0|				break;
  990|  31.8k|			}
  991|      0|#endif
  992|      0|			default:
  ------------------
  |  Branch (992:4): [True: 0, False: 31.8k]
  ------------------
  993|       |				/* TSNH */
  994|      0|				break;
  995|  31.8k|			}
  996|  31.8k|		}
  997|  31.8k|	}
  998|      0|	SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  999|      0|	return (0);
 1000|      0|}
sctp_pcb.c:sctp_endpoint_probe:
 1738|  10.1k|{
 1739|  10.1k|	struct sctp_inpcb *inp;
 1740|  10.1k|	struct sctp_laddr *laddr;
 1741|  10.1k|#ifdef INET
 1742|  10.1k|	struct sockaddr_in *sin;
 1743|  10.1k|#endif
 1744|  10.1k|#ifdef INET6
 1745|  10.1k|	struct sockaddr_in6 *sin6;
 1746|  10.1k|	struct sockaddr_in6 *intf_addr6;
 1747|  10.1k|#endif
 1748|  10.1k|#if defined(__Userspace__)
 1749|  10.1k|	struct sockaddr_conn *sconn;
 1750|  10.1k|#endif
 1751|       |#ifdef SCTP_MVRF
 1752|       |	int i;
 1753|       |#endif
 1754|  10.1k|	int  fnd;
 1755|       |
 1756|  10.1k|#ifdef INET
 1757|  10.1k|	sin = NULL;
 1758|  10.1k|#endif
 1759|  10.1k|#ifdef INET6
 1760|  10.1k|	sin6 = NULL;
 1761|  10.1k|#endif
 1762|  10.1k|#if defined(__Userspace__)
 1763|  10.1k|	sconn = NULL;
 1764|  10.1k|#endif
 1765|  10.1k|	switch (nam->sa_family) {
 1766|      0|#ifdef INET
 1767|      0|	case AF_INET:
  ------------------
  |  Branch (1767:2): [True: 0, False: 10.1k]
  ------------------
 1768|      0|		sin = (struct sockaddr_in *)nam;
 1769|      0|		break;
 1770|      0|#endif
 1771|      0|#ifdef INET6
 1772|      0|	case AF_INET6:
  ------------------
  |  Branch (1772:2): [True: 0, False: 10.1k]
  ------------------
 1773|      0|		sin6 = (struct sockaddr_in6 *)nam;
 1774|      0|		break;
 1775|      0|#endif
 1776|      0|#if defined(__Userspace__)
 1777|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (1777:2): [True: 10.1k, False: 0]
  ------------------
 1778|  10.1k|		sconn = (struct sockaddr_conn *)nam;
 1779|  10.1k|		break;
 1780|      0|#endif
 1781|      0|	default:
  ------------------
  |  Branch (1781:2): [True: 0, False: 10.1k]
  ------------------
 1782|       |		/* unsupported family */
 1783|      0|		return (NULL);
 1784|  10.1k|	}
 1785|       |
 1786|  10.1k|	if (head == NULL)
  ------------------
  |  Branch (1786:6): [True: 0, False: 10.1k]
  ------------------
 1787|      0|		return (NULL);
 1788|       |
 1789|  10.1k|	LIST_FOREACH(inp, head, sctp_hash) {
  ------------------
  |  Branch (1789:2): [True: 0, False: 10.1k]
  ------------------
 1790|      0|		SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1791|      0|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|      0|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1791:7): [True: 0, False: 0]
  ------------------
 1792|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1793|      0|			continue;
 1794|      0|		}
 1795|      0|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) &&
  ------------------
  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (1795:7): [True: 0, False: 0]
  ------------------
 1796|      0|		    (inp->sctp_lport == lport)) {
  ------------------
  |  |  426|      0|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      0|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      0|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1796:7): [True: 0, False: 0]
  ------------------
 1797|       |			/* got it */
 1798|      0|			switch (nam->sa_family) {
 1799|      0|#ifdef INET
 1800|      0|			case AF_INET:
  ------------------
  |  Branch (1800:4): [True: 0, False: 0]
  ------------------
 1801|      0|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) &&
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (1801:9): [True: 0, False: 0]
  ------------------
 1802|      0|				    SCTP_IPV6_V6ONLY(inp)) {
  ------------------
  |  |  954|      0|#define SCTP_IPV6_V6ONLY(sctp_inpcb)	((sctp_inpcb)->ip_inp.inp.inp_flags & IN6P_IPV6_V6ONLY)
  |  |  ------------------
  |  |  |  |  290|      0|#define IN6P_IPV6_V6ONLY	0x008000 /* restrict AF_INET6 socket for v6 */
  |  |  ------------------
  |  |  |  Branch (954:38): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1803|       |					/* IPv4 on a IPv6 socket with ONLY IPv6 set */
 1804|      0|					SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1805|      0|					continue;
 1806|      0|				}
 1807|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1808|       |				if (prison_check_ip4(inp->ip_inp.inp.inp_cred,
 1809|       |				                     &sin->sin_addr) != 0) {
 1810|       |					SCTP_INP_RUNLOCK(inp);
 1811|       |					continue;
 1812|       |				}
 1813|       |#endif
 1814|      0|				break;
 1815|      0|#endif
 1816|      0|#ifdef INET6
 1817|      0|			case AF_INET6:
  ------------------
  |  Branch (1817:4): [True: 0, False: 0]
  ------------------
 1818|       |				/* A V6 address and the endpoint is NOT bound V6 */
 1819|      0|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) == 0) {
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (1819:9): [True: 0, False: 0]
  ------------------
 1820|      0|					SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1821|      0|					continue;
 1822|      0|				}
 1823|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1824|       |				if (prison_check_ip6(inp->ip_inp.inp.inp_cred,
 1825|       |				                     &sin6->sin6_addr) != 0) {
 1826|       |					SCTP_INP_RUNLOCK(inp);
 1827|       |					continue;
 1828|       |				}
 1829|       |#endif
 1830|      0|				break;
 1831|      0|#endif
 1832|      0|			default:
  ------------------
  |  Branch (1832:4): [True: 0, False: 0]
  ------------------
 1833|      0|				break;
 1834|      0|			}
 1835|       |			/* does a VRF id match? */
 1836|      0|			fnd = 0;
 1837|       |#ifdef SCTP_MVRF
 1838|       |			for (i = 0; i < inp->num_vrfs; i++) {
 1839|       |				if (inp->m_vrf_ids[i] == vrf_id) {
 1840|       |					fnd = 1;
 1841|       |					break;
 1842|       |				}
 1843|       |			}
 1844|       |#else
 1845|      0|			if (inp->def_vrf_id == vrf_id)
  ------------------
  |  Branch (1845:8): [True: 0, False: 0]
  ------------------
 1846|      0|				fnd = 1;
 1847|      0|#endif
 1848|       |
 1849|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1850|      0|			if (!fnd)
  ------------------
  |  Branch (1850:8): [True: 0, False: 0]
  ------------------
 1851|      0|				continue;
 1852|      0|			return (inp);
 1853|      0|		}
 1854|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1855|      0|	}
 1856|  10.1k|	switch (nam->sa_family) {
 1857|      0|#ifdef INET
 1858|      0|	case AF_INET:
  ------------------
  |  Branch (1858:2): [True: 0, False: 10.1k]
  ------------------
 1859|      0|		if (sin->sin_addr.s_addr == INADDR_ANY) {
  ------------------
  |  Branch (1859:7): [True: 0, False: 0]
  ------------------
 1860|       |			/* Can't hunt for one that has no address specified */
 1861|      0|			return (NULL);
 1862|      0|		}
 1863|      0|		break;
 1864|      0|#endif
 1865|      0|#ifdef INET6
 1866|      0|	case AF_INET6:
  ------------------
  |  Branch (1866:2): [True: 0, False: 10.1k]
  ------------------
 1867|      0|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (1867:7): [True: 0, False: 0]
  ------------------
 1868|       |			/* Can't hunt for one that has no address specified */
 1869|      0|			return (NULL);
 1870|      0|		}
 1871|      0|		break;
 1872|      0|#endif
 1873|      0|#if defined(__Userspace__)
 1874|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (1874:2): [True: 10.1k, False: 0]
  ------------------
 1875|  10.1k|		if (sconn->sconn_addr == NULL) {
  ------------------
  |  Branch (1875:7): [True: 0, False: 10.1k]
  ------------------
 1876|      0|			return (NULL);
 1877|      0|		}
 1878|  10.1k|		break;
 1879|  10.1k|#endif
 1880|  10.1k|	default:
  ------------------
  |  Branch (1880:2): [True: 0, False: 10.1k]
  ------------------
 1881|      0|		break;
 1882|  10.1k|	}
 1883|       |	/*
 1884|       |	 * ok, not bound to all so see if we can find a EP bound to this
 1885|       |	 * address.
 1886|       |	 */
 1887|  10.1k|	LIST_FOREACH(inp, head, sctp_hash) {
  ------------------
  |  Branch (1887:2): [True: 0, False: 10.1k]
  ------------------
 1888|      0|		SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1889|      0|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|      0|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1889:7): [True: 0, False: 0]
  ------------------
 1890|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1891|      0|			continue;
 1892|      0|		}
 1893|      0|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL)) {
  ------------------
  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (1893:7): [True: 0, False: 0]
  ------------------
 1894|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1895|      0|			continue;
 1896|      0|		}
 1897|       |		/*
 1898|       |		 * Ok this could be a likely candidate, look at all of its
 1899|       |		 * addresses
 1900|       |		 */
 1901|      0|		if (inp->sctp_lport != lport) {
  ------------------
  |  |  426|      0|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      0|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      0|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1901:7): [True: 0, False: 0]
  ------------------
 1902|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1903|      0|			continue;
 1904|      0|		}
 1905|       |		/* does a VRF id match? */
 1906|      0|		fnd = 0;
 1907|       |#ifdef SCTP_MVRF
 1908|       |		for (i = 0; i < inp->num_vrfs; i++) {
 1909|       |			if (inp->m_vrf_ids[i] == vrf_id) {
 1910|       |				fnd = 1;
 1911|       |				break;
 1912|       |			}
 1913|       |		}
 1914|       |#else
 1915|      0|		if (inp->def_vrf_id == vrf_id)
  ------------------
  |  Branch (1915:7): [True: 0, False: 0]
  ------------------
 1916|      0|			fnd = 1;
 1917|       |
 1918|      0|#endif
 1919|      0|		if (!fnd) {
  ------------------
  |  Branch (1919:7): [True: 0, False: 0]
  ------------------
 1920|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1921|      0|			continue;
 1922|      0|		}
 1923|      0|		LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (1923:3): [True: 0, False: 0]
  ------------------
 1924|      0|			if (laddr->ifa == NULL) {
  ------------------
  |  Branch (1924:8): [True: 0, False: 0]
  ------------------
 1925|      0|				SCTPDBG(SCTP_DEBUG_PCB1, "%s: NULL ifa\n",
 1926|      0|					__func__);
 1927|      0|				continue;
 1928|      0|			}
 1929|      0|			SCTPDBG(SCTP_DEBUG_PCB1, "Ok laddr->ifa:%p is possible, ",
 1930|      0|				(void *)laddr->ifa);
 1931|      0|			if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
  ------------------
  |  |   90|      0|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (1931:8): [True: 0, False: 0]
  ------------------
 1932|      0|				SCTPDBG(SCTP_DEBUG_PCB1, "Huh IFA being deleted\n");
 1933|      0|				continue;
 1934|      0|			}
 1935|      0|			if (laddr->ifa->address.sa.sa_family == nam->sa_family) {
  ------------------
  |  Branch (1935:8): [True: 0, False: 0]
  ------------------
 1936|       |				/* possible, see if it matches */
 1937|      0|				switch (nam->sa_family) {
  ------------------
  |  Branch (1937:13): [True: 0, False: 0]
  ------------------
 1938|      0|#ifdef INET
 1939|      0|				case AF_INET:
  ------------------
  |  Branch (1939:5): [True: 0, False: 0]
  ------------------
 1940|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1941|       |					if (sin == NULL) {
 1942|       |						/* TSNH */
 1943|       |						break;
 1944|       |					}
 1945|       |#endif
 1946|      0|					if (sin->sin_addr.s_addr ==
  ------------------
  |  Branch (1946:10): [True: 0, False: 0]
  ------------------
 1947|      0|					    laddr->ifa->address.sin.sin_addr.s_addr) {
 1948|      0|						SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1949|      0|						return (inp);
 1950|      0|					}
 1951|      0|					break;
 1952|      0|#endif
 1953|      0|#ifdef INET6
 1954|      0|				case AF_INET6:
  ------------------
  |  Branch (1954:5): [True: 0, False: 0]
  ------------------
 1955|      0|					intf_addr6 = &laddr->ifa->address.sin6;
 1956|      0|					if (SCTP6_ARE_ADDR_EQUAL(sin6,
  ------------------
  |  Branch (1956:10): [True: 0, False: 0]
  ------------------
 1957|      0|					    intf_addr6)) {
 1958|      0|						SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1959|      0|						return (inp);
 1960|      0|					}
 1961|      0|					break;
 1962|      0|#endif
 1963|      0|#if defined(__Userspace__)
 1964|      0|				case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (1964:5): [True: 0, False: 0]
  ------------------
 1965|      0|					if (sconn->sconn_addr == laddr->ifa->address.sconn.sconn_addr) {
  ------------------
  |  Branch (1965:10): [True: 0, False: 0]
  ------------------
 1966|      0|						SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1967|      0|						return (inp);
 1968|      0|					}
 1969|      0|					break;
 1970|      0|#endif
 1971|      0|				}
 1972|      0|			}
 1973|      0|		}
 1974|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1975|      0|	}
 1976|  10.1k|	return (NULL);
 1977|  10.1k|}
sctp_pcb.c:sctp_findassoc_by_vtag:
 2330|  23.7k|{
 2331|       |	/*
 2332|       |	 * Use my vtag to hash. If we find it we then verify the source addr
 2333|       |	 * is in the assoc. If all goes well we save a bit on rec of a
 2334|       |	 * packet.
 2335|       |	 */
 2336|  23.7k|	struct sctpasochead *head;
 2337|  23.7k|	struct sctp_nets *net;
 2338|  23.7k|	struct sctp_tcb *stcb;
 2339|       |#ifdef SCTP_MVRF
 2340|       |	unsigned int i;
 2341|       |#endif
 2342|       |
 2343|  23.7k|	SCTP_INP_INFO_RLOCK();
  ------------------
  |  |  295|  23.7k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2344|  23.7k|	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(vtag,
  ------------------
  |  |  587|  23.7k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(vtag,
  ------------------
  |  |   57|  23.7k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 2345|  23.7k|	                                                        SCTP_BASE_INFO(hashasocmark))];
 2346|  23.7k|	LIST_FOREACH(stcb, head, sctp_asocs) {
  ------------------
  |  Branch (2346:2): [True: 23.7k, False: 0]
  ------------------
 2347|  23.7k|		SCTP_INP_RLOCK(stcb->sctp_ep);
  ------------------
  |  |  376|  23.7k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2348|  23.7k|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  23.7k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (2348:7): [True: 0, False: 23.7k]
  ------------------
 2349|      0|			SCTP_INP_RUNLOCK(stcb->sctp_ep);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2350|      0|			continue;
 2351|      0|		}
 2352|       |#ifdef SCTP_MVRF
 2353|       |		for (i = 0; i < stcb->sctp_ep->num_vrfs; i++) {
 2354|       |			if (stcb->sctp_ep->m_vrf_ids[i] == vrf_id) {
 2355|       |				break;
 2356|       |			}
 2357|       |		}
 2358|       |		if (i == stcb->sctp_ep->num_vrfs) {
 2359|       |			SCTP_INP_RUNLOCK(inp);
 2360|       |			continue;
 2361|       |		}
 2362|       |#else
 2363|  23.7k|		if (stcb->sctp_ep->def_vrf_id != vrf_id) {
  ------------------
  |  Branch (2363:7): [True: 0, False: 23.7k]
  ------------------
 2364|      0|			SCTP_INP_RUNLOCK(stcb->sctp_ep);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2365|      0|			continue;
 2366|      0|		}
 2367|  23.7k|#endif
 2368|  23.7k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  23.7k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2369|  23.7k|		SCTP_INP_RUNLOCK(stcb->sctp_ep);
  ------------------
  |  |  381|  23.7k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2370|  23.7k|		if (stcb->asoc.my_vtag == vtag) {
  ------------------
  |  Branch (2370:7): [True: 23.7k, False: 0]
  ------------------
 2371|       |			/* candidate */
 2372|  23.7k|			if (stcb->rport != rport) {
  ------------------
  |  Branch (2372:8): [True: 0, False: 23.7k]
  ------------------
 2373|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2374|      0|				continue;
 2375|      0|			}
 2376|  23.7k|			if (stcb->sctp_ep->sctp_lport != lport) {
  ------------------
  |  |  426|  23.7k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  23.7k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  23.7k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2376:8): [True: 0, False: 23.7k]
  ------------------
 2377|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2378|      0|				continue;
 2379|      0|			}
 2380|  23.7k|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  23.7k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (2380:8): [True: 0, False: 23.7k]
  ------------------
 2381|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2382|      0|				continue;
 2383|      0|			}
 2384|       |			/* RRS:Need toaddr check here */
 2385|  23.7k|			if (sctp_does_stcb_own_this_addr(stcb, to) == 0) {
  ------------------
  |  Branch (2385:8): [True: 0, False: 23.7k]
  ------------------
 2386|       |			        /* Endpoint does not own this address */
 2387|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2388|      0|				continue;
 2389|      0|			}
 2390|  23.7k|			if (remote_tag) {
  ------------------
  |  Branch (2390:8): [True: 0, False: 23.7k]
  ------------------
 2391|       |				/* If we have both vtags that's all we match on */
 2392|      0|				if (stcb->asoc.peer_vtag == remote_tag) {
  ------------------
  |  Branch (2392:9): [True: 0, False: 0]
  ------------------
 2393|       |					/* If both tags match we consider it conclusive
 2394|       |					 * and check NO source/destination addresses
 2395|       |					 */
 2396|      0|					goto conclusive;
 2397|      0|				}
 2398|      0|			}
 2399|  23.7k|			if (skip_src_check) {
  ------------------
  |  Branch (2399:8): [True: 0, False: 23.7k]
  ------------------
 2400|      0|			conclusive:
 2401|      0|			        if (from) {
  ------------------
  |  Branch (2401:16): [True: 0, False: 0]
  ------------------
 2402|      0|					*netp = sctp_findnet(stcb, from);
 2403|      0|				} else {
 2404|      0|					*netp = NULL;	/* unknown */
 2405|      0|				}
 2406|      0|				if (inp_p)
  ------------------
  |  Branch (2406:9): [True: 0, False: 0]
  ------------------
 2407|      0|					*inp_p = stcb->sctp_ep;
 2408|      0|				SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2409|      0|				return (stcb);
 2410|      0|			}
 2411|  23.7k|			net = sctp_findnet(stcb, from);
 2412|  23.7k|			if (net) {
  ------------------
  |  Branch (2412:8): [True: 23.7k, False: 0]
  ------------------
 2413|       |				/* yep its him. */
 2414|  23.7k|				*netp = net;
 2415|  23.7k|				SCTP_STAT_INCR(sctps_vtagexpress);
  ------------------
  |  | 1112|  23.7k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  23.7k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  23.7k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2416|  23.7k|				*inp_p = stcb->sctp_ep;
 2417|  23.7k|				SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|  23.7k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  23.7k|	do {                         \
  |  |  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  23.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2418|  23.7k|				return (stcb);
 2419|  23.7k|			} else {
 2420|       |				/*
 2421|       |				 * not him, this should only happen in rare
 2422|       |				 * cases so I peg it.
 2423|       |				 */
 2424|      0|				SCTP_STAT_INCR(sctps_vtagbogus);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2425|      0|			}
 2426|  23.7k|		}
 2427|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2428|      0|	}
 2429|      0|	SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2430|      0|	return (NULL);
 2431|      0|}
sctp_pcb.c:sctp_insert_laddr:
 3084|  10.1k|{
 3085|  10.1k|	struct sctp_laddr *laddr;
 3086|       |
 3087|  10.1k|	laddr = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_laddr), struct sctp_laddr);
  ------------------
  |  |  703|  10.1k|        (type *)malloc(zone);
  ------------------
 3088|  10.1k|	if (laddr == NULL) {
  ------------------
  |  Branch (3088:6): [True: 0, False: 10.1k]
  ------------------
 3089|       |		/* out of memory? */
 3090|      0|		SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 3091|      0|		return (EINVAL);
 3092|      0|	}
 3093|  10.1k|	SCTP_INCR_LADDR_COUNT();
  ------------------
  |  |  664|  10.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_laddr), 1)
  |  |  ------------------
  |  |  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 3094|  10.1k|	memset(laddr, 0, sizeof(*laddr));
 3095|  10.1k|	(void)SCTP_GETTIME_TIMEVAL(&laddr->start_time);
  ------------------
  |  |  991|  10.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 3096|  10.1k|	laddr->ifa = ifa;
 3097|  10.1k|	laddr->action = act;
 3098|  10.1k|	atomic_add_int(&ifa->refcount, 1);
  ------------------
  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 3099|       |	/* insert it */
 3100|  10.1k|	LIST_INSERT_HEAD(list, laddr, sctp_nxt_addr);
  ------------------
  |  Branch (3100:2): [True: 0, False: 10.1k]
  |  Branch (3100:2): [Folded, False: 10.1k]
  ------------------
 3101|       |
 3102|  10.1k|	return (0);
 3103|  10.1k|}
sctp_pcb.c:sctp_iterator_inp_being_freed:
 3675|  10.2k|{
 3676|  10.2k|	struct sctp_iterator *it, *nit;
 3677|       |
 3678|       |	/*
 3679|       |	 * We enter with the only the ITERATOR_LOCK in place and a write
 3680|       |	 * lock on the inp_info stuff.
 3681|       |	 */
 3682|  10.2k|	it = sctp_it_ctl.cur_it;
 3683|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3684|       |	if (it && (it->vn != curvnet)) {
 3685|       |		/* Its not looking at our VNET */
 3686|       |		return;
 3687|       |	}
 3688|       |#endif
 3689|  10.2k|	if (it && (it->inp == inp)) {
  ------------------
  |  Branch (3689:6): [True: 0, False: 10.2k]
  |  Branch (3689:12): [True: 0, False: 0]
  ------------------
 3690|       |		/*
 3691|       |		 * This is tricky and we hold the iterator lock,
 3692|       |		 * but when it returns and gets the lock (when we
 3693|       |		 * release it) the iterator will try to operate on
 3694|       |		 * inp. We need to stop that from happening. But
 3695|       |		 * of course the iterator has a reference on the
 3696|       |		 * stcb and inp. We can mark it and it will stop.
 3697|       |		 *
 3698|       |		 * If its a single iterator situation, we
 3699|       |		 * set the end iterator flag. Otherwise
 3700|       |		 * we set the iterator to go to the next inp.
 3701|       |		 *
 3702|       |		 */
 3703|      0|		if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) {
  ------------------
  |  |  177|      0|#define SCTP_ITERATOR_DO_SINGLE_INP	0x00000002
  ------------------
  |  Branch (3703:7): [True: 0, False: 0]
  ------------------
 3704|      0|			sctp_it_ctl.iterator_flags |= SCTP_ITERATOR_STOP_CUR_IT;
  ------------------
  |  |  236|      0|#define SCTP_ITERATOR_STOP_CUR_IT	0x00000004
  ------------------
 3705|      0|		} else {
 3706|      0|			sctp_it_ctl.iterator_flags |= SCTP_ITERATOR_STOP_CUR_INP;
  ------------------
  |  |  237|      0|#define SCTP_ITERATOR_STOP_CUR_INP	0x00000008
  ------------------
 3707|      0|		}
 3708|      0|	}
 3709|       |	/* Now go through and remove any single reference to
 3710|       |	 * our inp that may be still pending on the list
 3711|       |	 */
 3712|  10.2k|	SCTP_IPI_ITERATOR_WQ_LOCK();
  ------------------
  |  |  640|  10.2k|	KASSERT(pthread_mutex_lock(&sctp_it_ctl.ipi_iterator_wq_mtx) == 0, ("%s:%d: ipi_iterator_wq_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3713|  10.2k|	TAILQ_FOREACH_SAFE(it, &sctp_it_ctl.iteratorhead, sctp_nxt_itr, nit) {
  ------------------
  |  | 1129|  10.2k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  10.2k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 10.2k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  10.2k|              (var) = (tvar))
  ------------------
 3714|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3715|       |		if (it->vn != curvnet) {
 3716|       |			continue;
 3717|       |		}
 3718|       |#endif
 3719|      0|		if (it->inp == inp) {
  ------------------
  |  Branch (3719:7): [True: 0, False: 0]
  ------------------
 3720|       |			/* This one points to me is it inp specific? */
 3721|      0|			if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) {
  ------------------
  |  |  177|      0|#define SCTP_ITERATOR_DO_SINGLE_INP	0x00000002
  ------------------
  |  Branch (3721:8): [True: 0, False: 0]
  ------------------
 3722|       |				/* Remove and free this one */
 3723|      0|				TAILQ_REMOVE(&sctp_it_ctl.iteratorhead,
  ------------------
  |  Branch (3723:5): [True: 0, False: 0]
  |  Branch (3723:5): [Folded, False: 0]
  ------------------
 3724|      0|				    it, sctp_nxt_itr);
 3725|      0|				if (it->function_atend != NULL) {
  ------------------
  |  Branch (3725:9): [True: 0, False: 0]
  ------------------
 3726|      0|					(*it->function_atend) (it->pointer, it->val);
 3727|      0|				}
 3728|      0|				SCTP_FREE(it, SCTP_M_ITER);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3729|      0|			} else {
 3730|      0|				it->inp = LIST_NEXT(it->inp, sctp_list);
 3731|      0|				if (it->inp) {
  ------------------
  |  Branch (3731:9): [True: 0, False: 0]
  ------------------
 3732|      0|					SCTP_INP_INCR_REF(it->inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 3733|      0|				}
 3734|      0|			}
 3735|       |			/* When its put in the refcnt is incremented so decr it */
 3736|      0|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3737|      0|		}
 3738|      0|	}
 3739|  10.2k|	SCTP_IPI_ITERATOR_WQ_UNLOCK();
  ------------------
  |  |  642|  10.2k|	KASSERT(pthread_mutex_unlock(&sctp_it_ctl.ipi_iterator_wq_mtx) == 0, ("%s:%d: ipi_iterator_wq_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3740|  10.2k|}
sctp_pcb.c:sctp_remove_laddr:
 3110|  10.1k|{
 3111|       |
 3112|       |	/* remove from the list */
 3113|  10.1k|	LIST_REMOVE(laddr, sctp_nxt_addr);
  ------------------
  |  Branch (3113:2): [True: 0, False: 10.1k]
  |  Branch (3113:2): [Folded, False: 10.1k]
  ------------------
 3114|  10.1k|	sctp_free_ifa(laddr->ifa);
 3115|  10.1k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_laddr), laddr);
  ------------------
  |  |  707|  10.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  10.1k|	free(element);  \
  |  |  709|  10.1k|}
  ------------------
 3116|  10.1k|	SCTP_DECR_LADDR_COUNT();
  ------------------
  |  |  667|  10.1k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_laddr), 1)
  |  |  ------------------
  |  |  |  |   97|  10.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3117|  10.1k|}
sctp_pcb.c:sctp_aloc_assoc_locked:
 4770|  10.1k|{
 4771|       |	/* note the p argument is only valid in unbound sockets */
 4772|       |
 4773|  10.1k|	struct sctp_tcb *stcb;
 4774|  10.1k|	struct sctp_association *asoc;
 4775|  10.1k|	struct sctpasochead *head;
 4776|  10.1k|	uint16_t rport;
 4777|  10.1k|	int err;
 4778|       |
 4779|  10.1k|	SCTP_INP_INFO_WLOCK_ASSERT();
 4780|  10.1k|	SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  10.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4781|       |
 4782|       |	/*
 4783|       |	 * Assumption made here: Caller has done a
 4784|       |	 * sctp_findassociation_ep_addr(ep, addr's); to make sure the
 4785|       |	 * address does not exist already.
 4786|       |	 */
 4787|  10.1k|	if (SCTP_BASE_INFO(ipi_count_asoc) >= SCTP_MAX_NUM_OF_ASOC) {
  ------------------
  |  |  587|  10.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	if (SCTP_BASE_INFO(ipi_count_asoc) >= SCTP_MAX_NUM_OF_ASOC) {
  ------------------
  |  |  265|  10.1k|#define SCTP_MAX_NUM_OF_ASOC	40000
  ------------------
  |  Branch (4787:6): [True: 0, False: 10.1k]
  ------------------
 4788|       |		/* Hit max assoc, sorry no more */
 4789|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOBUFS);
 4790|      0|		*error = ENOBUFS;
 4791|      0|		return (NULL);
 4792|      0|	}
 4793|  10.1k|	if (firstaddr == NULL) {
  ------------------
  |  Branch (4793:6): [True: 0, False: 10.1k]
  ------------------
 4794|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4795|      0|		*error = EINVAL;
 4796|      0|		return (NULL);
 4797|      0|	}
 4798|  10.1k|	if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  546|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
              	if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4798:6): [True: 0, False: 10.1k]
  ------------------
 4799|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4800|      0|		*error = EINVAL;
 4801|      0|		return (NULL);
 4802|      0|	}
 4803|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) &&
  ------------------
  |  |  540|  10.1k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4803:6): [True: 0, False: 10.1k]
  ------------------
 4804|      0|	    ((sctp_is_feature_off(inp, SCTP_PCB_FLAGS_PORTREUSE)) ||
  ------------------
  |  |   53|      0|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  ------------------
  |  Branch (4804:7): [True: 0, False: 0]
  ------------------
 4805|      0|	     (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED))) {
  ------------------
  |  |  539|      0|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (4805:7): [True: 0, False: 0]
  ------------------
 4806|       |		/*
 4807|       |		 * If its in the TCP pool, its NOT allowed to create an
 4808|       |		 * association. The parent listener needs to call
 4809|       |		 * sctp_aloc_assoc.. or the one-2-many socket. If a peeled
 4810|       |		 * off, or connected one does this.. its an error.
 4811|       |		 */
 4812|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4813|      0|		*error = EINVAL;
 4814|      0|		return (NULL);
 4815|      0|	}
 4816|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|  10.1k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4816:6): [True: 0, False: 10.1k]
  ------------------
 4817|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)) {
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4817:6): [True: 10.1k, False: 0]
  ------------------
 4818|  10.1k|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) ||
  ------------------
  |  |  535|  10.1k|#define SCTP_PCB_FLAGS_WAS_CONNECTED    0x00080000
  ------------------
  |  Branch (4818:7): [True: 0, False: 10.1k]
  ------------------
 4819|  10.1k|		    (inp->sctp_flags & SCTP_PCB_FLAGS_WAS_ABORTED)) {
  ------------------
  |  |  536|  10.1k|#define SCTP_PCB_FLAGS_WAS_ABORTED      0x00100000
  ------------------
  |  Branch (4819:7): [True: 0, False: 10.1k]
  ------------------
 4820|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4821|      0|			*error = EINVAL;
 4822|      0|			return (NULL);
 4823|      0|		}
 4824|  10.1k|	}
 4825|  10.1k|	SCTPDBG(SCTP_DEBUG_PCB3, "Allocate an association for peer:");
 4826|       |#ifdef SCTP_DEBUG
 4827|       |	if (firstaddr) {
 4828|       |		SCTPDBG_ADDR(SCTP_DEBUG_PCB3, firstaddr);
 4829|       |		switch (firstaddr->sa_family) {
 4830|       |#ifdef INET
 4831|       |		case AF_INET:
 4832|       |			SCTPDBG(SCTP_DEBUG_PCB3, "Port:%d\n",
 4833|       |			        ntohs(((struct sockaddr_in *)firstaddr)->sin_port));
 4834|       |			break;
 4835|       |#endif
 4836|       |#ifdef INET6
 4837|       |		case AF_INET6:
 4838|       |			SCTPDBG(SCTP_DEBUG_PCB3, "Port:%d\n",
 4839|       |			        ntohs(((struct sockaddr_in6 *)firstaddr)->sin6_port));
 4840|       |			break;
 4841|       |#endif
 4842|       |#if defined(__Userspace__)
 4843|       |		case AF_CONN:
 4844|       |			SCTPDBG(SCTP_DEBUG_PCB3, "Port:%d\n",
 4845|       |			        ntohs(((struct sockaddr_conn *)firstaddr)->sconn_port));
 4846|       |			break;
 4847|       |#endif
 4848|       |		default:
 4849|       |			break;
 4850|       |		}
 4851|       |	} else {
 4852|       |		SCTPDBG(SCTP_DEBUG_PCB3,"None\n");
 4853|       |	}
 4854|       |#endif				/* SCTP_DEBUG */
 4855|  10.1k|	switch (firstaddr->sa_family) {
 4856|      0|#ifdef INET
 4857|      0|	case AF_INET:
  ------------------
  |  Branch (4857:2): [True: 0, False: 10.1k]
  ------------------
 4858|      0|	{
 4859|      0|		struct sockaddr_in *sin;
 4860|       |
 4861|      0|		sin = (struct sockaddr_in *)firstaddr;
 4862|      0|		if ((ntohs(sin->sin_port) == 0) ||
  ------------------
  |  Branch (4862:7): [True: 0, False: 0]
  ------------------
 4863|      0|		    in_broadcast(sin->sin_addr) ||
  ------------------
  |  Branch (4863:7): [True: 0, False: 0]
  ------------------
 4864|      0|		    IN_MULTICAST(ntohl(sin->sin_addr.s_addr)) ||
  ------------------
  |  Branch (4864:7): [True: 0, False: 0]
  ------------------
 4865|      0|#if defined(__Userspace__)
 4866|      0|		    ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) ||
  ------------------
  |  |  550|      0|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (4866:8): [True: 0, False: 0]
  ------------------
 4867|      0|		     ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) &&
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (4867:9): [True: 0, False: 0]
  ------------------
 4868|      0|		      (SCTP_IPV6_V6ONLY(inp) != 0)))) {
  ------------------
  |  |  954|      0|#define SCTP_IPV6_V6ONLY(sctp_inpcb)	((sctp_inpcb)->ip_inp.inp.inp_flags & IN6P_IPV6_V6ONLY)
  |  |  ------------------
  |  |  |  |  290|      0|#define IN6P_IPV6_V6ONLY	0x008000 /* restrict AF_INET6 socket for v6 */
  |  |  ------------------
  ------------------
  |  Branch (4868:9): [True: 0, False: 0]
  ------------------
 4869|       |#else
 4870|       |		    ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) &&
 4871|       |		     (SCTP_IPV6_V6ONLY(inp) != 0))) {
 4872|       |#endif
 4873|       |			/* Invalid address */
 4874|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4875|      0|			*error = EINVAL;
 4876|      0|			return (NULL);
 4877|      0|		}
 4878|      0|		rport = sin->sin_port;
 4879|      0|		break;
 4880|      0|	}
 4881|      0|#endif
 4882|      0|#ifdef INET6
 4883|      0|	case AF_INET6:
  ------------------
  |  Branch (4883:2): [True: 0, False: 10.1k]
  ------------------
 4884|      0|	{
 4885|      0|		struct sockaddr_in6 *sin6;
 4886|       |
 4887|      0|		sin6 = (struct sockaddr_in6 *)firstaddr;
 4888|      0|		if ((ntohs(sin6->sin6_port) == 0) ||
  ------------------
  |  Branch (4888:7): [True: 0, False: 0]
  ------------------
 4889|      0|		    IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) ||
  ------------------
  |  Branch (4889:7): [True: 0, False: 0]
  ------------------
 4890|      0|		    IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr) ||
  ------------------
  |  Branch (4890:7): [True: 0, False: 0]
  ------------------
 4891|      0|		    ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) == 0)) {
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (4891:7): [True: 0, False: 0]
  ------------------
 4892|       |			/* Invalid address */
 4893|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4894|      0|			*error = EINVAL;
 4895|      0|			return (NULL);
 4896|      0|		}
 4897|      0|		rport = sin6->sin6_port;
 4898|      0|		break;
 4899|      0|	}
 4900|      0|#endif
 4901|      0|#if defined(__Userspace__)
 4902|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (4902:2): [True: 10.1k, False: 0]
  ------------------
 4903|  10.1k|	{
 4904|  10.1k|		struct sockaddr_conn *sconn;
 4905|       |
 4906|  10.1k|		sconn = (struct sockaddr_conn *)firstaddr;
 4907|  10.1k|		if ((ntohs(sconn->sconn_port) == 0) ||
  ------------------
  |  Branch (4907:7): [True: 0, False: 10.1k]
  ------------------
 4908|  10.1k|		    (sconn->sconn_addr == NULL) ||
  ------------------
  |  Branch (4908:7): [True: 0, False: 10.1k]
  ------------------
 4909|  10.1k|		    ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) == 0)) {
  ------------------
  |  |  550|  10.1k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (4909:7): [True: 0, False: 10.1k]
  ------------------
 4910|       |			/* Invalid address */
 4911|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4912|      0|			*error = EINVAL;
 4913|      0|			return (NULL);
 4914|      0|		}
 4915|  10.1k|		rport = sconn->sconn_port;
 4916|  10.1k|		break;
 4917|  10.1k|	}
 4918|      0|#endif
 4919|      0|	default:
  ------------------
  |  Branch (4919:2): [True: 0, False: 10.1k]
  ------------------
 4920|       |		/* not supported family type */
 4921|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, EINVAL);
 4922|      0|		*error = EINVAL;
 4923|      0|		return (NULL);
 4924|  10.1k|	}
 4925|  10.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) {
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (4925:6): [True: 0, False: 10.1k]
  ------------------
 4926|       |		/*
 4927|       |		 * If you have not performed a bind, then we need to do the
 4928|       |		 * ephemeral bind for you.
 4929|       |		 */
 4930|      0|		if ((err = sctp_inpcb_bind_locked(inp, NULL, NULL, p))) {
  ------------------
  |  Branch (4930:7): [True: 0, False: 0]
  ------------------
 4931|       |			/* bind error, probably perm */
 4932|      0|			*error = err;
 4933|      0|			return (NULL);
 4934|      0|		}
 4935|      0|	}
 4936|  10.1k|	stcb = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_asoc), struct sctp_tcb);
  ------------------
  |  |  703|  10.1k|        (type *)malloc(zone);
  ------------------
 4937|  10.1k|	if (stcb == NULL) {
  ------------------
  |  Branch (4937:6): [True: 0, False: 10.1k]
  ------------------
 4938|       |		/* out of memory? */
 4939|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOMEM);
 4940|      0|		*error = ENOMEM;
 4941|      0|		return (NULL);
 4942|      0|	}
 4943|  10.1k|	SCTP_INCR_ASOC_COUNT();
  ------------------
  |  |  658|  10.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_asoc), 1)
  |  |  ------------------
  |  |  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 4944|       |
 4945|  10.1k|	memset(stcb, 0, sizeof(*stcb));
 4946|  10.1k|	asoc = &stcb->asoc;
 4947|       |
 4948|  10.1k|	SCTP_TCB_LOCK_INIT(stcb);
  ------------------
  |  |  454|  10.1k|	(void)pthread_mutex_init(&(_tcb)->tcb_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  10.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 4949|  10.1k|	stcb->rport = rport;
 4950|       |	/* setup back pointer's */
 4951|  10.1k|	stcb->sctp_ep = inp;
 4952|  10.1k|	stcb->sctp_socket = inp->sctp_socket;
 4953|  10.1k|	if ((err = sctp_init_asoc(inp, stcb, override_tag, initial_tsn, vrf_id, o_streams))) {
  ------------------
  |  Branch (4953:6): [True: 0, False: 10.1k]
  ------------------
 4954|       |		/* failed */
 4955|      0|		SCTP_TCB_LOCK_DESTROY(stcb);
  ------------------
  |  |  456|      0|	(void)pthread_mutex_destroy(&(_tcb)->tcb_mtx)
  ------------------
 4956|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
 4957|      0|		SCTP_DECR_ASOC_COUNT();
  ------------------
  |  |  661|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_asoc), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 4958|      0|		*error = err;
 4959|      0|		return (NULL);
 4960|      0|	}
 4961|  10.1k|	SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  10.1k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4962|       |
 4963|  10.1k|	asoc->assoc_id = sctp_aloc_a_assoc_id(inp, stcb);
 4964|       |	/* now that my_vtag is set, add it to the hash */
 4965|  10.1k|	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|  10.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |   57|  10.1k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 4966|       |	/* put it in the bucket in the vtag hash of assoc's for the system */
 4967|  10.1k|	LIST_INSERT_HEAD(head, stcb, sctp_asocs);
  ------------------
  |  Branch (4967:2): [True: 2, False: 10.1k]
  |  Branch (4967:2): [Folded, False: 10.1k]
  ------------------
 4968|       |
 4969|  10.1k|	if (sctp_add_remote_addr(stcb, firstaddr, NULL, port, SCTP_DO_SETSCOPE, SCTP_ALLOC_ASOC)) {
  ------------------
  |  |  823|  10.1k|#define SCTP_DO_SETSCOPE 1
  ------------------
              	if (sctp_add_remote_addr(stcb, firstaddr, NULL, port, SCTP_DO_SETSCOPE, SCTP_ALLOC_ASOC)) {
  ------------------
  |  |  816|  10.1k|#define SCTP_ALLOC_ASOC  1
  ------------------
  |  Branch (4969:6): [True: 0, False: 10.1k]
  ------------------
 4970|       |		/* failure.. memory error? */
 4971|      0|		if (asoc->strmout) {
  ------------------
  |  Branch (4971:7): [True: 0, False: 0]
  ------------------
 4972|      0|			SCTP_FREE(asoc->strmout, SCTP_M_STRMO);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 4973|      0|			asoc->strmout = NULL;
 4974|      0|		}
 4975|      0|		if (asoc->mapping_array) {
  ------------------
  |  Branch (4975:7): [True: 0, False: 0]
  ------------------
 4976|      0|			SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 4977|      0|			asoc->mapping_array = NULL;
 4978|      0|		}
 4979|      0|		if (asoc->nr_mapping_array) {
  ------------------
  |  Branch (4979:7): [True: 0, False: 0]
  ------------------
 4980|      0|			SCTP_FREE(asoc->nr_mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 4981|      0|			asoc->nr_mapping_array = NULL;
 4982|      0|		}
 4983|      0|		SCTP_DECR_ASOC_COUNT();
  ------------------
  |  |  661|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_asoc), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 4984|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4985|      0|		SCTP_TCB_LOCK_DESTROY(stcb);
  ------------------
  |  |  456|      0|	(void)pthread_mutex_destroy(&(_tcb)->tcb_mtx)
  ------------------
 4986|      0|		LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (4986:3): [True: 0, False: 0]
  |  Branch (4986:3): [Folded, False: 0]
  ------------------
 4987|      0|		LIST_REMOVE(stcb, sctp_tcbasocidhash);
  ------------------
  |  Branch (4987:3): [True: 0, False: 0]
  |  Branch (4987:3): [Folded, False: 0]
  ------------------
 4988|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
  ------------------
  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|      0|	free(element);  \
  |  |  709|      0|}
  ------------------
 4989|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOBUFS);
 4990|      0|		*error = ENOBUFS;
 4991|      0|		return (NULL);
 4992|      0|	}
 4993|       |	/* Init all the timers */
 4994|  10.1k|	SCTP_OS_TIMER_INIT(&asoc->dack_timer.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4995|  10.1k|	SCTP_OS_TIMER_INIT(&asoc->strreset_timer.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4996|  10.1k|	SCTP_OS_TIMER_INIT(&asoc->asconf_timer.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4997|  10.1k|	SCTP_OS_TIMER_INIT(&asoc->shut_guard_timer.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4998|  10.1k|	SCTP_OS_TIMER_INIT(&asoc->autoclose_timer.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4999|  10.1k|	SCTP_OS_TIMER_INIT(&asoc->delete_prim_timer.timer);
  ------------------
  |  |   92|  10.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 5000|       |
 5001|  10.1k|	LIST_INSERT_HEAD(&inp->sctp_asoc_list, stcb, sctp_tcblist);
  ------------------
  |  Branch (5001:2): [True: 0, False: 10.1k]
  |  Branch (5001:2): [Folded, False: 10.1k]
  ------------------
 5002|       |	/* now file the port under the hash as well */
 5003|  10.1k|	if (inp->sctp_tcbhash != NULL) {
  ------------------
  |  Branch (5003:6): [True: 10.1k, False: 0]
  ------------------
 5004|  10.1k|		head = &inp->sctp_tcbhash[SCTP_PCBHASH_ALLADDR(stcb->rport,
  ------------------
  |  |   56|  10.1k|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 5005|  10.1k|		    inp->sctp_hashmark)];
 5006|  10.1k|		LIST_INSERT_HEAD(head, stcb, sctp_tcbhash);
  ------------------
  |  Branch (5006:3): [True: 0, False: 10.1k]
  |  Branch (5006:3): [Folded, False: 10.1k]
  ------------------
 5007|  10.1k|	}
 5008|  10.1k|	if (initialize_auth_params == SCTP_INITIALIZE_AUTH_PARAMS) {
  ------------------
  |  |  767|  10.1k|#define SCTP_INITIALIZE_AUTH_PARAMS		1
  ------------------
  |  Branch (5008:6): [True: 10.1k, False: 0]
  ------------------
 5009|  10.1k|		sctp_initialize_auth_params(inp, stcb);
 5010|  10.1k|	}
 5011|  10.1k|	SCTPDBG(SCTP_DEBUG_PCB1, "Association %p now allocated\n", (void *)stcb);
 5012|  10.1k|	return (stcb);
 5013|  10.1k|}
sctp_pcb.c:sctp_aloc_a_assoc_id:
 4721|  10.1k|{
 4722|  10.1k|	uint32_t id;
 4723|  10.1k|	struct sctpasochead *head;
 4724|  10.1k|	struct sctp_tcb *lstcb;
 4725|       |
 4726|  10.1k| try_again:
 4727|  10.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4727:6): [True: 0, False: 10.1k]
  ------------------
 4728|       |		/* TSNH */
 4729|      0|		return (0);
 4730|      0|	}
 4731|       |	/*
 4732|       |	 * We don't allow assoc id to be one of SCTP_FUTURE_ASSOC,
 4733|       |	 * SCTP_CURRENT_ASSOC and SCTP_ALL_ASSOC.
 4734|       |	 */
 4735|  10.1k|	if (inp->sctp_associd_counter <= SCTP_ALL_ASSOC) {
  ------------------
  |  |   65|  10.1k|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4735:6): [True: 10.1k, False: 0]
  ------------------
 4736|  10.1k|		inp->sctp_associd_counter = SCTP_ALL_ASSOC + 1;
  ------------------
  |  |   65|  10.1k|#define SCTP_ALL_ASSOC     2
  ------------------
 4737|  10.1k|	}
 4738|  10.1k|	id = inp->sctp_associd_counter;
 4739|  10.1k|	inp->sctp_associd_counter++;
 4740|  10.1k|	lstcb = sctp_findasoc_ep_asocid_locked(inp, (sctp_assoc_t)id, 0);
 4741|  10.1k|	if (lstcb) {
  ------------------
  |  Branch (4741:6): [True: 0, False: 10.1k]
  ------------------
 4742|      0|		goto try_again;
 4743|      0|	}
 4744|  10.1k|	head = &inp->sctp_asocidhash[SCTP_PCBHASH_ASOC(id, inp->hashasocidmark)];
  ------------------
  |  |   57|  10.1k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 4745|       |	LIST_INSERT_HEAD(head, stcb, sctp_tcbasocidhash);
  ------------------
  |  Branch (4745:2): [True: 0, False: 10.1k]
  |  Branch (4745:2): [Folded, False: 10.1k]
  ------------------
 4746|  10.1k|	stcb->asoc.in_asocid_hash = 1;
 4747|  10.1k|	return (id);
 4748|  10.1k|}
sctp_pcb.c:sctp_add_vtag_to_timewait:
 5214|  10.1k|{
 5215|  10.1k|	struct sctpvtaghead *chain;
 5216|  10.1k|	struct sctp_tagblock *twait_block;
 5217|  10.1k|	struct timeval now;
 5218|  10.1k|	time_t time;
 5219|  10.1k|	int i;
 5220|  10.1k|	bool set;
 5221|       |
 5222|  10.1k|	SCTP_INP_INFO_WLOCK_ASSERT();
 5223|  10.1k|	(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  10.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 5224|  10.1k|	time = now.tv_sec + SCTP_BASE_SYSCTL(sctp_vtag_time_wait);
  ------------------
  |  |  590|  10.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 5225|  10.1k|	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  587|  10.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  924|  10.1k|#define SCTP_STACK_VTAG_HASH_SIZE   32
  ------------------
 5226|  10.1k|	set = false;
 5227|  16.7k|	LIST_FOREACH(twait_block, chain, sctp_nxt_tagblock) {
  ------------------
  |  Branch (5227:2): [True: 16.7k, False: 697]
  ------------------
 5228|       |		/* Block(s) present, lets find space, and expire on the fly */
 5229|   267k|		for (i = 0; i < SCTP_NUMBER_IN_VTAG_BLOCK; i++) {
  ------------------
  |  |  917|   267k|#define SCTP_NUMBER_IN_VTAG_BLOCK 15
  ------------------
  |  Branch (5229:15): [True: 251k, False: 16.7k]
  ------------------
 5230|   251k|			if ((twait_block->vtag_block[i].v_tag == 0) && !set) {
  ------------------
  |  Branch (5230:8): [True: 71.5k, False: 179k]
  |  Branch (5230:51): [True: 9.47k, False: 62.0k]
  ------------------
 5231|  9.47k|				sctp_set_vtag_block(twait_block->vtag_block + i, time, tag, lport, rport);
 5232|  9.47k|				set = true;
 5233|  9.47k|				continue;
 5234|  9.47k|			}
 5235|   241k|			if ((twait_block->vtag_block[i].v_tag != 0) &&
  ------------------
  |  Branch (5235:8): [True: 179k, False: 62.0k]
  ------------------
 5236|   179k|			    (twait_block->vtag_block[i].tv_sec_at_expire < now.tv_sec)) {
  ------------------
  |  Branch (5236:8): [True: 0, False: 179k]
  ------------------
 5237|      0|				if (set) {
  ------------------
  |  Branch (5237:9): [True: 0, False: 0]
  ------------------
 5238|       |					/* Audit expires this guy */
 5239|      0|					sctp_set_vtag_block(twait_block->vtag_block + i, 0, 0, 0, 0);
 5240|      0|				} else {
 5241|       |					/* Reuse it for the new tag */
 5242|      0|					sctp_set_vtag_block(twait_block->vtag_block + i, time, tag, lport, rport);
 5243|      0|					set = true;
 5244|      0|				}
 5245|      0|			}
 5246|   241k|		}
 5247|  16.7k|		if (set) {
  ------------------
  |  Branch (5247:7): [True: 9.47k, False: 7.26k]
  ------------------
 5248|       |			/*
 5249|       |			 * We only do up to the block where we can
 5250|       |			 * place our tag for audits
 5251|       |			 */
 5252|  9.47k|			break;
 5253|  9.47k|		}
 5254|  16.7k|	}
 5255|       |	/* Need to add a new block to chain */
 5256|  10.1k|	if (!set) {
  ------------------
  |  Branch (5256:6): [True: 697, False: 9.47k]
  ------------------
 5257|    697|		SCTP_MALLOC(twait_block, struct sctp_tagblock *,
  ------------------
  |  |  675|    697|	do {								\
  |  |  676|    697|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    697|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    697|    do {								\
  |  |  |  |  198|    697|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.39k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 697]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    697|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 697]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    697|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 697]
  |  |  ------------------
  ------------------
 5258|    697|		    sizeof(struct sctp_tagblock), SCTP_M_TIMW);
 5259|    697|		if (twait_block == NULL) {
  ------------------
  |  Branch (5259:7): [True: 0, False: 697]
  ------------------
 5260|      0|			return;
 5261|      0|		}
 5262|    697|		memset(twait_block, 0, sizeof(struct sctp_tagblock));
 5263|       |		LIST_INSERT_HEAD(chain, twait_block, sctp_nxt_tagblock);
  ------------------
  |  Branch (5263:3): [True: 665, False: 32]
  |  Branch (5263:3): [Folded, False: 697]
  ------------------
 5264|    697|		sctp_set_vtag_block(twait_block->vtag_block, time, tag, lport, rport);
 5265|    697|	}
 5266|  10.1k|}
sctp_pcb.c:sctp_set_vtag_block:
 5205|  10.1k|{
 5206|  10.1k|	vtag_block->tv_sec_at_expire = time;
 5207|  10.1k|	vtag_block->v_tag = tag;
 5208|  10.1k|	vtag_block->lport = lport;
 5209|  10.1k|	vtag_block->rport = rport;
 5210|  10.1k|}
sctp_pcb.c:sctp_is_in_timewait:
 5182|  27.4k|{
 5183|  27.4k|	struct sctpvtaghead *chain;
 5184|  27.4k|	struct sctp_tagblock *twait_block;
 5185|  27.4k|	int i;
 5186|       |
 5187|  27.4k|	SCTP_INP_INFO_LOCK_ASSERT();
 5188|  27.4k|	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  587|  27.4k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  924|  27.4k|#define SCTP_STACK_VTAG_HASH_SIZE   32
  ------------------
 5189|   464k|	LIST_FOREACH(twait_block, chain, sctp_nxt_tagblock) {
  ------------------
  |  Branch (5189:2): [True: 464k, False: 27.4k]
  ------------------
 5190|  7.43M|		for (i = 0; i < SCTP_NUMBER_IN_VTAG_BLOCK; i++) {
  ------------------
  |  |  917|  7.43M|#define SCTP_NUMBER_IN_VTAG_BLOCK 15
  ------------------
  |  Branch (5190:15): [True: 6.96M, False: 464k]
  ------------------
 5191|  6.96M|			if ((twait_block->vtag_block[i].tv_sec_at_expire >= now) &&
  ------------------
  |  Branch (5191:8): [True: 6.78M, False: 184k]
  ------------------
 5192|  6.78M|			    (twait_block->vtag_block[i].v_tag == tag) &&
  ------------------
  |  Branch (5192:8): [True: 0, False: 6.78M]
  ------------------
 5193|      0|			    (twait_block->vtag_block[i].lport == lport) &&
  ------------------
  |  Branch (5193:8): [True: 0, False: 0]
  ------------------
 5194|      0|			    (twait_block->vtag_block[i].rport == rport)) {
  ------------------
  |  Branch (5194:8): [True: 0, False: 0]
  ------------------
 5195|      0|				return (true);
 5196|      0|			}
 5197|  6.96M|		}
 5198|   464k|	}
 5199|  27.4k|	return (false);
 5200|  27.4k|}

sctp_sha1_init:
  114|  2.30k|{
  115|       |	/* Init the SHA-1 context structure */
  116|  2.30k|	ctx->A = 0;
  117|  2.30k|	ctx->B = 0;
  118|  2.30k|	ctx->C = 0;
  119|  2.30k|	ctx->D = 0;
  120|  2.30k|	ctx->E = 0;
  121|  2.30k|	ctx->H0 = H0INIT;
  ------------------
  |  |  106|  2.30k|#define H0INIT 0x67452301
  ------------------
  122|  2.30k|	ctx->H1 = H1INIT;
  ------------------
  |  |  107|  2.30k|#define H1INIT 0xefcdab89
  ------------------
  123|  2.30k|	ctx->H2 = H2INIT;
  ------------------
  |  |  108|  2.30k|#define H2INIT 0x98badcfe
  ------------------
  124|  2.30k|	ctx->H3 = H3INIT;
  ------------------
  |  |  109|  2.30k|#define H3INIT 0x10325476
  ------------------
  125|  2.30k|	ctx->H4 = H4INIT;
  ------------------
  |  |  110|  2.30k|#define H4INIT 0xc3d2e1f0
  ------------------
  126|  2.30k|	ctx->TEMP = 0;
  127|  2.30k|	memset(ctx->words, 0, sizeof(ctx->words));
  128|  2.30k|	ctx->how_many_in_block = 0;
  129|  2.30k|	ctx->running_total = 0;
  130|  2.30k|}
sctp_sha1_update:
  199|  19.9k|{
  200|  19.9k|	unsigned int number_left, left_to_fill;
  201|       |
  202|  19.9k|	number_left = siz;
  203|  26.9k|	while (number_left > 0) {
  ------------------
  |  Branch (203:9): [True: 24.3k, False: 2.58k]
  ------------------
  204|  24.3k|		left_to_fill = sizeof(ctx->sha_block) - ctx->how_many_in_block;
  205|  24.3k|		if (left_to_fill > number_left) {
  ------------------
  |  Branch (205:7): [True: 17.3k, False: 6.96k]
  ------------------
  206|       |			/* can only partially fill up this one */
  207|  17.3k|			memcpy(&ctx->sha_block[ctx->how_many_in_block],
  208|  17.3k|			    ptr, number_left);
  209|  17.3k|			ctx->how_many_in_block += number_left;
  210|  17.3k|			ctx->running_total += number_left;
  211|  17.3k|			break;
  212|  17.3k|		} else {
  213|       |			/* block is now full, process it */
  214|  6.96k|			memcpy(&ctx->sha_block[ctx->how_many_in_block],
  215|  6.96k|			    ptr, left_to_fill);
  216|  6.96k|			sctp_sha1_process_a_block(ctx,
  217|  6.96k|			    (unsigned int *)ctx->sha_block);
  218|  6.96k|			number_left -= left_to_fill;
  219|  6.96k|			ctx->running_total += left_to_fill;
  220|  6.96k|			ctx->how_many_in_block = 0;
  221|  6.96k|			ptr = (const unsigned char *)(ptr + left_to_fill);
  222|  6.96k|		}
  223|  24.3k|	}
  224|  19.9k|}
sctp_sha1_final:
  228|  2.30k|{
  229|       |	/*
  230|       |	 * if any left in block fill with padding and process. Then transfer
  231|       |	 * the digest to the pointer. At the last block some special rules
  232|       |	 * need to apply. We must add a 1 bit following the message, then we
  233|       |	 * pad with 0's. The total size is encoded as a 64 bit number at the
  234|       |	 * end. Now if the last buffer has more than 55 octets in it we
  235|       |	 * cannot fit the 64 bit number + 10000000 pad on the end and must
  236|       |	 * add the 10000000 pad, pad the rest of the message with 0's and
  237|       |	 * then create an all 0 message with just the 64 bit size at the end
  238|       |	 * and run this block through by itself.  Also the 64 bit int must
  239|       |	 * be in network byte order.
  240|       |	 */
  241|  2.30k|	int left_to_fill;
  242|  2.30k|	unsigned int i, *ptr;
  243|       |
  244|  2.30k|	if (ctx->how_many_in_block > 55) {
  ------------------
  |  Branch (244:6): [True: 43, False: 2.26k]
  ------------------
  245|       |		/*
  246|       |		 * special case, we need to process two blocks here. One for
  247|       |		 * the current stuff plus possibly the pad. The other for
  248|       |		 * the size.
  249|       |		 */
  250|     43|		left_to_fill = sizeof(ctx->sha_block) - ctx->how_many_in_block;
  251|     43|		if (left_to_fill == 0) {
  ------------------
  |  Branch (251:7): [True: 0, False: 43]
  ------------------
  252|       |			/* Should not really happen but I am paranoid */
  253|      0|			sctp_sha1_process_a_block(ctx,
  254|      0|			    (unsigned int *)ctx->sha_block);
  255|       |			/* init last block, a bit different than the rest */
  256|      0|			ctx->sha_block[0] = '\x80';
  257|      0|			for (i = 1; i < sizeof(ctx->sha_block); i++) {
  ------------------
  |  Branch (257:16): [True: 0, False: 0]
  ------------------
  258|      0|				ctx->sha_block[i] = 0x0;
  259|      0|			}
  260|     43|		} else if (left_to_fill == 1) {
  ------------------
  |  Branch (260:14): [True: 8, False: 35]
  ------------------
  261|      8|			ctx->sha_block[ctx->how_many_in_block] = '\x80';
  262|      8|			sctp_sha1_process_a_block(ctx,
  263|      8|			    (unsigned int *)ctx->sha_block);
  264|       |			/* init last block */
  265|      8|			memset(ctx->sha_block, 0, sizeof(ctx->sha_block));
  266|     35|		} else {
  267|     35|			ctx->sha_block[ctx->how_many_in_block] = '\x80';
  268|     35|			for (i = (ctx->how_many_in_block + 1);
  269|    215|			    i < sizeof(ctx->sha_block);
  ------------------
  |  Branch (269:8): [True: 180, False: 35]
  ------------------
  270|    180|			    i++) {
  271|    180|				ctx->sha_block[i] = 0x0;
  272|    180|			}
  273|     35|			sctp_sha1_process_a_block(ctx,
  274|     35|			    (unsigned int *)ctx->sha_block);
  275|       |			/* init last block */
  276|     35|			memset(ctx->sha_block, 0, sizeof(ctx->sha_block));
  277|     35|		}
  278|       |		/* This is in bits so multiply by 8 */
  279|     43|		ctx->running_total *= 8;
  280|     43|		ptr = (unsigned int *)&ctx->sha_block[60];
  281|     43|		*ptr = htonl(ctx->running_total);
  282|     43|		sctp_sha1_process_a_block(ctx, (unsigned int *)ctx->sha_block);
  283|  2.26k|	} else {
  284|       |		/*
  285|       |		 * easy case, we just pad this message to size - end with 0
  286|       |		 * add the magic 0x80 to the next word and then put the
  287|       |		 * network byte order size in the last spot and process the
  288|       |		 * block.
  289|       |		 */
  290|  2.26k|		ctx->sha_block[ctx->how_many_in_block] = '\x80';
  291|  2.26k|		for (i = (ctx->how_many_in_block + 1);
  292|  80.8k|		    i < sizeof(ctx->sha_block);
  ------------------
  |  Branch (292:7): [True: 78.5k, False: 2.26k]
  ------------------
  293|  78.5k|		    i++) {
  294|  78.5k|			ctx->sha_block[i] = 0x0;
  295|  78.5k|		}
  296|       |		/* get last int spot */
  297|  2.26k|		ctx->running_total *= 8;
  298|  2.26k|		ptr = (unsigned int *)&ctx->sha_block[60];
  299|  2.26k|		*ptr = htonl(ctx->running_total);
  300|  2.26k|		sctp_sha1_process_a_block(ctx, (unsigned int *)ctx->sha_block);
  301|  2.26k|	}
  302|       |	/* transfer the digest back to the user */
  303|  2.30k|	digest[3] = (ctx->H0 & 0xff);
  304|  2.30k|	digest[2] = ((ctx->H0 >> 8) & 0xff);
  305|  2.30k|	digest[1] = ((ctx->H0 >> 16) & 0xff);
  306|  2.30k|	digest[0] = ((ctx->H0 >> 24) & 0xff);
  307|       |
  308|  2.30k|	digest[7] = (ctx->H1 & 0xff);
  309|  2.30k|	digest[6] = ((ctx->H1 >> 8) & 0xff);
  310|  2.30k|	digest[5] = ((ctx->H1 >> 16) & 0xff);
  311|  2.30k|	digest[4] = ((ctx->H1 >> 24) & 0xff);
  312|       |
  313|  2.30k|	digest[11] = (ctx->H2 & 0xff);
  314|  2.30k|	digest[10] = ((ctx->H2 >> 8) & 0xff);
  315|  2.30k|	digest[9] = ((ctx->H2 >> 16) & 0xff);
  316|  2.30k|	digest[8] = ((ctx->H2 >> 24) & 0xff);
  317|       |
  318|  2.30k|	digest[15] = (ctx->H3 & 0xff);
  319|  2.30k|	digest[14] = ((ctx->H3 >> 8) & 0xff);
  320|  2.30k|	digest[13] = ((ctx->H3 >> 16) & 0xff);
  321|  2.30k|	digest[12] = ((ctx->H3 >> 24) & 0xff);
  322|       |
  323|  2.30k|	digest[19] = (ctx->H4 & 0xff);
  324|  2.30k|	digest[18] = ((ctx->H4 >> 8) & 0xff);
  325|  2.30k|	digest[17] = ((ctx->H4 >> 16) & 0xff);
  326|  2.30k|	digest[16] = ((ctx->H4 >> 24) & 0xff);
  327|  2.30k|}
sctp_sha1.c:sctp_sha1_process_a_block:
  134|  9.31k|{
  135|  9.31k|	int i;
  136|       |
  137|       |	/* init the W0-W15 to the block of words being hashed. */
  138|       |	/* step a) */
  139|   158k|	for (i = 0; i < 16; i++) {
  ------------------
  |  Branch (139:14): [True: 149k, False: 9.31k]
  ------------------
  140|   149k|		ctx->words[i] = ntohl(block[i]);
  141|   149k|	}
  142|       |	/* now init the rest based on the SHA-1 formula, step b) */
  143|   605k|	for (i = 16; i < 80; i++) {
  ------------------
  |  Branch (143:15): [True: 596k, False: 9.31k]
  ------------------
  144|   596k|		ctx->words[i] = CSHIFT(1, ((ctx->words[(i - 3)]) ^
  ------------------
  |  |   99|   596k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  145|   596k|		    (ctx->words[(i - 8)]) ^
  146|   596k|		    (ctx->words[(i - 14)]) ^
  147|   596k|		    (ctx->words[(i - 16)])));
  148|   596k|	}
  149|       |	/* step c) */
  150|  9.31k|	ctx->A = ctx->H0;
  151|  9.31k|	ctx->B = ctx->H1;
  152|  9.31k|	ctx->C = ctx->H2;
  153|  9.31k|	ctx->D = ctx->H3;
  154|  9.31k|	ctx->E = ctx->H4;
  155|       |
  156|       |	/* step d) */
  157|   754k|	for (i = 0; i < 80; i++) {
  ------------------
  |  Branch (157:14): [True: 745k, False: 9.31k]
  ------------------
  158|   745k|		if (i < 20) {
  ------------------
  |  Branch (158:7): [True: 186k, False: 558k]
  ------------------
  159|   186k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   186k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  160|   186k|			    (F1(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   93|   186k|#define F1(B,C,D) (((B & C) | ((~B) & D)))	/* 0  <= t <= 19 */
  ------------------
  161|   186k|			    (ctx->E) +
  162|   186k|			    ctx->words[i] +
  163|   186k|			    K1);
  ------------------
  |  |  101|   186k|#define K1 0x5a827999		/* 0  <= t <= 19 */
  ------------------
  164|   558k|		} else if (i < 40) {
  ------------------
  |  Branch (164:14): [True: 186k, False: 372k]
  ------------------
  165|   186k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   186k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  166|   186k|			    (F2(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   94|   186k|#define F2(B,C,D) (B ^ C ^ D)	/* 20 <= t <= 39 */
  ------------------
  167|   186k|			    (ctx->E) +
  168|   186k|			    (ctx->words[i]) +
  169|   186k|			    K2);
  ------------------
  |  |  102|   186k|#define K2 0x6ed9eba1		/* 20 <= t <= 39 */
  ------------------
  170|   372k|		} else if (i < 60) {
  ------------------
  |  Branch (170:14): [True: 186k, False: 186k]
  ------------------
  171|   186k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   186k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  172|   186k|			    (F3(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   95|   186k|#define F3(B,C,D) ((B & C) | (B & D) | (C & D))	/* 40 <= t <= 59 */
  ------------------
  173|   186k|			    (ctx->E) +
  174|   186k|			    (ctx->words[i]) +
  175|   186k|			    K3);
  ------------------
  |  |  103|   186k|#define K3 0x8f1bbcdc		/* 40 <= t <= 59 */
  ------------------
  176|   186k|		} else {
  177|   186k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   186k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  178|   186k|			    (F4(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   96|   186k|#define F4(B,C,D) (B ^ C ^ D)	/* 600 <= t <= 79 */
  ------------------
  179|   186k|			    (ctx->E) +
  180|   186k|			    (ctx->words[i]) +
  181|   186k|			    K4);
  ------------------
  |  |  104|   186k|#define K4 0xca62c1d6		/* 60 <= t <= 79 */
  ------------------
  182|   186k|		}
  183|   745k|		ctx->E = ctx->D;
  184|   745k|		ctx->D = ctx->C;
  185|   745k|		ctx->C = CSHIFT(30, ctx->B);
  ------------------
  |  |   99|   745k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  186|   745k|		ctx->B = ctx->A;
  187|   745k|		ctx->A = ctx->TEMP;
  188|   745k|	}
  189|       |	/* step e) */
  190|  9.31k|	ctx->H0 = (ctx->H0) + (ctx->A);
  191|  9.31k|	ctx->H1 = (ctx->H1) + (ctx->B);
  192|  9.31k|	ctx->H2 = (ctx->H2) + (ctx->C);
  193|  9.31k|	ctx->H3 = (ctx->H3) + (ctx->D);
  194|  9.31k|	ctx->H4 = (ctx->H4) + (ctx->E);
  195|  9.31k|}

sctp_ss_functions.c:sctp_ss_default_init:
   51|  10.2k|{
   52|  10.2k|	uint16_t i;
   53|       |
   54|  10.2k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  10.2k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   55|       |
   56|  10.2k|	asoc->ss_data.locked_on_sending = NULL;
   57|  10.2k|	asoc->ss_data.last_out_stream = NULL;
   58|  10.2k|	TAILQ_INIT(&asoc->ss_data.out.wheel);
  ------------------
  |  Branch (58:2): [Folded, False: 10.2k]
  ------------------
   59|       |	/*
   60|       |	 * If there is data in the stream queues already,
   61|       |	 * the scheduler of an existing association has
   62|       |	 * been changed. We need to add all stream queues
   63|       |	 * to the wheel.
   64|       |	 */
   65|  2.63M|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (65:14): [True: 2.62M, False: 10.2k]
  ------------------
   66|  2.62M|		stcb->asoc.ss_functions.sctp_ss_add_to_stream(stcb, asoc,
   67|  2.62M|		                                              &asoc->strmout[i],
   68|       |		                                              NULL);
   69|  2.62M|	}
   70|  10.2k|	return;
   71|  10.2k|}
sctp_ss_functions.c:sctp_ss_default_clear:
   76|     44|{
   77|     44|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     44|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     44|	do {                         \
  |  |  |  |  113|     44|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 44]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     44|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 44]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   78|       |
   79|     52|	while (!TAILQ_EMPTY(&asoc->ss_data.out.wheel)) {
  ------------------
  |  Branch (79:9): [True: 8, False: 44]
  ------------------
   80|      8|		struct sctp_stream_out *strq;
   81|       |
   82|      8|		strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
   83|      8|		KASSERT(strq->ss_params.scheduled, ("strq %p not scheduled", (void *)strq));
  ------------------
  |  |  112|      8|	do {                         \
  |  |  113|      8|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 8]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      8|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 8]
  |  |  ------------------
  ------------------
   84|      8|		TAILQ_REMOVE(&asoc->ss_data.out.wheel, strq, ss_params.ss.rr.next_spoke);
  ------------------
  |  Branch (84:3): [True: 0, False: 8]
  |  Branch (84:3): [Folded, False: 8]
  ------------------
   85|      8|		strq->ss_params.scheduled = false;
   86|      8|	}
   87|     44|	asoc->ss_data.last_out_stream = NULL;
   88|     44|	return;
   89|     44|}
sctp_ss_functions.c:sctp_ss_default_init_stream:
   93|  4.31M|{
   94|  4.31M|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  4.31M|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  4.31M|	do {                         \
  |  |  |  |  113|  4.31M|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4.31M]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  4.31M|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4.31M]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   95|       |
   96|  4.31M|	if (with_strq != NULL) {
  ------------------
  |  Branch (96:6): [True: 11.3k, False: 4.29M]
  ------------------
   97|  11.3k|		if (stcb->asoc.ss_data.locked_on_sending == with_strq) {
  ------------------
  |  Branch (97:7): [True: 0, False: 11.3k]
  ------------------
   98|      0|			stcb->asoc.ss_data.locked_on_sending = strq;
   99|      0|		}
  100|  11.3k|		if (stcb->asoc.ss_data.last_out_stream == with_strq) {
  ------------------
  |  Branch (100:7): [True: 0, False: 11.3k]
  ------------------
  101|      0|			stcb->asoc.ss_data.last_out_stream = strq;
  102|      0|		}
  103|  11.3k|	}
  104|       |	strq->ss_params.scheduled = false;
  105|  4.31M|	return;
  106|  4.31M|}
sctp_ss_functions.c:sctp_ss_default_add:
  112|  2.63M|{
  113|  2.63M|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  2.63M|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.63M|	do {                         \
  |  |  |  |  113|  2.63M|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.63M]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.63M|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.63M]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  114|       |
  115|       |	/* Add to wheel if not already on it and stream queue not empty */
  116|  2.63M|	if (!TAILQ_EMPTY(&strq->outqueue) && !strq->ss_params.scheduled) {
  ------------------
  |  Branch (116:6): [True: 5.43k, False: 2.62M]
  |  Branch (116:39): [True: 5.43k, False: 0]
  ------------------
  117|  5.43k|		TAILQ_INSERT_TAIL(&asoc->ss_data.out.wheel,
  ------------------
  |  Branch (117:3): [Folded, False: 5.43k]
  ------------------
  118|  5.43k|		                  strq, ss_params.ss.rr.next_spoke);
  119|       |		strq->ss_params.scheduled = true;
  120|  5.43k|	}
  121|  2.63M|	return;
  122|  2.63M|}
sctp_ss_functions.c:sctp_ss_default_is_empty:
  126|  40.0k|{
  127|  40.0k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  40.0k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  40.0k|	do {                         \
  |  |  |  |  113|  40.0k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 40.0k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  40.0k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 40.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  128|       |
  129|  40.0k|	return (TAILQ_EMPTY(&asoc->ss_data.out.wheel));
  130|  40.0k|}
sctp_ss_functions.c:sctp_ss_default_remove:
  136|  5.42k|{
  137|  5.42k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.42k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.42k|	do {                         \
  |  |  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  138|       |
  139|       |	/* Remove from wheel if stream queue is empty and actually is on the wheel */
  140|  5.42k|	if (TAILQ_EMPTY(&strq->outqueue) && strq->ss_params.scheduled) {
  ------------------
  |  Branch (140:6): [True: 5.42k, False: 0]
  |  Branch (140:38): [True: 5.42k, False: 0]
  ------------------
  141|  5.42k|		if (asoc->ss_data.last_out_stream == strq) {
  ------------------
  |  Branch (141:7): [True: 4.76k, False: 660]
  ------------------
  142|  4.76k|			asoc->ss_data.last_out_stream = TAILQ_PREV(asoc->ss_data.last_out_stream,
  143|  4.76k|			                                           sctpwheel_listhead,
  144|  4.76k|			                                           ss_params.ss.rr.next_spoke);
  145|  4.76k|			if (asoc->ss_data.last_out_stream == NULL) {
  ------------------
  |  Branch (145:8): [True: 4.76k, False: 0]
  ------------------
  146|  4.76k|				asoc->ss_data.last_out_stream = TAILQ_LAST(&asoc->ss_data.out.wheel,
  147|  4.76k|				                                           sctpwheel_listhead);
  148|  4.76k|			}
  149|  4.76k|			if (asoc->ss_data.last_out_stream == strq) {
  ------------------
  |  Branch (149:8): [True: 4.76k, False: 0]
  ------------------
  150|  4.76k|				asoc->ss_data.last_out_stream = NULL;
  151|  4.76k|			}
  152|  4.76k|		}
  153|  5.42k|		if (asoc->ss_data.locked_on_sending == strq) {
  ------------------
  |  Branch (153:7): [True: 0, False: 5.42k]
  ------------------
  154|      0|			asoc->ss_data.locked_on_sending = NULL;
  155|      0|		}
  156|  5.42k|		TAILQ_REMOVE(&asoc->ss_data.out.wheel, strq, ss_params.ss.rr.next_spoke);
  ------------------
  |  Branch (156:3): [True: 0, False: 5.42k]
  |  Branch (156:3): [Folded, False: 5.42k]
  ------------------
  157|       |		strq->ss_params.scheduled = false;
  158|  5.42k|	}
  159|  5.42k|	return;
  160|  5.42k|}
sctp_ss_functions.c:sctp_ss_default_select:
  165|  10.6k|{
  166|  10.6k|	struct sctp_stream_out *strq, *strqt;
  167|       |
  168|  10.6k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  10.6k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.6k|	do {                         \
  |  |  |  |  113|  10.6k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.6k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.6k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  169|       |
  170|  10.6k|	if (asoc->ss_data.locked_on_sending != NULL) {
  ------------------
  |  Branch (170:6): [True: 0, False: 10.6k]
  ------------------
  171|      0|		KASSERT(asoc->ss_data.locked_on_sending->ss_params.scheduled,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
  172|      0|		        ("locked_on_sending %p not scheduled",
  173|      0|		         (void *)asoc->ss_data.locked_on_sending));
  174|      0|		return (asoc->ss_data.locked_on_sending);
  175|      0|	}
  176|  10.6k|	strqt = asoc->ss_data.last_out_stream;
  177|  10.6k|	KASSERT(strqt == NULL || strqt->ss_params.scheduled,
  ------------------
  |  |  112|  10.6k|	do {                         \
  |  |  113|  10.6k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 10.6k, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.6k]
  |  |  ------------------
  ------------------
  178|  10.6k|	        ("last_out_stream %p not scheduled", (void *)strqt));
  179|  10.6k|default_again:
  180|       |	/* Find the next stream to use */
  181|  10.6k|	if (strqt == NULL) {
  ------------------
  |  Branch (181:6): [True: 10.6k, False: 0]
  ------------------
  182|  10.6k|		strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
  183|  10.6k|	} else {
  184|      0|		strq = TAILQ_NEXT(strqt, ss_params.ss.rr.next_spoke);
  185|      0|		if (strq == NULL) {
  ------------------
  |  Branch (185:7): [True: 0, False: 0]
  ------------------
  186|      0|			strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
  187|      0|		}
  188|      0|	}
  189|  10.6k|	KASSERT(strq == NULL || strq->ss_params.scheduled,
  ------------------
  |  |  112|  10.6k|	do {                         \
  |  |  113|  15.4k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 5.88k, False: 4.76k]
  |  |  |  Branch (113:9): [True: 4.76k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.6k]
  |  |  ------------------
  ------------------
  190|  10.6k|		("strq %p not scheduled", (void *)strq));
  191|       |
  192|       |	/* If CMT is off, we must validate that
  193|       |	 * the stream in question has the first
  194|       |	 * item pointed towards are network destination
  195|       |	 * requested by the caller. Note that if we
  196|       |	 * turn out to be locked to a stream (assigning
  197|       |	 * TSN's then we must stop, since we cannot
  198|       |	 * look for another stream with data to send
  199|       |	 * to that destination). In CMT's case, by
  200|       |	 * skipping this check, we will send one
  201|       |	 * data packet towards the requested net.
  202|       |	 */
  203|  10.6k|	if (net != NULL && strq != NULL &&
  ------------------
  |  Branch (203:6): [True: 10.6k, False: 0]
  |  Branch (203:21): [True: 4.76k, False: 5.88k]
  ------------------
  204|  4.76k|	    SCTP_BASE_SYSCTL(sctp_cmt_on_off) == 0) {
  ------------------
  |  |  590|  4.76k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (204:6): [True: 4.76k, False: 0]
  ------------------
  205|  4.76k|		if (TAILQ_FIRST(&strq->outqueue) &&
  ------------------
  |  Branch (205:7): [True: 4.76k, False: 0]
  ------------------
  206|  4.76k|		    TAILQ_FIRST(&strq->outqueue)->net != NULL &&
  ------------------
  |  Branch (206:7): [True: 0, False: 4.76k]
  ------------------
  207|  4.76k|		    TAILQ_FIRST(&strq->outqueue)->net != net) {
  ------------------
  |  Branch (207:7): [True: 0, False: 0]
  ------------------
  208|      0|			if (strq == asoc->ss_data.last_out_stream) {
  ------------------
  |  Branch (208:8): [True: 0, False: 0]
  ------------------
  209|      0|				return (NULL);
  210|      0|			} else {
  211|      0|				strqt = strq;
  212|      0|				goto default_again;
  213|      0|			}
  214|      0|		}
  215|  4.76k|	}
  216|  10.6k|	return (strq);
  217|  10.6k|}
sctp_ss_functions.c:sctp_ss_default_scheduled:
  225|  4.76k|{
  226|  4.76k|	struct sctp_stream_queue_pending *sp;
  227|       |
  228|  4.76k|	KASSERT(strq != NULL, ("strq is NULL"));
  ------------------
  |  |  112|  4.76k|	do {                         \
  |  |  113|  4.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 4.76k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  4.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 4.76k]
  |  |  ------------------
  ------------------
  229|  4.76k|	KASSERT(strq->ss_params.scheduled, ("strq %p is not scheduled", (void *)strq));
  ------------------
  |  |  112|  4.76k|	do {                         \
  |  |  113|  4.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 4.76k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  4.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 4.76k]
  |  |  ------------------
  ------------------
  230|  4.76k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  4.76k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  4.76k|	do {                         \
  |  |  |  |  113|  4.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4.76k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  4.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  231|       |
  232|  4.76k|	asoc->ss_data.last_out_stream = strq;
  233|  4.76k|	if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (233:6): [True: 1.22k, False: 3.53k]
  ------------------
  234|  1.22k|		sp = TAILQ_FIRST(&strq->outqueue);
  235|  1.22k|		if ((sp != NULL) && (sp->some_taken == 1)) {
  ------------------
  |  Branch (235:7): [True: 1.22k, False: 0]
  |  Branch (235:23): [True: 0, False: 1.22k]
  ------------------
  236|      0|			asoc->ss_data.locked_on_sending = strq;
  237|  1.22k|		} else {
  238|  1.22k|			asoc->ss_data.locked_on_sending = NULL;
  239|  1.22k|		}
  240|  3.53k|	} else {
  241|       |		asoc->ss_data.locked_on_sending = NULL;
  242|  3.53k|	}
  243|  4.76k|	return;
  244|  4.76k|}
sctp_ss_functions.c:sctp_ss_default_packet_done:
  249|  5.88k|{
  250|  5.88k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.88k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.88k|	do {                         \
  |  |  |  |  113|  5.88k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.88k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.88k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.88k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  251|       |
  252|       |	/* Nothing to be done here */
  253|  5.88k|	return;
  254|  5.88k|}

sctp_init_sysctls:
   60|      1|{
   61|      1|	SCTP_BASE_SYSCTL(sctp_sendspace) = SCTPCTL_MAXDGRAM_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_sendspace) = SCTPCTL_MAXDGRAM_DEFAULT;
  ------------------
  |  |  147|      1|#define SCTPCTL_MAXDGRAM_DEFAULT	SB_MAX
  |  |  ------------------
  |  |  |  |  198|      1|#define	SB_MAX		(256*1024)	/* default for max chars in sockbuf */
  |  |  ------------------
  ------------------
   62|      1|	SCTP_BASE_SYSCTL(sctp_recvspace) = SCTPCTL_RECVSPACE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_recvspace) = SCTPCTL_RECVSPACE_DEFAULT;
  ------------------
  |  |  157|      1|#define SCTPCTL_RECVSPACE_DEFAULT	SB_RAW
  |  |  ------------------
  |  |  |  |  199|      1|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  |  |  ------------------
  ------------------
   63|      1|	SCTP_BASE_SYSCTL(sctp_auto_asconf) = SCTPCTL_AUTOASCONF_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_auto_asconf) = SCTPCTL_AUTOASCONF_DEFAULT;
  ------------------
  |  |  166|      1|#define SCTPCTL_AUTOASCONF_DEFAULT	1
  ------------------
   64|      1|	SCTP_BASE_SYSCTL(sctp_multiple_asconfs) = SCTPCTL_MULTIPLEASCONFS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_multiple_asconfs) = SCTPCTL_MULTIPLEASCONFS_DEFAULT;
  ------------------
  |  |  172|      1|#define SCTPCTL_MULTIPLEASCONFS_DEFAULT	SCTP_DEFAULT_MULTIPLE_ASCONFS
  |  |  ------------------
  |  |  |  |  270|      1|#define SCTP_DEFAULT_MULTIPLE_ASCONFS	0
  |  |  ------------------
  ------------------
   65|      1|	SCTP_BASE_SYSCTL(sctp_ecn_enable) = SCTPCTL_ECN_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_ecn_enable) = SCTPCTL_ECN_ENABLE_DEFAULT;
  ------------------
  |  |  178|      1|#define SCTPCTL_ECN_ENABLE_DEFAULT	1
  ------------------
   66|      1|	SCTP_BASE_SYSCTL(sctp_pr_enable) = SCTPCTL_PR_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_pr_enable) = SCTPCTL_PR_ENABLE_DEFAULT;
  ------------------
  |  |  184|      1|#define SCTPCTL_PR_ENABLE_DEFAULT	1
  ------------------
   67|      1|	SCTP_BASE_SYSCTL(sctp_auth_enable) = SCTPCTL_AUTH_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_auth_enable) = SCTPCTL_AUTH_ENABLE_DEFAULT;
  ------------------
  |  |  190|      1|#define SCTPCTL_AUTH_ENABLE_DEFAULT	1
  ------------------
   68|      1|	SCTP_BASE_SYSCTL(sctp_asconf_enable) = SCTPCTL_ASCONF_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_asconf_enable) = SCTPCTL_ASCONF_ENABLE_DEFAULT;
  ------------------
  |  |  196|      1|#define SCTPCTL_ASCONF_ENABLE_DEFAULT	1
  ------------------
   69|      1|	SCTP_BASE_SYSCTL(sctp_reconfig_enable) = SCTPCTL_RECONFIG_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_reconfig_enable) = SCTPCTL_RECONFIG_ENABLE_DEFAULT;
  ------------------
  |  |  202|      1|#define SCTPCTL_RECONFIG_ENABLE_DEFAULT	1
  ------------------
   70|      1|	SCTP_BASE_SYSCTL(sctp_nrsack_enable) = SCTPCTL_NRSACK_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_nrsack_enable) = SCTPCTL_NRSACK_ENABLE_DEFAULT;
  ------------------
  |  |  208|      1|#define SCTPCTL_NRSACK_ENABLE_DEFAULT	0
  ------------------
   71|      1|	SCTP_BASE_SYSCTL(sctp_pktdrop_enable) = SCTPCTL_PKTDROP_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_pktdrop_enable) = SCTPCTL_PKTDROP_ENABLE_DEFAULT;
  ------------------
  |  |  214|      1|#define SCTPCTL_PKTDROP_ENABLE_DEFAULT	0
  ------------------
   72|      1|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
   73|      1|	SCTP_BASE_SYSCTL(sctp_no_csum_on_loopback) = SCTPCTL_LOOPBACK_NOCSUM_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_no_csum_on_loopback) = SCTPCTL_LOOPBACK_NOCSUM_DEFAULT;
  ------------------
  |  |  220|      1|#define SCTPCTL_LOOPBACK_NOCSUM_DEFAULT	1
  ------------------
   74|      1|#endif
   75|      1|	SCTP_BASE_SYSCTL(sctp_peer_chunk_oh) = SCTPCTL_PEER_CHKOH_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_peer_chunk_oh) = SCTPCTL_PEER_CHKOH_DEFAULT;
  ------------------
  |  |  226|      1|#define SCTPCTL_PEER_CHKOH_DEFAULT	256
  ------------------
   76|      1|	SCTP_BASE_SYSCTL(sctp_max_burst_default) = SCTPCTL_MAXBURST_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_max_burst_default) = SCTPCTL_MAXBURST_DEFAULT;
  ------------------
  |  |  232|      1|#define SCTPCTL_MAXBURST_DEFAULT	SCTP_DEF_MAX_BURST
  |  |  ------------------
  |  |  |  |  333|      1|#define SCTP_DEF_MAX_BURST 4
  |  |  ------------------
  ------------------
   77|      1|	SCTP_BASE_SYSCTL(sctp_fr_max_burst_default) = SCTPCTL_FRMAXBURST_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_fr_max_burst_default) = SCTPCTL_FRMAXBURST_DEFAULT;
  ------------------
  |  |  238|      1|#define SCTPCTL_FRMAXBURST_DEFAULT	SCTP_DEF_FRMAX_BURST
  |  |  ------------------
  |  |  |  |  335|      1|#define SCTP_DEF_FRMAX_BURST 4
  |  |  ------------------
  ------------------
   78|      1|	SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue) = SCTPCTL_MAXCHUNKS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue) = SCTPCTL_MAXCHUNKS_DEFAULT;
  ------------------
  |  |  244|      1|#define SCTPCTL_MAXCHUNKS_DEFAULT	SCTP_ASOC_MAX_CHUNKS_ON_QUEUE
  |  |  ------------------
  |  |  |  |  578|      1|#define SCTP_ASOC_MAX_CHUNKS_ON_QUEUE 512
  |  |  ------------------
  ------------------
   79|      1|#if defined(__Userspace__)
   80|      1|	if (SCTP_BASE_SYSCTL(sctp_hashtblsize) == 0) {
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (80:6): [True: 1, False: 0]
  ------------------
   81|      1|		SCTP_BASE_SYSCTL(sctp_hashtblsize) = SCTPCTL_TCBHASHSIZE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		SCTP_BASE_SYSCTL(sctp_hashtblsize) = SCTPCTL_TCBHASHSIZE_DEFAULT;
  ------------------
  |  |  250|      1|#define SCTPCTL_TCBHASHSIZE_DEFAULT	SCTP_TCBHASHSIZE
  |  |  ------------------
  |  |  |  |  844|      1|#define SCTP_TCBHASHSIZE 1024
  |  |  ------------------
  ------------------
   82|      1|	}
   83|       |#else
   84|       |	SCTP_BASE_SYSCTL(sctp_hashtblsize) = SCTPCTL_TCBHASHSIZE_DEFAULT;
   85|       |#endif
   86|      1|#if defined(__Userspace__)
   87|      1|	if (SCTP_BASE_SYSCTL(sctp_pcbtblsize) == 0) {
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (87:6): [True: 1, False: 0]
  ------------------
   88|      1|		SCTP_BASE_SYSCTL(sctp_pcbtblsize) = SCTPCTL_PCBHASHSIZE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		SCTP_BASE_SYSCTL(sctp_pcbtblsize) = SCTPCTL_PCBHASHSIZE_DEFAULT;
  ------------------
  |  |  256|      1|#define SCTPCTL_PCBHASHSIZE_DEFAULT	SCTP_PCBHASHSIZE
  |  |  ------------------
  |  |  |  |  841|      1|#define SCTP_PCBHASHSIZE 256
  |  |  ------------------
  ------------------
   89|      1|	}
   90|       |#else
   91|       |	SCTP_BASE_SYSCTL(sctp_pcbtblsize) = SCTPCTL_PCBHASHSIZE_DEFAULT;
   92|       |#endif
   93|      1|	SCTP_BASE_SYSCTL(sctp_min_split_point) = SCTPCTL_MIN_SPLIT_POINT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_min_split_point) = SCTPCTL_MIN_SPLIT_POINT_DEFAULT;
  ------------------
  |  |  262|      1|#define SCTPCTL_MIN_SPLIT_POINT_DEFAULT	SCTP_DEFAULT_SPLIT_POINT_MIN
  |  |  ------------------
  |  |  |  |  740|      1|#define SCTP_DEFAULT_SPLIT_POINT_MIN 2904
  |  |  ------------------
  ------------------
   94|      1|#if defined(__Userspace__)
   95|      1|	if (SCTP_BASE_SYSCTL(sctp_chunkscale) == 0) {
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (95:6): [True: 1, False: 0]
  ------------------
   96|      1|		SCTP_BASE_SYSCTL(sctp_chunkscale) = SCTPCTL_CHUNKSCALE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		SCTP_BASE_SYSCTL(sctp_chunkscale) = SCTPCTL_CHUNKSCALE_DEFAULT;
  ------------------
  |  |  268|      1|#define SCTPCTL_CHUNKSCALE_DEFAULT	SCTP_CHUNKQUEUE_SCALE
  |  |  ------------------
  |  |  |  |  848|      1|#define SCTP_CHUNKQUEUE_SCALE 10
  |  |  ------------------
  ------------------
   97|      1|	}
   98|       |#else
   99|       |	SCTP_BASE_SYSCTL(sctp_chunkscale) = SCTPCTL_CHUNKSCALE_DEFAULT;
  100|       |#endif
  101|      1|	SCTP_BASE_SYSCTL(sctp_delayed_sack_time_default) = SCTPCTL_DELAYED_SACK_TIME_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_delayed_sack_time_default) = SCTPCTL_DELAYED_SACK_TIME_DEFAULT;
  ------------------
  |  |  274|      1|#define SCTPCTL_DELAYED_SACK_TIME_DEFAULT	SCTP_RECV_MSEC
  |  |  ------------------
  |  |  |  |  595|      1|#define SCTP_RECV_MSEC	200
  |  |  ------------------
  ------------------
  102|      1|	SCTP_BASE_SYSCTL(sctp_sack_freq_default) = SCTPCTL_SACK_FREQ_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_sack_freq_default) = SCTPCTL_SACK_FREQ_DEFAULT;
  ------------------
  |  |  280|      1|#define SCTPCTL_SACK_FREQ_DEFAULT	SCTP_DEFAULT_SACK_FREQ
  |  |  ------------------
  |  |  |  |   46|      1|#define SCTP_DEFAULT_SACK_FREQ 2
  |  |  ------------------
  ------------------
  103|      1|	SCTP_BASE_SYSCTL(sctp_system_free_resc_limit) = SCTPCTL_SYS_RESOURCE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_system_free_resc_limit) = SCTPCTL_SYS_RESOURCE_DEFAULT;
  ------------------
  |  |  286|      1|#define SCTPCTL_SYS_RESOURCE_DEFAULT	SCTP_DEF_SYSTEM_RESC_LIMIT
  |  |  ------------------
  |  |  |  |  953|      1|#define SCTP_DEF_SYSTEM_RESC_LIMIT 1000
  |  |  ------------------
  ------------------
  104|      1|	SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit) = SCTPCTL_ASOC_RESOURCE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit) = SCTPCTL_ASOC_RESOURCE_DEFAULT;
  ------------------
  |  |  292|      1|#define SCTPCTL_ASOC_RESOURCE_DEFAULT	SCTP_DEF_ASOC_RESC_LIMIT
  |  |  ------------------
  |  |  |  |  952|      1|#define SCTP_DEF_ASOC_RESC_LIMIT 10
  |  |  ------------------
  ------------------
  105|      1|	SCTP_BASE_SYSCTL(sctp_heartbeat_interval_default) = SCTPCTL_HEARTBEAT_INTERVAL_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_heartbeat_interval_default) = SCTPCTL_HEARTBEAT_INTERVAL_DEFAULT;
  ------------------
  |  |  298|      1|#define SCTPCTL_HEARTBEAT_INTERVAL_DEFAULT	SCTP_HB_DEFAULT_MSEC
  |  |  ------------------
  |  |  |  |  598|      1|#define SCTP_HB_DEFAULT_MSEC	30000
  |  |  ------------------
  ------------------
  106|      1|	SCTP_BASE_SYSCTL(sctp_pmtu_raise_time_default) = SCTPCTL_PMTU_RAISE_TIME_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_pmtu_raise_time_default) = SCTPCTL_PMTU_RAISE_TIME_DEFAULT;
  ------------------
  |  |  304|      1|#define SCTPCTL_PMTU_RAISE_TIME_DEFAULT	SCTP_DEF_PMTU_RAISE_SEC
  |  |  ------------------
  |  |  |  |  618|      1|#define SCTP_DEF_PMTU_RAISE_SEC	600	/* 10 min between raise attempts */
  |  |  ------------------
  ------------------
  107|      1|	SCTP_BASE_SYSCTL(sctp_shutdown_guard_time_default) = SCTPCTL_SHUTDOWN_GUARD_TIME_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_shutdown_guard_time_default) = SCTPCTL_SHUTDOWN_GUARD_TIME_DEFAULT;
  ------------------
  |  |  310|      1|#define SCTPCTL_SHUTDOWN_GUARD_TIME_DEFAULT	0
  ------------------
  108|      1|	SCTP_BASE_SYSCTL(sctp_secret_lifetime_default) = SCTPCTL_SECRET_LIFETIME_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_secret_lifetime_default) = SCTPCTL_SECRET_LIFETIME_DEFAULT;
  ------------------
  |  |  316|      1|#define SCTPCTL_SECRET_LIFETIME_DEFAULT	SCTP_DEFAULT_SECRET_LIFE_SEC
  |  |  ------------------
  |  |  |  |  604|      1|#define SCTP_DEFAULT_SECRET_LIFE_SEC 3600
  |  |  ------------------
  ------------------
  109|      1|	SCTP_BASE_SYSCTL(sctp_rto_max_default) = SCTPCTL_RTO_MAX_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_rto_max_default) = SCTPCTL_RTO_MAX_DEFAULT;
  ------------------
  |  |  322|      1|#define SCTPCTL_RTO_MAX_DEFAULT		SCTP_RTO_UPPER_BOUND
  |  |  ------------------
  |  |  |  |  606|      1|#define SCTP_RTO_UPPER_BOUND	(60000)	/* 60 sec in ms */
  |  |  ------------------
  ------------------
  110|      1|	SCTP_BASE_SYSCTL(sctp_rto_min_default) = SCTPCTL_RTO_MIN_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_rto_min_default) = SCTPCTL_RTO_MIN_DEFAULT;
  ------------------
  |  |  328|      1|#define SCTPCTL_RTO_MIN_DEFAULT		SCTP_RTO_LOWER_BOUND
  |  |  ------------------
  |  |  |  |  607|      1|#define SCTP_RTO_LOWER_BOUND	(1000)	/* 1 sec is ms */
  |  |  ------------------
  ------------------
  111|      1|	SCTP_BASE_SYSCTL(sctp_rto_initial_default) = SCTPCTL_RTO_INITIAL_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_rto_initial_default) = SCTPCTL_RTO_INITIAL_DEFAULT;
  ------------------
  |  |  334|      1|#define SCTPCTL_RTO_INITIAL_DEFAULT	SCTP_RTO_INITIAL
  |  |  ------------------
  |  |  |  |  608|      1|#define SCTP_RTO_INITIAL	(1000)	/* 1 sec in ms */
  |  |  ------------------
  ------------------
  112|      1|	SCTP_BASE_SYSCTL(sctp_init_rto_max_default) = SCTPCTL_INIT_RTO_MAX_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_init_rto_max_default) = SCTPCTL_INIT_RTO_MAX_DEFAULT;
  ------------------
  |  |  340|      1|#define SCTPCTL_INIT_RTO_MAX_DEFAULT	SCTP_RTO_UPPER_BOUND
  |  |  ------------------
  |  |  |  |  606|      1|#define SCTP_RTO_UPPER_BOUND	(60000)	/* 60 sec in ms */
  |  |  ------------------
  ------------------
  113|      1|	SCTP_BASE_SYSCTL(sctp_valid_cookie_life_default) = SCTPCTL_VALID_COOKIE_LIFE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_valid_cookie_life_default) = SCTPCTL_VALID_COOKIE_LIFE_DEFAULT;
  ------------------
  |  |  346|      1|#define SCTPCTL_VALID_COOKIE_LIFE_DEFAULT	SCTP_DEFAULT_COOKIE_LIFE
  |  |  ------------------
  |  |  |  |  503|      1|#define SCTP_DEFAULT_COOKIE_LIFE	60000
  |  |  ------------------
  ------------------
  114|      1|	SCTP_BASE_SYSCTL(sctp_init_rtx_max_default) = SCTPCTL_INIT_RTX_MAX_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_init_rtx_max_default) = SCTPCTL_INIT_RTX_MAX_DEFAULT;
  ------------------
  |  |  352|      1|#define SCTPCTL_INIT_RTX_MAX_DEFAULT	SCTP_DEF_MAX_INIT
  |  |  ------------------
  |  |  |  |  613|      1|#define SCTP_DEF_MAX_INIT		8
  |  |  ------------------
  ------------------
  115|      1|	SCTP_BASE_SYSCTL(sctp_assoc_rtx_max_default) = SCTPCTL_ASSOC_RTX_MAX_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_assoc_rtx_max_default) = SCTPCTL_ASSOC_RTX_MAX_DEFAULT;
  ------------------
  |  |  358|      1|#define SCTPCTL_ASSOC_RTX_MAX_DEFAULT	SCTP_DEF_MAX_SEND
  |  |  ------------------
  |  |  |  |  614|      1|#define SCTP_DEF_MAX_SEND		10
  |  |  ------------------
  ------------------
  116|      1|	SCTP_BASE_SYSCTL(sctp_path_rtx_max_default) = SCTPCTL_PATH_RTX_MAX_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_path_rtx_max_default) = SCTPCTL_PATH_RTX_MAX_DEFAULT;
  ------------------
  |  |  364|      1|#define SCTPCTL_PATH_RTX_MAX_DEFAULT	SCTP_DEF_MAX_PATH_RTX
  |  |  ------------------
  |  |  |  |  615|      1|#define SCTP_DEF_MAX_PATH_RTX		5
  |  |  ------------------
  ------------------
  117|      1|	SCTP_BASE_SYSCTL(sctp_path_pf_threshold) = SCTPCTL_PATH_PF_THRESHOLD_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_path_pf_threshold) = SCTPCTL_PATH_PF_THRESHOLD_DEFAULT;
  ------------------
  |  |  370|      1|#define SCTPCTL_PATH_PF_THRESHOLD_DEFAULT	SCTPCTL_PATH_PF_THRESHOLD_MAX
  |  |  ------------------
  |  |  |  |  369|      1|#define SCTPCTL_PATH_PF_THRESHOLD_MAX		0xFFFF
  |  |  ------------------
  ------------------
  118|      1|	SCTP_BASE_SYSCTL(sctp_add_more_threshold) = SCTPCTL_ADD_MORE_ON_OUTPUT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_add_more_threshold) = SCTPCTL_ADD_MORE_ON_OUTPUT_DEFAULT;
  ------------------
  |  |  376|      1|#define SCTPCTL_ADD_MORE_ON_OUTPUT_DEFAULT SCTP_DEFAULT_ADD_MORE
  |  |  ------------------
  |  |  |  |  837|      1|#define SCTP_DEFAULT_ADD_MORE 1452
  |  |  ------------------
  ------------------
  119|      1|	SCTP_BASE_SYSCTL(sctp_nr_incoming_streams_default) = SCTPCTL_INCOMING_STREAMS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_nr_incoming_streams_default) = SCTPCTL_INCOMING_STREAMS_DEFAULT;
  ------------------
  |  |  382|      1|#define SCTPCTL_INCOMING_STREAMS_DEFAULT SCTP_ISTREAM_INITIAL
  |  |  ------------------
  |  |  |  |  622|      1|#define SCTP_ISTREAM_INITIAL 2048
  |  |  ------------------
  ------------------
  120|      1|	SCTP_BASE_SYSCTL(sctp_nr_outgoing_streams_default) = SCTPCTL_OUTGOING_STREAMS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_nr_outgoing_streams_default) = SCTPCTL_OUTGOING_STREAMS_DEFAULT;
  ------------------
  |  |  388|      1|#define SCTPCTL_OUTGOING_STREAMS_DEFAULT SCTP_OSTREAM_INITIAL
  |  |  ------------------
  |  |  |  |  621|      1|#define SCTP_OSTREAM_INITIAL 10
  |  |  ------------------
  ------------------
  121|      1|	SCTP_BASE_SYSCTL(sctp_cmt_on_off) = SCTPCTL_CMT_ON_OFF_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_cmt_on_off) = SCTPCTL_CMT_ON_OFF_DEFAULT;
  ------------------
  |  |  394|      1|#define SCTPCTL_CMT_ON_OFF_DEFAULT	SCTP_CMT_OFF
  |  |  ------------------
  |  |  |  |  311|      1|#define SCTP_CMT_OFF            0
  |  |  ------------------
  ------------------
  122|      1|	SCTP_BASE_SYSCTL(sctp_cmt_use_dac) = SCTPCTL_CMT_USE_DAC_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_cmt_use_dac) = SCTPCTL_CMT_USE_DAC_DEFAULT;
  ------------------
  |  |  400|      1|#define SCTPCTL_CMT_USE_DAC_DEFAULT    	0
  ------------------
  123|      1|	SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst) = SCTPCTL_CWND_MAXBURST_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst) = SCTPCTL_CWND_MAXBURST_DEFAULT;
  ------------------
  |  |  406|      1|#define SCTPCTL_CWND_MAXBURST_DEFAULT	1
  ------------------
  124|      1|	SCTP_BASE_SYSCTL(sctp_nat_friendly) = SCTPCTL_NAT_FRIENDLY_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_nat_friendly) = SCTPCTL_NAT_FRIENDLY_DEFAULT;
  ------------------
  |  |  412|      1|#define SCTPCTL_NAT_FRIENDLY_DEFAULT	1
  ------------------
  125|      1|	SCTP_BASE_SYSCTL(sctp_L2_abc_variable) = SCTPCTL_ABC_L_VAR_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_L2_abc_variable) = SCTPCTL_ABC_L_VAR_DEFAULT;
  ------------------
  |  |  418|      1|#define SCTPCTL_ABC_L_VAR_DEFAULT	2
  ------------------
  126|      1|	SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) = SCTPCTL_MAX_CHAINED_MBUFS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) = SCTPCTL_MAX_CHAINED_MBUFS_DEFAULT;
  ------------------
  |  |  424|      1|#define SCTPCTL_MAX_CHAINED_MBUFS_DEFAULT	SCTP_DEFAULT_MBUFS_IN_CHAIN
  |  |  ------------------
  |  |  |  |  500|      1|#define SCTP_DEFAULT_MBUFS_IN_CHAIN 5
  |  |  ------------------
  ------------------
  127|      1|	SCTP_BASE_SYSCTL(sctp_do_drain) = SCTPCTL_DO_SCTP_DRAIN_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_do_drain) = SCTPCTL_DO_SCTP_DRAIN_DEFAULT;
  ------------------
  |  |  430|      1|#define SCTPCTL_DO_SCTP_DRAIN_DEFAULT	1
  ------------------
  128|      1|	SCTP_BASE_SYSCTL(sctp_hb_maxburst) = SCTPCTL_HB_MAX_BURST_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_hb_maxburst) = SCTPCTL_HB_MAX_BURST_DEFAULT;
  ------------------
  |  |  436|      1|#define SCTPCTL_HB_MAX_BURST_DEFAULT	SCTP_DEF_HBMAX_BURST
  |  |  ------------------
  |  |  |  |  334|      1|#define SCTP_DEF_HBMAX_BURST 4
  |  |  ------------------
  ------------------
  129|      1|	SCTP_BASE_SYSCTL(sctp_abort_if_one_2_one_hits_limit) = SCTPCTL_ABORT_AT_LIMIT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_abort_if_one_2_one_hits_limit) = SCTPCTL_ABORT_AT_LIMIT_DEFAULT;
  ------------------
  |  |  442|      1|#define SCTPCTL_ABORT_AT_LIMIT_DEFAULT	0
  ------------------
  130|      1|	SCTP_BASE_SYSCTL(sctp_min_residual) = SCTPCTL_MIN_RESIDUAL_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_min_residual) = SCTPCTL_MIN_RESIDUAL_DEFAULT;
  ------------------
  |  |  448|      1|#define SCTPCTL_MIN_RESIDUAL_DEFAULT	1452
  ------------------
  131|      1|	SCTP_BASE_SYSCTL(sctp_max_retran_chunk) = SCTPCTL_MAX_RETRAN_CHUNK_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_max_retran_chunk) = SCTPCTL_MAX_RETRAN_CHUNK_DEFAULT;
  ------------------
  |  |  454|      1|#define SCTPCTL_MAX_RETRAN_CHUNK_DEFAULT	30
  ------------------
  132|      1|	SCTP_BASE_SYSCTL(sctp_logging_level) = SCTPCTL_LOGGING_LEVEL_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_logging_level) = SCTPCTL_LOGGING_LEVEL_DEFAULT;
  ------------------
  |  |  460|      1|#define SCTPCTL_LOGGING_LEVEL_DEFAULT	0
  ------------------
  133|      1|	SCTP_BASE_SYSCTL(sctp_default_cc_module) = SCTPCTL_DEFAULT_CC_MODULE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_default_cc_module) = SCTPCTL_DEFAULT_CC_MODULE_DEFAULT;
  ------------------
  |  |  466|      1|#define SCTPCTL_DEFAULT_CC_MODULE_DEFAULT	0
  ------------------
  134|      1|	SCTP_BASE_SYSCTL(sctp_default_ss_module) = SCTPCTL_DEFAULT_SS_MODULE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_default_ss_module) = SCTPCTL_DEFAULT_SS_MODULE_DEFAULT;
  ------------------
  |  |  472|      1|#define SCTPCTL_DEFAULT_SS_MODULE_DEFAULT	0
  ------------------
  135|      1|	SCTP_BASE_SYSCTL(sctp_default_frag_interleave) = SCTPCTL_DEFAULT_FRAG_INTERLEAVE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_default_frag_interleave) = SCTPCTL_DEFAULT_FRAG_INTERLEAVE_DEFAULT;
  ------------------
  |  |  478|      1|#define SCTPCTL_DEFAULT_FRAG_INTERLEAVE_DEFAULT	1
  ------------------
  136|      1|	SCTP_BASE_SYSCTL(sctp_mobility_base) = SCTPCTL_MOBILITY_BASE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_mobility_base) = SCTPCTL_MOBILITY_BASE_DEFAULT;
  ------------------
  |  |  484|      1|#define SCTPCTL_MOBILITY_BASE_DEFAULT	0
  ------------------
  137|      1|	SCTP_BASE_SYSCTL(sctp_mobility_fasthandoff) = SCTPCTL_MOBILITY_FASTHANDOFF_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_mobility_fasthandoff) = SCTPCTL_MOBILITY_FASTHANDOFF_DEFAULT;
  ------------------
  |  |  490|      1|#define SCTPCTL_MOBILITY_FASTHANDOFF_DEFAULT	0
  ------------------
  138|      1|	SCTP_BASE_SYSCTL(sctp_vtag_time_wait) = SCTPCTL_TIME_WAIT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_vtag_time_wait) = SCTPCTL_TIME_WAIT_DEFAULT;
  ------------------
  |  |  518|      1|#define SCTPCTL_TIME_WAIT_DEFAULT	SCTP_TIME_WAIT
  |  |  ------------------
  |  |  |  |  929|      1|#define SCTP_TIME_WAIT 60
  |  |  ------------------
  ------------------
  139|      1|	SCTP_BASE_SYSCTL(sctp_buffer_splitting) = SCTPCTL_BUFFER_SPLITTING_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_buffer_splitting) = SCTPCTL_BUFFER_SPLITTING_DEFAULT;
  ------------------
  |  |  524|      1|#define SCTPCTL_BUFFER_SPLITTING_DEFAULT	SCTPCTL_BUFFER_SPLITTING_MIN
  |  |  ------------------
  |  |  |  |  522|      1|#define SCTPCTL_BUFFER_SPLITTING_MIN		0
  |  |  ------------------
  ------------------
  140|      1|	SCTP_BASE_SYSCTL(sctp_initial_cwnd) = SCTPCTL_INITIAL_CWND_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_initial_cwnd) = SCTPCTL_INITIAL_CWND_DEFAULT;
  ------------------
  |  |  530|      1|#define SCTPCTL_INITIAL_CWND_DEFAULT	3
  ------------------
  141|      1|	SCTP_BASE_SYSCTL(sctp_rttvar_bw) = SCTPCTL_RTTVAR_BW_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_rttvar_bw) = SCTPCTL_RTTVAR_BW_DEFAULT;
  ------------------
  |  |  536|      1|#define SCTPCTL_RTTVAR_BW_DEFAULT	4
  ------------------
  142|      1|	SCTP_BASE_SYSCTL(sctp_rttvar_rtt) = SCTPCTL_RTTVAR_RTT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_rttvar_rtt) = SCTPCTL_RTTVAR_RTT_DEFAULT;
  ------------------
  |  |  542|      1|#define SCTPCTL_RTTVAR_RTT_DEFAULT	5
  ------------------
  143|      1|	SCTP_BASE_SYSCTL(sctp_rttvar_eqret) = SCTPCTL_RTTVAR_EQRET_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_rttvar_eqret) = SCTPCTL_RTTVAR_EQRET_DEFAULT;
  ------------------
  |  |  547|      1|#define SCTPCTL_RTTVAR_EQRET_DEFAULT	0
  ------------------
  144|      1|	SCTP_BASE_SYSCTL(sctp_steady_step) = SCTPCTL_RTTVAR_STEADYS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_steady_step) = SCTPCTL_RTTVAR_STEADYS_DEFAULT;
  ------------------
  |  |  552|      1|#define SCTPCTL_RTTVAR_STEADYS_DEFAULT	20 /* 0 means disable feature */
  ------------------
  145|      1|	SCTP_BASE_SYSCTL(sctp_use_dccc_ecn) = SCTPCTL_RTTVAR_DCCCECN_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_use_dccc_ecn) = SCTPCTL_RTTVAR_DCCCECN_DEFAULT;
  ------------------
  |  |  557|      1|#define SCTPCTL_RTTVAR_DCCCECN_DEFAULT	1 /* 0 means disable feature */
  ------------------
  146|      1|	SCTP_BASE_SYSCTL(sctp_blackhole) = SCTPCTL_BLACKHOLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_blackhole) = SCTPCTL_BLACKHOLE_DEFAULT;
  ------------------
  |  |  562|      1|#define SCTPCTL_BLACKHOLE_DEFAULT	SCTPCTL_BLACKHOLE_MIN
  |  |  ------------------
  |  |  |  |  560|      1|#define SCTPCTL_BLACKHOLE_MIN		0
  |  |  ------------------
  ------------------
  147|      1|	SCTP_BASE_SYSCTL(sctp_sendall_limit) = SCTPCTL_SENDALL_LIMIT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_sendall_limit) = SCTPCTL_SENDALL_LIMIT_DEFAULT;
  ------------------
  |  |  568|      1|#define SCTPCTL_SENDALL_LIMIT_DEFAULT	1432
  ------------------
  148|      1|	SCTP_BASE_SYSCTL(sctp_diag_info_code) = SCTPCTL_DIAG_INFO_CODE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_diag_info_code) = SCTPCTL_DIAG_INFO_CODE_DEFAULT;
  ------------------
  |  |  573|      1|#define SCTPCTL_DIAG_INFO_CODE_DEFAULT	0
  ------------------
  149|      1|	SCTP_BASE_SYSCTL(sctp_ootb_with_zero_cksum) = SCTPCTL_OOTB_WITH_ZERO_CKSUM_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_ootb_with_zero_cksum) = SCTPCTL_OOTB_WITH_ZERO_CKSUM_DEFAULT;
  ------------------
  |  |  578|      1|#define SCTPCTL_OOTB_WITH_ZERO_CKSUM_DEFAULT	0
  ------------------
  150|       |#if defined(SCTP_LOCAL_TRACE_BUF)
  151|       |#if defined(_WIN32) && !defined(__Userspace__)
  152|       |	/* On Windows, the resource for global variables is limited. */
  153|       |	MALLOC(SCTP_BASE_SYSCTL(sctp_log), struct sctp_log *, sizeof(struct sctp_log), M_SYSCTL, M_ZERO);
  154|       |#else
  155|       |	memset(&SCTP_BASE_SYSCTL(sctp_log), 0, sizeof(struct sctp_log));
  156|       |#endif
  157|       |#endif
  158|      1|	SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) = SCTPCTL_UDP_TUNNELING_PORT_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) = SCTPCTL_UDP_TUNNELING_PORT_DEFAULT;
  ------------------
  |  |  499|      1|#define SCTPCTL_UDP_TUNNELING_PORT_DEFAULT	SCTP_OVER_UDP_TUNNELING_PORT
  |  |  ------------------
  |  |  |  |   43|      1|#define SCTP_OVER_UDP_TUNNELING_PORT 9899
  |  |  ------------------
  ------------------
  159|      1|	SCTP_BASE_SYSCTL(sctp_enable_sack_immediately) = SCTPCTL_SACK_IMMEDIATELY_ENABLE_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_enable_sack_immediately) = SCTPCTL_SACK_IMMEDIATELY_ENABLE_DEFAULT;
  ------------------
  |  |  506|      1|#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_DEFAULT	SCTPCTL_SACK_IMMEDIATELY_ENABLE_MAX
  |  |  ------------------
  |  |  |  |  505|      1|#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_MAX	1
  |  |  ------------------
  ------------------
  160|      1|	SCTP_BASE_SYSCTL(sctp_inits_include_nat_friendly) = SCTPCTL_NAT_FRIENDLY_INITS_DEFAULT;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	SCTP_BASE_SYSCTL(sctp_inits_include_nat_friendly) = SCTPCTL_NAT_FRIENDLY_INITS_DEFAULT;
  ------------------
  |  |  512|      1|#define SCTPCTL_NAT_FRIENDLY_INITS_DEFAULT	SCTPCTL_NAT_FRIENDLY_INITS_MIN
  |  |  ------------------
  |  |  |  |  510|      1|#define SCTPCTL_NAT_FRIENDLY_INITS_MIN	0
  |  |  ------------------
  ------------------
  161|       |#if defined(SCTP_DEBUG)
  162|       |	SCTP_BASE_SYSCTL(sctp_debug_on) = SCTPCTL_DEBUG_DEFAULT;
  163|       |#endif
  164|       |#if defined(__APPLE__) && !defined(__Userspace__)
  165|       |	SCTP_BASE_SYSCTL(sctp_ignore_vmware_interfaces) = SCTPCTL_IGNORE_VMWARE_INTERFACES_DEFAULT;
  166|       |	SCTP_BASE_SYSCTL(sctp_main_timer) = SCTPCTL_MAIN_TIMER_DEFAULT;
  167|       |	SCTP_BASE_SYSCTL(sctp_addr_watchdog_limit) = SCTPCTL_ADDR_WATCHDOG_LIMIT_DEFAULT;
  168|       |	SCTP_BASE_SYSCTL(sctp_vtag_watchdog_limit) = SCTPCTL_VTAG_WATCHDOG_LIMIT_DEFAULT;
  169|       |#endif
  170|       |#if defined(__APPLE__) && !defined(__Userspace__)
  171|       |	SCTP_BASE_SYSCTL(sctp_output_unlocked) = SCTPCTL_OUTPUT_UNLOCKED_DEFAULT;
  172|       |#endif
  173|      1|}

sctp_find_alternate_net:
  174|  1.75k|{
  175|       |	/* Find and return an alternate network if possible */
  176|  1.75k|	struct sctp_nets *alt, *mnet, *min_errors_net = NULL , *max_cwnd_net = NULL;
  177|  1.75k|	bool looped;
  178|       |	/* JRS 5/14/07 - Initialize min_errors to an impossible value. */
  179|  1.75k|	int min_errors = -1;
  180|  1.75k|	uint32_t max_cwnd = 0;
  181|       |
  182|  1.75k|	if (stcb->asoc.numnets == 1) {
  ------------------
  |  Branch (182:6): [True: 86, False: 1.67k]
  ------------------
  183|       |		/* No selection can be made. */
  184|     86|		return (TAILQ_FIRST(&stcb->asoc.nets));
  185|     86|	}
  186|       |	/*
  187|       |	 * JRS 5/14/07 - If mode is set to 2, use the CMT PF find alternate net algorithm.
  188|       |	 * This algorithm chooses the active destination (not in PF state) with the largest
  189|       |	 * cwnd value. If all destinations are in PF state, unreachable, or unconfirmed, choose
  190|       |	 * the destination that is in PF state with the lowest error count. In case of a tie,
  191|       |	 * choose the destination that was most recently active.
  192|       |	 */
  193|  1.67k|	if (mode == 2) {
  ------------------
  |  Branch (193:6): [True: 0, False: 1.67k]
  ------------------
  194|      0|		TAILQ_FOREACH(mnet, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (194:3): [True: 0, False: 0]
  ------------------
  195|       |			/* JRS 5/14/07 - If the destination is unreachable or unconfirmed, skip it. */
  196|      0|			if (((mnet->dest_state & SCTP_ADDR_REACHABLE) != SCTP_ADDR_REACHABLE) ||
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
              			if (((mnet->dest_state & SCTP_ADDR_REACHABLE) != SCTP_ADDR_REACHABLE) ||
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (196:8): [True: 0, False: 0]
  ------------------
  197|      0|			    (mnet->dest_state & SCTP_ADDR_UNCONFIRMED)) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (197:8): [True: 0, False: 0]
  ------------------
  198|      0|				continue;
  199|      0|			}
  200|       |			/*
  201|       |			 * JRS 5/14/07 -  If the destination is reachable but in PF state, compare
  202|       |			 *  the error count of the destination to the minimum error count seen thus far.
  203|       |			 *  Store the destination with the lower error count.  If the error counts are
  204|       |			 *  equal, store the destination that was most recently active.
  205|       |			 */
  206|      0|			if (mnet->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (206:8): [True: 0, False: 0]
  ------------------
  207|       |				/*
  208|       |				 * JRS 5/14/07 - If the destination under consideration is the current
  209|       |				 *  destination, work as if the error count is one higher.  The
  210|       |				 *  actual error count will not be incremented until later in the
  211|       |				 *  t3 handler.
  212|       |				 */
  213|      0|				if (mnet == net) {
  ------------------
  |  Branch (213:9): [True: 0, False: 0]
  ------------------
  214|      0|					if (min_errors == -1) {
  ------------------
  |  Branch (214:10): [True: 0, False: 0]
  ------------------
  215|      0|						min_errors = mnet->error_count + 1;
  216|      0|						min_errors_net = mnet;
  217|      0|					} else if (mnet->error_count + 1 < min_errors) {
  ------------------
  |  Branch (217:17): [True: 0, False: 0]
  ------------------
  218|      0|						min_errors = mnet->error_count + 1;
  219|      0|						min_errors_net = mnet;
  220|      0|					} else if (mnet->error_count + 1 == min_errors
  ------------------
  |  Branch (220:17): [True: 0, False: 0]
  ------------------
  221|      0|								&& mnet->last_active > min_errors_net->last_active) {
  ------------------
  |  Branch (221:12): [True: 0, False: 0]
  ------------------
  222|      0|						min_errors_net = mnet;
  223|      0|						min_errors = mnet->error_count + 1;
  224|      0|					}
  225|      0|					continue;
  226|      0|				} else {
  227|      0|					if (min_errors == -1) {
  ------------------
  |  Branch (227:10): [True: 0, False: 0]
  ------------------
  228|      0|						min_errors = mnet->error_count;
  229|      0|						min_errors_net = mnet;
  230|      0|					} else if (mnet->error_count < min_errors) {
  ------------------
  |  Branch (230:17): [True: 0, False: 0]
  ------------------
  231|      0|						min_errors = mnet->error_count;
  232|      0|						min_errors_net = mnet;
  233|      0|					} else if (mnet->error_count == min_errors
  ------------------
  |  Branch (233:17): [True: 0, False: 0]
  ------------------
  234|      0|								&& mnet->last_active > min_errors_net->last_active) {
  ------------------
  |  Branch (234:12): [True: 0, False: 0]
  ------------------
  235|      0|						min_errors_net = mnet;
  236|      0|						min_errors = mnet->error_count;
  237|      0|					}
  238|      0|					continue;
  239|      0|				}
  240|      0|			}
  241|       |			/*
  242|       |			 * JRS 5/14/07 - If the destination is reachable and not in PF state, compare the
  243|       |			 *  cwnd of the destination to the highest cwnd seen thus far.  Store the
  244|       |			 *  destination with the higher cwnd value.  If the cwnd values are equal,
  245|       |			 *  randomly choose one of the two destinations.
  246|       |			 */
  247|      0|			if (max_cwnd < mnet->cwnd) {
  ------------------
  |  Branch (247:8): [True: 0, False: 0]
  ------------------
  248|      0|				max_cwnd_net = mnet;
  249|      0|				max_cwnd = mnet->cwnd;
  250|      0|			} else if (max_cwnd == mnet->cwnd) {
  ------------------
  |  Branch (250:15): [True: 0, False: 0]
  ------------------
  251|      0|				uint32_t rndval;
  252|      0|				uint8_t this_random;
  253|       |
  254|      0|				if (stcb->asoc.hb_random_idx > 3) {
  ------------------
  |  Branch (254:9): [True: 0, False: 0]
  ------------------
  255|      0|					rndval = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep);
  256|      0|					memcpy(stcb->asoc.hb_random_values, &rndval, sizeof(stcb->asoc.hb_random_values));
  257|      0|					this_random = stcb->asoc.hb_random_values[0];
  258|      0|					stcb->asoc.hb_random_idx++;
  259|      0|					stcb->asoc.hb_ect_randombit = 0;
  260|      0|				} else {
  261|      0|					this_random = stcb->asoc.hb_random_values[stcb->asoc.hb_random_idx];
  262|      0|					stcb->asoc.hb_random_idx++;
  263|      0|					stcb->asoc.hb_ect_randombit = 0;
  264|      0|				}
  265|      0|				if (this_random % 2 == 1) {
  ------------------
  |  Branch (265:9): [True: 0, False: 0]
  ------------------
  266|      0|					max_cwnd_net = mnet;
  267|      0|					max_cwnd = mnet->cwnd; /* Useless? */
  268|      0|				}
  269|      0|			}
  270|      0|		}
  271|      0|		if (max_cwnd_net == NULL) {
  ------------------
  |  Branch (271:7): [True: 0, False: 0]
  ------------------
  272|      0|			if (min_errors_net == NULL) {
  ------------------
  |  Branch (272:8): [True: 0, False: 0]
  ------------------
  273|      0|				return (net);
  274|      0|			}
  275|      0|			return (min_errors_net);
  276|      0|		} else {
  277|      0|			return (max_cwnd_net);
  278|      0|		}
  279|      0|	} /* JRS 5/14/07 - If mode is set to 1, use the CMT policy for choosing an alternate net. */
  280|  1.67k|	else if (mode == 1) {
  ------------------
  |  Branch (280:11): [True: 0, False: 1.67k]
  ------------------
  281|      0|		TAILQ_FOREACH(mnet, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (281:3): [True: 0, False: 0]
  ------------------
  282|      0|			if (((mnet->dest_state & SCTP_ADDR_REACHABLE) != SCTP_ADDR_REACHABLE) ||
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
              			if (((mnet->dest_state & SCTP_ADDR_REACHABLE) != SCTP_ADDR_REACHABLE) ||
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (282:8): [True: 0, False: 0]
  ------------------
  283|      0|			    (mnet->dest_state & SCTP_ADDR_UNCONFIRMED)) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (283:8): [True: 0, False: 0]
  ------------------
  284|       |				/*
  285|       |				 * will skip ones that are not-reachable or
  286|       |				 * unconfirmed
  287|       |				 */
  288|      0|				continue;
  289|      0|			}
  290|      0|			if (max_cwnd < mnet->cwnd) {
  ------------------
  |  Branch (290:8): [True: 0, False: 0]
  ------------------
  291|      0|				max_cwnd_net = mnet;
  292|      0|				max_cwnd = mnet->cwnd;
  293|      0|			} else if (max_cwnd == mnet->cwnd) {
  ------------------
  |  Branch (293:15): [True: 0, False: 0]
  ------------------
  294|      0|				uint32_t rndval;
  295|      0|				uint8_t this_random;
  296|       |
  297|      0|				if (stcb->asoc.hb_random_idx > 3) {
  ------------------
  |  Branch (297:9): [True: 0, False: 0]
  ------------------
  298|      0|					rndval = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep);
  299|      0|					memcpy(stcb->asoc.hb_random_values, &rndval,
  300|      0|					    sizeof(stcb->asoc.hb_random_values));
  301|      0|					this_random = stcb->asoc.hb_random_values[0];
  302|      0|					stcb->asoc.hb_random_idx = 0;
  303|      0|					stcb->asoc.hb_ect_randombit = 0;
  304|      0|				} else {
  305|      0|					this_random = stcb->asoc.hb_random_values[stcb->asoc.hb_random_idx];
  306|      0|					stcb->asoc.hb_random_idx++;
  307|      0|					stcb->asoc.hb_ect_randombit = 0;
  308|      0|				}
  309|      0|				if (this_random % 2) {
  ------------------
  |  Branch (309:9): [True: 0, False: 0]
  ------------------
  310|      0|					max_cwnd_net = mnet;
  311|      0|					max_cwnd = mnet->cwnd;
  312|      0|				}
  313|      0|			}
  314|      0|		}
  315|      0|		if (max_cwnd_net) {
  ------------------
  |  Branch (315:7): [True: 0, False: 0]
  ------------------
  316|      0|			return (max_cwnd_net);
  317|      0|		}
  318|      0|	}
  319|       |	/* Look for an alternate net, which is active. */
  320|  1.67k|	if ((net != NULL) && ((net->dest_state & SCTP_ADDR_BEING_DELETED) == 0)) {
  ------------------
  |  |  484|  1.67k|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (320:6): [True: 1.67k, False: 0]
  |  Branch (320:23): [True: 1.67k, False: 0]
  ------------------
  321|  1.67k|		alt = TAILQ_NEXT(net, sctp_next);
  322|  1.67k|	} else {
  323|      0|		alt = TAILQ_FIRST(&stcb->asoc.nets);
  324|      0|	}
  325|  1.67k|	looped = false;
  326|  2.97k|	for (;;) {
  327|  2.97k|		if (alt == NULL) {
  ------------------
  |  Branch (327:7): [True: 653, False: 2.32k]
  ------------------
  328|    653|			if (!looped) {
  ------------------
  |  Branch (328:8): [True: 536, False: 117]
  ------------------
  329|    536|				alt = TAILQ_FIRST(&stcb->asoc.nets);
  330|    536|				looped = true;
  331|    536|			}
  332|       |			/* Definitely out of candidates. */
  333|    653|			if (alt == NULL) {
  ------------------
  |  Branch (333:8): [True: 117, False: 536]
  ------------------
  334|    117|				break;
  335|    117|			}
  336|    653|		}
  337|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  338|       |		if (alt->ro.ro_nh == NULL) {
  339|       |#else
  340|  2.86k|		if (alt->ro.ro_rt == NULL) {
  ------------------
  |  Branch (340:7): [True: 0, False: 2.86k]
  ------------------
  341|      0|#endif
  342|      0|			if (alt->ro._s_addr) {
  ------------------
  |  Branch (342:8): [True: 0, False: 0]
  ------------------
  343|      0|				sctp_free_ifa(alt->ro._s_addr);
  344|      0|				alt->ro._s_addr = NULL;
  345|      0|			}
  346|      0|			alt->src_addr_selected = 0;
  347|      0|		}
  348|  2.86k|		if (((alt->dest_state & SCTP_ADDR_REACHABLE) == SCTP_ADDR_REACHABLE) &&
  ------------------
  |  |  481|  2.86k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
              		if (((alt->dest_state & SCTP_ADDR_REACHABLE) == SCTP_ADDR_REACHABLE) &&
  ------------------
  |  |  481|  2.86k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (348:7): [True: 2.86k, False: 0]
  ------------------
  349|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  350|       |		    (alt->ro.ro_nh != NULL) &&
  351|       |#else
  352|  2.86k|		    (alt->ro.ro_rt != NULL) &&
  ------------------
  |  Branch (352:7): [True: 2.86k, False: 0]
  ------------------
  353|  2.86k|#endif
  354|  2.86k|		    ((alt->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) &&
  ------------------
  |  |  487|  2.86k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (354:7): [True: 1.67k, False: 1.19k]
  ------------------
  355|  1.67k|		    (alt != net)) {
  ------------------
  |  Branch (355:7): [True: 1.55k, False: 117]
  ------------------
  356|       |			/* Found an alternate net, which is reachable. */
  357|  1.55k|			break;
  358|  1.55k|		}
  359|  1.30k|		alt = TAILQ_NEXT(alt, sctp_next);
  360|  1.30k|	}
  361|       |
  362|  1.67k|	if (alt == NULL) {
  ------------------
  |  Branch (362:6): [True: 117, False: 1.55k]
  ------------------
  363|       |		/*
  364|       |		 * In case no active alternate net has been found, look for
  365|       |		 * an alternate net, which is confirmed.
  366|       |		 */
  367|    117|		if ((net != NULL) && ((net->dest_state & SCTP_ADDR_BEING_DELETED) == 0)) {
  ------------------
  |  |  484|    117|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (367:7): [True: 117, False: 0]
  |  Branch (367:24): [True: 117, False: 0]
  ------------------
  368|    117|			alt = TAILQ_NEXT(net, sctp_next);
  369|    117|		} else {
  370|      0|			alt = TAILQ_FIRST(&stcb->asoc.nets);
  371|      0|		}
  372|    117|		looped = false;
  373|    686|		for (;;) {
  374|    686|			if (alt == NULL) {
  ------------------
  |  Branch (374:8): [True: 234, False: 452]
  ------------------
  375|    234|				if (!looped) {
  ------------------
  |  Branch (375:9): [True: 117, False: 117]
  ------------------
  376|    117|					alt = TAILQ_FIRST(&stcb->asoc.nets);
  377|    117|					looped = true;
  378|    117|				}
  379|       |				/* Definitely out of candidates. */
  380|    234|				if (alt == NULL) {
  ------------------
  |  Branch (380:9): [True: 117, False: 117]
  ------------------
  381|    117|					break;
  382|    117|				}
  383|    234|			}
  384|    569|			if (((alt->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) &&
  ------------------
  |  |  487|    569|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (384:8): [True: 117, False: 452]
  ------------------
  385|    117|			    (alt != net)) {
  ------------------
  |  Branch (385:8): [True: 0, False: 117]
  ------------------
  386|       |				/* Found an alternate net, which is confirmed. */
  387|      0|				break;
  388|      0|			}
  389|    569|			alt = TAILQ_NEXT(alt, sctp_next);
  390|    569|		}
  391|    117|	}
  392|  1.67k|	if (alt == NULL) {
  ------------------
  |  Branch (392:6): [True: 117, False: 1.55k]
  ------------------
  393|       |		/*
  394|       |		 * In case no confirmed alternate net has been found, just
  395|       |		 * return net, if it is not being deleted. In the other case
  396|       |		 * just return the first net.
  397|       |		 */
  398|    117|		if ((net != NULL) && ((net->dest_state & SCTP_ADDR_BEING_DELETED) == 0)) {
  ------------------
  |  |  484|    117|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (398:7): [True: 117, False: 0]
  |  Branch (398:24): [True: 117, False: 0]
  ------------------
  399|    117|			alt = net;
  400|    117|		}
  401|    117|		if (alt == NULL) {
  ------------------
  |  Branch (401:7): [True: 0, False: 117]
  ------------------
  402|       |			alt = TAILQ_FIRST(&stcb->asoc.nets);
  403|      0|		}
  404|    117|	}
  405|  1.67k|	return (alt);
  406|  1.67k|}

sctp_userspace_thread_create:
   78|      4|{
   79|      4|	return pthread_create(thread, NULL, start_routine, NULL);
   80|      4|}
sctp_userspace_set_threadname:
   85|      4|{
   86|       |#if defined(__APPLE__)
   87|       |	pthread_setname_np(name);
   88|       |#endif
   89|      4|#if defined(__linux__)
   90|      4|	prctl(PR_SET_NAME, name);
   91|      4|#endif
   92|       |#if defined(__FreeBSD__)
   93|       |	pthread_set_name_np(pthread_self(), name);
   94|       |#endif
   95|      4|}
sctp_userspace_get_mtu_from_ifn:
  100|      3|{
  101|      3|#if defined(INET) || defined(INET6)
  102|      3|	struct ifreq ifr;
  103|      3|	int fd;
  104|      3|#endif
  105|      3|	int mtu;
  106|       |
  107|      3|	if (if_index == 0xffffffff) {
  ------------------
  |  Branch (107:6): [True: 1, False: 2]
  ------------------
  108|      1|		mtu = 1280;
  109|      2|	} else {
  110|      2|		mtu = 0;
  111|      2|#if defined(INET) || defined(INET6)
  112|      2|		memset(&ifr, 0, sizeof(struct ifreq));
  113|      2|		if (if_indextoname(if_index, ifr.ifr_name) != NULL) {
  ------------------
  |  Branch (113:7): [True: 2, False: 0]
  ------------------
  114|       |			/* TODO can I use the raw socket here and not have to open a new one with each query? */
  115|      2|#if defined(INET)
  116|      2|			if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
  ------------------
  |  Branch (116:8): [True: 2, False: 0]
  ------------------
  117|       |#else
  118|       |			if ((fd = socket(AF_INET6, SOCK_DGRAM, 0)) >= 0) {
  119|       |#endif
  120|      2|				if (ioctl(fd, SIOCGIFMTU, &ifr) >= 0) {
  ------------------
  |  Branch (120:9): [True: 2, False: 0]
  ------------------
  121|       |					mtu = ifr.ifr_mtu;
  122|      2|				}
  123|      2|				close(fd);
  124|      2|			}
  125|      2|		}
  126|      2|#endif
  127|      2|	}
  128|      3|	return (mtu);
  129|      3|}

sctp_init:
   87|      1|{
   88|       |#if !defined(__Userspace__)
   89|       |	u_long sb_max_adj;
   90|       |
   91|       |#else
   92|      1|	init_random();
   93|      1|#endif
   94|       |	/* Initialize and modify the sysctled variables */
   95|      1|	sctp_init_sysctls();
   96|      1|#if defined(__Userspace__)
   97|      1|	SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) = port;
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
   98|       |#else
   99|       |#if defined(__APPLE__) && !defined(__Userspace__)
  100|       |	sb_max_adj = (u_long)((u_quad_t) (sb_max) * MCLBYTES / (MSIZE + MCLBYTES));
  101|       |	SCTP_BASE_SYSCTL(sctp_sendspace) = sb_max_adj;
  102|       |#else
  103|       |	if ((nmbclusters / 8) > SCTP_ASOC_MAX_CHUNKS_ON_QUEUE)
  104|       |		SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue) = (nmbclusters / 8);
  105|       |	/*
  106|       |	 * Allow a user to take no more than 1/2 the number of clusters or
  107|       |	 * the SB_MAX, whichever is smaller, for the send window.
  108|       |	 */
  109|       |	sb_max_adj = (u_long)((u_quad_t) (SB_MAX) * MCLBYTES / (MSIZE + MCLBYTES));
  110|       |	SCTP_BASE_SYSCTL(sctp_sendspace) = min(sb_max_adj,
  111|       |	    (((uint32_t)nmbclusters / 2) * MCLBYTES));
  112|       |#endif
  113|       |	/*
  114|       |	 * Now for the recv window, should we take the same amount? or
  115|       |	 * should I do 1/2 the SB_MAX instead in the SB_MAX min above. For
  116|       |	 * now I will just copy.
  117|       |	 */
  118|       |	SCTP_BASE_SYSCTL(sctp_recvspace) = SCTP_BASE_SYSCTL(sctp_sendspace);
  119|       |#endif
  120|      1|	SCTP_BASE_VAR(first_time) = 0;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  121|      1|	SCTP_BASE_VAR(sctp_pcb_initialized) = 0;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  122|      1|#if defined(__Userspace__)
  123|      1|#if !defined(_WIN32)
  124|      1|#if defined(INET) || defined(INET6)
  125|      1|	SCTP_BASE_VAR(userspace_route) = -1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  126|      1|#endif
  127|      1|#endif
  128|      1|#ifdef INET
  129|      1|	SCTP_BASE_VAR(userspace_rawsctp) = -1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  130|      1|	SCTP_BASE_VAR(userspace_udpsctp) = -1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  131|      1|#endif
  132|      1|#ifdef INET6
  133|      1|	SCTP_BASE_VAR(userspace_rawsctp6) = -1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  134|      1|	SCTP_BASE_VAR(userspace_udpsctp6) = -1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  135|      1|#endif
  136|      1|	SCTP_BASE_VAR(timer_thread_should_exit) = 0;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  137|      1|	SCTP_BASE_VAR(conn_output) = conn_output;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  138|      1|	SCTP_BASE_VAR(debug_printf) = debug_printf;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  139|      1|	SCTP_BASE_VAR(crc32c_offloaded) = 0;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  140|      1|	SCTP_BASE_VAR(iterator_thread_started) = 0;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  141|      1|	SCTP_BASE_VAR(timer_thread_started) = 0;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  142|      1|#endif
  143|      1|#if defined(__Userspace__)
  144|      1|	sctp_pcb_init(start_threads);
  145|      1|	if (start_threads) {
  ------------------
  |  Branch (145:6): [True: 1, False: 0]
  ------------------
  146|      1|		sctp_start_timer_thread();
  147|      1|	}
  148|       |#else
  149|       |	sctp_pcb_init();
  150|       |#endif
  151|       |#if defined(SCTP_PACKET_LOGGING)
  152|       |	SCTP_BASE_VAR(packet_log_writers) = 0;
  153|       |	SCTP_BASE_VAR(packet_log_end) = 0;
  154|       |	memset(&SCTP_BASE_VAR(packet_log_buffer), 0, SCTP_PACKET_LOG_SIZE);
  155|       |#endif
  156|       |#if defined(__APPLE__) && !defined(__Userspace__)
  157|       |	SCTP_BASE_VAR(sctp_main_timer_ticks) = 0;
  158|       |	sctp_start_main_timer();
  159|       |	timeout(sctp_delayed_startup, NULL, 1);
  160|       |#endif
  161|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  162|       |	SCTP_BASE_VAR(eh_tag) = EVENTHANDLER_REGISTER(rt_addrmsg,
  163|       |	    sctp_addr_change_event_handler, NULL, EVENTHANDLER_PRI_FIRST);
  164|       |#endif
  165|      1|}
sctpconn_attach:
  819|  10.1k|{
  820|  10.1k|	struct sctp_inpcb *inp;
  821|  10.1k|	struct inpcb *ip_inp;
  822|  10.1k|	int error;
  823|       |
  824|  10.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  825|  10.1k|	if (inp != NULL) {
  ------------------
  |  Branch (825:6): [True: 0, False: 10.1k]
  ------------------
  826|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
  827|      0|		return (EINVAL);
  828|      0|	}
  829|  10.1k|	if (so->so_snd.sb_hiwat == 0 || so->so_rcv.sb_hiwat == 0) {
  ------------------
  |  Branch (829:6): [True: 10.1k, False: 0]
  |  Branch (829:34): [True: 0, False: 0]
  ------------------
  830|  10.1k|		error = SCTP_SORESERVE(so, SCTP_BASE_SYSCTL(sctp_sendspace), SCTP_BASE_SYSCTL(sctp_recvspace));
  ------------------
  |  |  963|  10.1k|#define SCTP_SORESERVE(so, send, recv)	soreserve(so, send, recv)
  ------------------
  831|  10.1k|		if (error) {
  ------------------
  |  Branch (831:7): [True: 0, False: 10.1k]
  ------------------
  832|      0|			return (error);
  833|      0|		}
  834|  10.1k|	}
  835|  10.1k|	error = sctp_inpcb_alloc(so, vrf_id);
  836|  10.1k|	if (error) {
  ------------------
  |  Branch (836:6): [True: 0, False: 10.1k]
  ------------------
  837|      0|		return (error);
  838|      0|	}
  839|  10.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  840|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  841|  10.1k|	inp->sctp_flags &= ~SCTP_PCB_FLAGS_BOUND_V6;
  ------------------
  |  |  544|  10.1k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  842|  10.1k|	inp->sctp_flags |= SCTP_PCB_FLAGS_BOUND_CONN;
  ------------------
  |  |  550|  10.1k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  843|  10.1k|	ip_inp = &inp->ip_inp.inp;
  844|  10.1k|	ip_inp->inp_vflag |= INP_CONN;
  ------------------
  |  |  124|  10.1k|#define INP_CONN        0x80
  ------------------
  845|  10.1k|	ip_inp->inp_ip_ttl = MODULE_GLOBAL(ip_defttl);
  ------------------
  |  |   65|  10.1k|#define MODULE_GLOBAL(_B) (_B)
  ------------------
  846|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  847|  10.1k|	return (0);
  848|  10.1k|}
sctpconn_bind:
  852|  10.1k|{
  853|  10.1k|	struct sctp_inpcb *inp;
  854|       |
  855|  10.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  856|  10.1k|	if (inp == NULL) {
  ------------------
  |  Branch (856:6): [True: 0, False: 10.1k]
  ------------------
  857|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
  858|      0|		return (EINVAL);
  859|      0|	}
  860|  10.1k|	if (addr != NULL) {
  ------------------
  |  Branch (860:6): [True: 10.1k, False: 0]
  ------------------
  861|       |#ifdef HAVE_SA_LEN
  862|       |		if ((addr->sa_family != AF_CONN) ||
  863|       |		    (addr->sa_len != sizeof(struct sockaddr_conn))) {
  864|       |#else
  865|  10.1k|		if (addr->sa_family != AF_CONN) {
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (865:7): [True: 0, False: 10.1k]
  ------------------
  866|      0|#endif
  867|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
  868|      0|			return (EINVAL);
  869|      0|		}
  870|  10.1k|	}
  871|  10.1k|	return (sctp_inpcb_bind(so, addr, NULL, NULL));
  872|  10.1k|}
sctp_close:
  878|  10.1k|{
  879|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  880|       |	struct epoch_tracker et;
  881|       |#endif
  882|  10.1k|	struct sctp_inpcb *inp;
  883|       |
  884|  10.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  885|  10.1k|	if (inp == NULL)
  ------------------
  |  Branch (885:6): [True: 0, False: 10.1k]
  ------------------
  886|      0|		return;
  887|       |
  888|       |	/* Inform all the lower layer assoc that we
  889|       |	 * are done.
  890|       |	 */
  891|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  892|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  893|       |	NET_EPOCH_ENTER(et);
  894|       |#endif
  895|       |#ifdef SCTP_LOG_CLOSING
  896|       |	sctp_log_closing(inp, NULL, 17);
  897|       |#endif
  898|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) {
  ------------------
  |  |  546|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (898:6): [True: 10.1k, False: 0]
  ------------------
  899|  10.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_CLOSE_IP;
  ------------------
  |  |  546|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
              		inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_CLOSE_IP;
  ------------------
  |  |  534|  10.1k|#define SCTP_PCB_FLAGS_CLOSE_IP         0x00040000
  ------------------
  900|  10.1k|#if defined(__Userspace__)
  901|  10.1k|		if (((so->so_options & SCTP_SO_LINGER) && (so->so_linger == 0)) ||
  ------------------
  |  |   52|  10.1k|#define SCTP_SO_LINGER     0x0001
  ------------------
  |  Branch (901:8): [True: 10.1k, False: 0]
  |  Branch (901:45): [True: 10.1k, False: 0]
  ------------------
  902|       |#else
  903|       |		if (((so->so_options & SO_LINGER) && (so->so_linger == 0)) ||
  904|       |#endif
  905|  10.1k|		    (SCTP_SBAVAIL(&so->so_rcv) > 0)) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (905:7): [True: 0, False: 0]
  ------------------
  906|       |#ifdef SCTP_LOG_CLOSING
  907|       |			sctp_log_closing(inp, NULL, 13);
  908|       |#endif
  909|  10.1k|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  910|  10.1k|			sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_ABORT,
  ------------------
  |  |  869|  10.1k|#define SCTP_FREE_SHOULD_USE_ABORT          1
  ------------------
  911|  10.1k|			                SCTP_CALLED_AFTER_CMPSET_OFCLOSE);
  ------------------
  |  |  866|  10.1k|#define SCTP_CALLED_AFTER_CMPSET_OFCLOSE  1
  ------------------
  912|  10.1k|		} else {
  913|       |#ifdef SCTP_LOG_CLOSING
  914|       |			sctp_log_closing(inp, NULL, 14);
  915|       |#endif
  916|      0|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  917|      0|			sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE,
  ------------------
  |  |  870|      0|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
  918|      0|			                SCTP_CALLED_AFTER_CMPSET_OFCLOSE);
  ------------------
  |  |  866|      0|#define SCTP_CALLED_AFTER_CMPSET_OFCLOSE  1
  ------------------
  919|      0|		}
  920|       |		/* The socket is now detached, no matter what
  921|       |		 * the state of the SCTP association.
  922|       |		 */
  923|  10.1k|		SOCK_LOCK(so);
  ------------------
  |  |  527|  10.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  924|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  925|       |		if (!SOLISTENING(so)) {
  926|       |			SCTP_SB_CLEAR(so->so_snd);
  927|       |			SCTP_SB_CLEAR(so->so_rcv);
  928|       |		}
  929|       |#else
  930|  10.1k|		SCTP_SB_CLEAR(so->so_snd);
  ------------------
  |  |  979|  10.1k|	(sb).sb_cc = 0;		\
  |  |  980|  10.1k|	(sb).sb_mb = NULL;	\
  |  |  981|  10.1k|	(sb).sb_mbcnt = 0;
  ------------------
  931|  10.1k|		SCTP_SB_CLEAR(so->so_rcv);
  ------------------
  |  |  979|  10.1k|	(sb).sb_cc = 0;		\
  |  |  980|  10.1k|	(sb).sb_mb = NULL;	\
  |  |  981|  10.1k|	(sb).sb_mbcnt = 0;
  ------------------
  932|  10.1k|#endif
  933|  10.1k|#if !(defined(__APPLE__) && !defined(__Userspace__))
  934|       |		/* Now null out the reference, we are completely detached. */
  935|  10.1k|		so->so_pcb = NULL;
  936|  10.1k|#endif
  937|  10.1k|		SOCK_UNLOCK(so);
  ------------------
  |  |  529|  10.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  938|  10.1k|	} else {
  939|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  940|      0|	}
  941|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  942|       |	NET_EPOCH_EXIT(et);
  943|       |#endif
  944|  10.1k|}
sctp_setopt:
 4508|   206k|{
 4509|   206k|	int error, set_opt;
 4510|   206k|	uint32_t *mopt;
 4511|   206k|	struct sctp_tcb *stcb = NULL;
 4512|   206k|	struct sctp_inpcb *inp = NULL;
 4513|   206k|	uint32_t vrf_id;
 4514|       |
 4515|   206k|	if (optval == NULL) {
  ------------------
  |  Branch (4515:6): [True: 0, False: 206k]
  ------------------
 4516|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4517|      0|		return (EINVAL);
 4518|      0|	}
 4519|   206k|	inp = (struct sctp_inpcb *)so->so_pcb;
 4520|   206k|	if (inp == NULL) {
  ------------------
  |  Branch (4520:6): [True: 0, False: 206k]
  ------------------
 4521|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4522|      0|		return (EINVAL);
 4523|      0|	}
 4524|   206k|	vrf_id = inp->def_vrf_id;
 4525|       |
 4526|   206k|	error = 0;
 4527|   206k|	switch (optname) {
 4528|  10.1k|	case SCTP_NODELAY:
  ------------------
  |  |   88|  10.1k|#define SCTP_NODELAY			0x00000004
  ------------------
  |  Branch (4528:2): [True: 10.1k, False: 196k]
  ------------------
 4529|  10.1k|	case SCTP_AUTOCLOSE:
  ------------------
  |  |   89|  10.1k|#define SCTP_AUTOCLOSE			0x00000005
  ------------------
  |  Branch (4529:2): [True: 0, False: 206k]
  ------------------
 4530|  10.1k|	case SCTP_AUTO_ASCONF:
  ------------------
  |  |  113|  10.1k|#define SCTP_AUTO_ASCONF		0x00000018 /* rw */
  ------------------
  |  Branch (4530:2): [True: 0, False: 206k]
  ------------------
 4531|  10.1k|	case SCTP_EXPLICIT_EOR:
  ------------------
  |  |  119|  10.1k|#define SCTP_EXPLICIT_EOR               0x0000001b
  ------------------
  |  Branch (4531:2): [True: 0, False: 206k]
  ------------------
 4532|  10.1k|	case SCTP_DISABLE_FRAGMENTS:
  ------------------
  |  |   95|  10.1k|#define SCTP_DISABLE_FRAGMENTS		0x00000009
  ------------------
  |  Branch (4532:2): [True: 0, False: 206k]
  ------------------
 4533|  10.1k|	case SCTP_USE_EXT_RCVINFO:
  ------------------
  |  |  112|  10.1k|#define SCTP_USE_EXT_RCVINFO		0x00000017
  ------------------
  |  Branch (4533:2): [True: 0, False: 206k]
  ------------------
 4534|  10.1k|	case SCTP_I_WANT_MAPPED_V4_ADDR:
  ------------------
  |  |  101|  10.1k|#define SCTP_I_WANT_MAPPED_V4_ADDR	0x0000000d
  ------------------
  |  Branch (4534:2): [True: 0, False: 206k]
  ------------------
 4535|       |		/* copy in the option value */
 4536|  10.1k|		SCTP_CHECK_AND_CAST(mopt, optval, uint32_t, optsize);
  ------------------
  |  | 2158|  10.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  10.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  10.1k|	} else { \
  |  | 2164|  10.1k|		destp = (type *)srcp; \
  |  | 2165|  10.1k|	} \
  |  | 2166|  10.1k|}
  ------------------
 4537|  10.1k|		set_opt = 0;
 4538|  10.1k|		if (error)
  ------------------
  |  Branch (4538:7): [True: 0, False: 10.1k]
  ------------------
 4539|      0|			break;
 4540|  10.1k|		switch (optname) {
  ------------------
  |  Branch (4540:11): [True: 10.1k, False: 0]
  ------------------
 4541|      0|		case SCTP_DISABLE_FRAGMENTS:
  ------------------
  |  |   95|      0|#define SCTP_DISABLE_FRAGMENTS		0x00000009
  ------------------
  |  Branch (4541:3): [True: 0, False: 10.1k]
  ------------------
 4542|      0|			set_opt = SCTP_PCB_FLAGS_NO_FRAGMENT;
  ------------------
  |  |  588|      0|#define SCTP_PCB_FLAGS_NO_FRAGMENT       0x0000000000100000
  ------------------
 4543|      0|			break;
 4544|      0|		case SCTP_AUTO_ASCONF:
  ------------------
  |  |  113|      0|#define SCTP_AUTO_ASCONF		0x00000018 /* rw */
  ------------------
  |  Branch (4544:3): [True: 0, False: 10.1k]
  ------------------
 4545|       |			/*
 4546|       |			 * NOTE: we don't really support this flag
 4547|       |			 */
 4548|      0|			if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (4548:8): [True: 0, False: 0]
  ------------------
 4549|       |				/* only valid for bound all sockets */
 4550|      0|				if ((SCTP_BASE_SYSCTL(sctp_auto_asconf) == 0) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (4550:9): [True: 0, False: 0]
  ------------------
 4551|      0|				    (*mopt != 0)) {
  ------------------
  |  Branch (4551:9): [True: 0, False: 0]
  ------------------
 4552|       |					/* forbidden by admin */
 4553|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EPERM);
 4554|      0|					return (EPERM);
 4555|      0|				}
 4556|      0|				set_opt = SCTP_PCB_FLAGS_AUTO_ASCONF;
  ------------------
  |  |  574|      0|#define SCTP_PCB_FLAGS_AUTO_ASCONF       0x0000000000000040
  ------------------
 4557|      0|			} else {
 4558|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4559|      0|				return (EINVAL);
 4560|      0|			}
 4561|      0|			break;
 4562|      0|		case SCTP_EXPLICIT_EOR:
  ------------------
  |  |  119|      0|#define SCTP_EXPLICIT_EOR               0x0000001b
  ------------------
  |  Branch (4562:3): [True: 0, False: 10.1k]
  ------------------
 4563|      0|			set_opt = SCTP_PCB_FLAGS_EXPLICIT_EOR;
  ------------------
  |  |  589|      0|#define SCTP_PCB_FLAGS_EXPLICIT_EOR      0x0000000000400000
  ------------------
 4564|      0|			break;
 4565|      0|		case SCTP_USE_EXT_RCVINFO:
  ------------------
  |  |  112|      0|#define SCTP_USE_EXT_RCVINFO		0x00000017
  ------------------
  |  Branch (4565:3): [True: 0, False: 10.1k]
  ------------------
 4566|      0|			set_opt = SCTP_PCB_FLAGS_EXT_RCVINFO;
  ------------------
  |  |  569|      0|#define SCTP_PCB_FLAGS_EXT_RCVINFO       0x0000000000000002 /* deprecated */
  ------------------
 4567|      0|			break;
 4568|      0|		case SCTP_I_WANT_MAPPED_V4_ADDR:
  ------------------
  |  |  101|      0|#define SCTP_I_WANT_MAPPED_V4_ADDR	0x0000000d
  ------------------
  |  Branch (4568:3): [True: 0, False: 10.1k]
  ------------------
 4569|      0|			if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (4569:8): [True: 0, False: 0]
  ------------------
 4570|      0|				set_opt = SCTP_PCB_FLAGS_NEEDS_MAPPED_V4;
  ------------------
  |  |  590|      0|#define SCTP_PCB_FLAGS_NEEDS_MAPPED_V4   0x0000000000800000
  ------------------
 4571|      0|			} else {
 4572|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4573|      0|				return (EINVAL);
 4574|      0|			}
 4575|      0|			break;
 4576|  10.1k|		case SCTP_NODELAY:
  ------------------
  |  |   88|  10.1k|#define SCTP_NODELAY			0x00000004
  ------------------
  |  Branch (4576:3): [True: 10.1k, False: 0]
  ------------------
 4577|  10.1k|			set_opt = SCTP_PCB_FLAGS_NODELAY;
  ------------------
  |  |  576|  10.1k|#define SCTP_PCB_FLAGS_NODELAY           0x0000000000000100
  ------------------
 4578|  10.1k|			break;
 4579|      0|		case SCTP_AUTOCLOSE:
  ------------------
  |  |   89|      0|#define SCTP_AUTOCLOSE			0x00000005
  ------------------
  |  Branch (4579:3): [True: 0, False: 10.1k]
  ------------------
 4580|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4580:8): [True: 0, False: 0]
  ------------------
 4581|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4581:8): [True: 0, False: 0]
  ------------------
 4582|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4583|      0|				return (EINVAL);
 4584|      0|			}
 4585|      0|			set_opt = SCTP_PCB_FLAGS_AUTOCLOSE;
  ------------------
  |  |  577|      0|#define SCTP_PCB_FLAGS_AUTOCLOSE         0x0000000000000200
  ------------------
 4586|       |			/*
 4587|       |			 * The value is in ticks. Note this does not effect
 4588|       |			 * old associations, only new ones.
 4589|       |			 */
 4590|      0|			inp->sctp_ep.auto_close_time = sctp_secs_to_ticks(*mopt);
 4591|      0|			break;
 4592|  10.1k|		}
 4593|  10.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4594|  10.1k|		if (*mopt != 0) {
  ------------------
  |  Branch (4594:7): [True: 10.1k, False: 0]
  ------------------
 4595|  10.1k|			sctp_feature_on(inp, set_opt);
  ------------------
  |  |   50|  10.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4596|  10.1k|		} else {
 4597|      0|			sctp_feature_off(inp, set_opt);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 4598|      0|		}
 4599|  10.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4600|  10.1k|		break;
 4601|  10.1k|	case SCTP_REUSE_PORT:
  ------------------
  |  |  120|  10.1k|#define SCTP_REUSE_PORT                 0x0000001c /* rw */
  ------------------
  |  Branch (4601:2): [True: 10.1k, False: 196k]
  ------------------
 4602|  10.1k|	{
 4603|  10.1k|		SCTP_CHECK_AND_CAST(mopt, optval, uint32_t, optsize);
  ------------------
  |  | 2158|  10.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  10.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  10.1k|	} else { \
  |  | 2164|  10.1k|		destp = (type *)srcp; \
  |  | 2165|  10.1k|	} \
  |  | 2166|  10.1k|}
  ------------------
 4604|  10.1k|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (4604:7): [True: 0, False: 10.1k]
  ------------------
 4605|       |			/* Can't set it after we are bound */
 4606|      0|			error = EINVAL;
 4607|      0|			break;
 4608|      0|		}
 4609|  10.1k|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE)) {
  ------------------
  |  |  528|  10.1k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4609:7): [True: 0, False: 10.1k]
  ------------------
 4610|       |			/* Can't do this for a 1-m socket */
 4611|      0|			error = EINVAL;
 4612|      0|			break;
 4613|      0|		}
 4614|  10.1k|		if (optval)
  ------------------
  |  Branch (4614:7): [True: 10.1k, False: 0]
  ------------------
 4615|  10.1k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_PORTREUSE);
  ------------------
  |  |   50|  10.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4616|      0|		else
 4617|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_PORTREUSE);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 4618|  10.1k|		break;
 4619|  10.1k|	}
 4620|      0|	case SCTP_PARTIAL_DELIVERY_POINT:
  ------------------
  |  |  105|      0|#define SCTP_PARTIAL_DELIVERY_POINT     0x00000011
  ------------------
  |  Branch (4620:2): [True: 0, False: 206k]
  ------------------
 4621|      0|	{
 4622|      0|		uint32_t *value;
 4623|       |
 4624|      0|		SCTP_CHECK_AND_CAST(value, optval, uint32_t, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4625|      0|		if (*value > SCTP_SB_LIMIT_RCV(so)) {
  ------------------
  |  |  983|      0|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
  |  Branch (4625:7): [True: 0, False: 0]
  ------------------
 4626|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4627|      0|			error = EINVAL;
 4628|      0|			break;
 4629|      0|		}
 4630|      0|		inp->partial_delivery_point = *value;
 4631|      0|		break;
 4632|      0|	}
 4633|  5.53k|	case SCTP_FRAGMENT_INTERLEAVE:
  ------------------
  |  |  104|  5.53k|#define SCTP_FRAGMENT_INTERLEAVE        0x00000010
  ------------------
  |  Branch (4633:2): [True: 5.53k, False: 200k]
  ------------------
 4634|       |		/* not yet until we re-write sctp_recvmsg() */
 4635|  5.53k|	{
 4636|  5.53k|		uint32_t *level;
 4637|       |
 4638|  5.53k|		SCTP_CHECK_AND_CAST(level, optval, uint32_t, optsize);
  ------------------
  |  | 2158|  5.53k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  5.53k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 5.53k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  5.53k|	} else { \
  |  | 2164|  5.53k|		destp = (type *)srcp; \
  |  | 2165|  5.53k|	} \
  |  | 2166|  5.53k|}
  ------------------
 4639|  5.53k|		if (*level == SCTP_FRAG_LEVEL_2) {
  ------------------
  |  |  346|  5.53k|#define SCTP_FRAG_LEVEL_2    0x00000002
  ------------------
  |  Branch (4639:7): [True: 5.53k, False: 0]
  ------------------
 4640|  5.53k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   50|  5.53k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4641|  5.53k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   50|  5.53k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4642|  5.53k|		} else if (*level == SCTP_FRAG_LEVEL_1) {
  ------------------
  |  |  345|      0|#define SCTP_FRAG_LEVEL_1    0x00000001
  ------------------
  |  Branch (4642:14): [True: 0, False: 0]
  ------------------
 4643|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4644|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 4645|      0|		} else if (*level == SCTP_FRAG_LEVEL_0) {
  ------------------
  |  |  344|      0|#define SCTP_FRAG_LEVEL_0    0x00000000
  ------------------
  |  Branch (4645:14): [True: 0, False: 0]
  ------------------
 4646|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 4647|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 4648|       |
 4649|      0|		} else {
 4650|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4651|      0|			error = EINVAL;
 4652|      0|		}
 4653|  5.53k|		break;
 4654|  5.53k|	}
 4655|  5.53k|	case SCTP_INTERLEAVING_SUPPORTED:
  ------------------
  |  |  204|  5.53k|#define SCTP_INTERLEAVING_SUPPORTED	0x00001206
  ------------------
  |  Branch (4655:2): [True: 5.53k, False: 200k]
  ------------------
 4656|  5.53k|	{
 4657|  5.53k|		struct sctp_assoc_value *av;
 4658|       |
 4659|  5.53k|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|  5.53k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  5.53k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 5.53k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  5.53k|	} else { \
  |  | 2164|  5.53k|		destp = (type *)srcp; \
  |  | 2165|  5.53k|	} \
  |  | 2166|  5.53k|}
  ------------------
 4660|  5.53k|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|  5.53k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|  5.53k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|  5.53k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 5.53k, False: 0]
  |  |  ------------------
  |  | 2139|  5.53k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|  5.53k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|  5.53k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.53k|	do {                         \
  |  |  |  |  |  |  113|  5.53k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.53k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|  5.53k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|  5.53k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 5.53k]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|  5.53k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|  5.53k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.53k|	do {                         \
  |  |  |  |  |  |  113|  5.53k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.53k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|  5.53k|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|  5.53k|}
  ------------------
 4661|       |
 4662|  5.53k|		if (stcb) {
  ------------------
  |  Branch (4662:7): [True: 0, False: 5.53k]
  ------------------
 4663|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4664|      0|			error = EINVAL;
 4665|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4666|  5.53k|		} else {
 4667|  5.53k|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  5.53k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4667:8): [True: 5.53k, False: 0]
  ------------------
 4668|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4668:8): [True: 0, False: 0]
  ------------------
 4669|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4669:9): [True: 0, False: 0]
  ------------------
 4670|  5.53k|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (4670:9): [True: 0, False: 0]
  ------------------
 4671|  5.53k|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  5.53k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.53k|	do {                         \
  |  |  |  |  113|  5.53k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.53k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.53k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.53k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4672|  5.53k|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (4672:9): [True: 0, False: 5.53k]
  ------------------
 4673|      0|					inp->idata_supported = 0;
 4674|  5.53k|				} else {
 4675|  5.53k|					if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE)) &&
  ------------------
  |  |   52|  5.53k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (4675:10): [True: 5.53k, False: 0]
  ------------------
 4676|  5.53k|					    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS))) {
  ------------------
  |  |   52|  5.53k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (4676:10): [True: 5.53k, False: 0]
  ------------------
 4677|  5.53k|						inp->idata_supported = 1;
 4678|  5.53k|					} else {
 4679|       |						/* Must have Frag interleave and stream interleave on */
 4680|      0|						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4681|      0|						error = EINVAL;
 4682|      0|					}
 4683|  5.53k|				}
 4684|  5.53k|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  5.53k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.53k|	do {                         \
  |  |  |  |  113|  5.53k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.53k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.53k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.53k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4685|  5.53k|			} else {
 4686|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4687|      0|				error = EINVAL;
 4688|      0|			}
 4689|  5.53k|		}
 4690|  5.53k|		break;
 4691|  5.53k|	}
 4692|  5.53k|	case SCTP_CMT_ON_OFF:
  ------------------
  |  |  192|      0|#define SCTP_CMT_ON_OFF                 0x00001200
  ------------------
  |  Branch (4692:2): [True: 0, False: 206k]
  ------------------
 4693|      0|		if (SCTP_BASE_SYSCTL(sctp_cmt_on_off)) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4694|      0|			struct sctp_assoc_value *av;
 4695|       |
 4696|      0|			SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4697|      0|			if (av->assoc_value > SCTP_CMT_MAX) {
  ------------------
  |  |  316|      0|#define SCTP_CMT_MAX            SCTP_CMT_MPTCP
  |  |  ------------------
  |  |  |  |  315|      0|#define SCTP_CMT_MPTCP          4
  |  |  ------------------
  ------------------
  |  Branch (4697:8): [True: 0, False: 0]
  ------------------
 4698|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4699|      0|				error = EINVAL;
 4700|      0|				break;
 4701|      0|			}
 4702|      0|			SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 4703|      0|			if (stcb) {
  ------------------
  |  Branch (4703:8): [True: 0, False: 0]
  ------------------
 4704|      0|				stcb->asoc.sctp_cmt_on_off = av->assoc_value;
 4705|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4706|      0|			} else {
 4707|      0|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4707:9): [True: 0, False: 0]
  ------------------
 4708|      0|				    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4708:9): [True: 0, False: 0]
  ------------------
 4709|      0|				    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4709:10): [True: 0, False: 0]
  ------------------
 4710|      0|				     ((av->assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (4710:11): [True: 0, False: 0]
  ------------------
 4711|      0|				      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4711:11): [True: 0, False: 0]
  ------------------
 4712|      0|					SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4713|      0|					inp->sctp_cmt_on_off = av->assoc_value;
 4714|      0|					SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4715|      0|				}
 4716|      0|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4716:9): [True: 0, False: 0]
  ------------------
 4717|      0|				    ((av->assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (4717:10): [True: 0, False: 0]
  ------------------
 4718|      0|				     (av->assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4718:10): [True: 0, False: 0]
  ------------------
 4719|      0|					SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4720|      0|					LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (4720:6): [True: 0, False: 0]
  ------------------
 4721|      0|						SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4722|      0|						stcb->asoc.sctp_cmt_on_off = av->assoc_value;
 4723|      0|						SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4724|      0|					}
 4725|      0|					SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4726|      0|				}
 4727|      0|			}
 4728|      0|		} else {
 4729|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOPROTOOPT);
 4730|      0|			error = ENOPROTOOPT;
 4731|      0|		}
 4732|      0|		break;
 4733|      0|	case SCTP_PLUGGABLE_CC:
  ------------------
  |  |  195|      0|#define SCTP_PLUGGABLE_CC               0x00001202
  ------------------
  |  Branch (4733:2): [True: 0, False: 206k]
  ------------------
 4734|      0|	{
 4735|      0|		struct sctp_assoc_value *av;
 4736|      0|		struct sctp_nets *net;
 4737|       |
 4738|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4739|      0|		if ((av->assoc_value != SCTP_CC_RFC2581) &&
  ------------------
  |  |  299|      0|#define SCTP_CC_RFC2581		0x00000000
  ------------------
  |  Branch (4739:7): [True: 0, False: 0]
  ------------------
 4740|      0|		    (av->assoc_value != SCTP_CC_HSTCP) &&
  ------------------
  |  |  301|      0|#define SCTP_CC_HSTCP		0x00000001
  ------------------
  |  Branch (4740:7): [True: 0, False: 0]
  ------------------
 4741|      0|		    (av->assoc_value != SCTP_CC_HTCP) &&
  ------------------
  |  |  303|      0|#define SCTP_CC_HTCP		0x00000002
  ------------------
  |  Branch (4741:7): [True: 0, False: 0]
  ------------------
 4742|      0|		    (av->assoc_value != SCTP_CC_RTCC)) {
  ------------------
  |  |  305|      0|#define SCTP_CC_RTCC            0x00000003
  ------------------
  |  Branch (4742:7): [True: 0, False: 0]
  ------------------
 4743|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4744|      0|			error = EINVAL;
 4745|      0|			break;
 4746|      0|		}
 4747|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 4748|      0|		if (stcb) {
  ------------------
  |  Branch (4748:7): [True: 0, False: 0]
  ------------------
 4749|      0|			stcb->asoc.cc_functions = sctp_cc_functions[av->assoc_value];
 4750|      0|			stcb->asoc.congestion_control_module = av->assoc_value;
 4751|      0|			if (stcb->asoc.cc_functions.sctp_set_initial_cc_param != NULL) {
  ------------------
  |  Branch (4751:8): [True: 0, False: 0]
  ------------------
 4752|      0|				TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (4752:5): [True: 0, False: 0]
  ------------------
 4753|      0|					stcb->asoc.cc_functions.sctp_set_initial_cc_param(stcb, net);
 4754|      0|				}
 4755|      0|			}
 4756|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4757|      0|		} else {
 4758|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4758:8): [True: 0, False: 0]
  ------------------
 4759|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4759:8): [True: 0, False: 0]
  ------------------
 4760|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4760:9): [True: 0, False: 0]
  ------------------
 4761|      0|			     ((av->assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (4761:10): [True: 0, False: 0]
  ------------------
 4762|      0|			      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4762:10): [True: 0, False: 0]
  ------------------
 4763|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4764|      0|				inp->sctp_ep.sctp_default_cc_module = av->assoc_value;
 4765|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4766|      0|			}
 4767|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4767:8): [True: 0, False: 0]
  ------------------
 4768|      0|			    ((av->assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (4768:9): [True: 0, False: 0]
  ------------------
 4769|      0|			     (av->assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4769:9): [True: 0, False: 0]
  ------------------
 4770|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4771|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (4771:5): [True: 0, False: 0]
  ------------------
 4772|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4773|      0|					stcb->asoc.cc_functions = sctp_cc_functions[av->assoc_value];
 4774|      0|					stcb->asoc.congestion_control_module = av->assoc_value;
 4775|      0|					if (stcb->asoc.cc_functions.sctp_set_initial_cc_param != NULL) {
  ------------------
  |  Branch (4775:10): [True: 0, False: 0]
  ------------------
 4776|      0|						TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (4776:7): [True: 0, False: 0]
  ------------------
 4777|      0|							stcb->asoc.cc_functions.sctp_set_initial_cc_param(stcb, net);
 4778|      0|						}
 4779|      0|					}
 4780|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4781|      0|				}
 4782|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4783|      0|			}
 4784|      0|		}
 4785|      0|		break;
 4786|      0|	}
 4787|      0|	case SCTP_CC_OPTION:
  ------------------
  |  |  202|      0|#define SCTP_CC_OPTION			0x00001205 /* Options for CC modules */
  ------------------
  |  Branch (4787:2): [True: 0, False: 206k]
  ------------------
 4788|      0|	{
 4789|      0|		struct sctp_cc_option *cc_opt;
 4790|       |
 4791|      0|		SCTP_CHECK_AND_CAST(cc_opt, optval, struct sctp_cc_option, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4792|      0|		SCTP_FIND_STCB(inp, stcb, cc_opt->aid_value.assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 4793|      0|		if (stcb == NULL) {
  ------------------
  |  Branch (4793:7): [True: 0, False: 0]
  ------------------
 4794|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4794:8): [True: 0, False: 0]
  ------------------
 4795|      0|			    (cc_opt->aid_value.assoc_id == SCTP_CURRENT_ASSOC)) {
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (4795:8): [True: 0, False: 0]
  ------------------
 4796|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4797|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (4797:5): [True: 0, False: 0]
  ------------------
 4798|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4799|      0|					if (stcb->asoc.cc_functions.sctp_cwnd_socket_option) {
  ------------------
  |  Branch (4799:10): [True: 0, False: 0]
  ------------------
 4800|      0|						(*stcb->asoc.cc_functions.sctp_cwnd_socket_option)(stcb, 1, cc_opt);
 4801|      0|					}
 4802|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4803|      0|				}
 4804|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4805|      0|			} else {
 4806|      0|				error = EINVAL;
 4807|      0|			}
 4808|      0|		} else {
 4809|      0|			if (stcb->asoc.cc_functions.sctp_cwnd_socket_option == NULL) {
  ------------------
  |  Branch (4809:8): [True: 0, False: 0]
  ------------------
 4810|      0|				error = ENOTSUP;
 4811|      0|			} else {
 4812|      0|				error = (*stcb->asoc.cc_functions.sctp_cwnd_socket_option)(stcb, 1,
 4813|      0|											   cc_opt);
 4814|      0|			}
 4815|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4816|      0|		}
 4817|      0|		break;
 4818|      0|	}
 4819|      0|	case SCTP_STREAM_SCHEDULER:
  ------------------
  |  |  197|      0|#define SCTP_STREAM_SCHEDULER		0x00001203
  ------------------
  |  Branch (4819:2): [True: 0, False: 206k]
  ------------------
 4820|      0|	{
 4821|      0|		struct sctp_assoc_value *av;
 4822|       |
 4823|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4824|      0|		if ((av->assoc_value != SCTP_SS_DEFAULT) &&
  ------------------
  |  |  322|      0|#define SCTP_SS_DEFAULT			0x00000000
  ------------------
  |  Branch (4824:7): [True: 0, False: 0]
  ------------------
 4825|      0|		    (av->assoc_value != SCTP_SS_RR) &&
  ------------------
  |  |  324|      0|#define SCTP_SS_RR			0x00000001
  ------------------
  |  Branch (4825:7): [True: 0, False: 0]
  ------------------
 4826|      0|		    (av->assoc_value != SCTP_SS_RR_PKT) &&
  ------------------
  |  |  326|      0|#define SCTP_SS_RR_PKT			0x00000002
  ------------------
  |  Branch (4826:7): [True: 0, False: 0]
  ------------------
 4827|      0|		    (av->assoc_value != SCTP_SS_PRIO) &&
  ------------------
  |  |  328|      0|#define SCTP_SS_PRIO			0x00000003
  ------------------
  |  Branch (4827:7): [True: 0, False: 0]
  ------------------
 4828|      0|		    (av->assoc_value != SCTP_SS_FB) &&
  ------------------
  |  |  330|      0|#define SCTP_SS_FB			0x00000004
  ------------------
  |  Branch (4828:7): [True: 0, False: 0]
  ------------------
 4829|      0|		    (av->assoc_value != SCTP_SS_FCFS)) {
  ------------------
  |  |  332|      0|#define SCTP_SS_FCFS			0x00000005
  ------------------
  |  Branch (4829:7): [True: 0, False: 0]
  ------------------
 4830|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4831|      0|			error = EINVAL;
 4832|      0|			break;
 4833|      0|		}
 4834|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 4835|      0|		if (stcb) {
  ------------------
  |  Branch (4835:7): [True: 0, False: 0]
  ------------------
 4836|      0|			stcb->asoc.ss_functions.sctp_ss_clear(stcb, &stcb->asoc, true);
 4837|      0|			stcb->asoc.ss_functions = sctp_ss_functions[av->assoc_value];
 4838|      0|			stcb->asoc.stream_scheduling_module = av->assoc_value;
 4839|      0|			stcb->asoc.ss_functions.sctp_ss_init(stcb, &stcb->asoc);
 4840|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4841|      0|		} else {
 4842|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4842:8): [True: 0, False: 0]
  ------------------
 4843|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4843:8): [True: 0, False: 0]
  ------------------
 4844|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4844:9): [True: 0, False: 0]
  ------------------
 4845|      0|			     ((av->assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (4845:10): [True: 0, False: 0]
  ------------------
 4846|      0|			      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4846:10): [True: 0, False: 0]
  ------------------
 4847|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4848|      0|				inp->sctp_ep.sctp_default_ss_module = av->assoc_value;
 4849|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4850|      0|			}
 4851|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4851:8): [True: 0, False: 0]
  ------------------
 4852|      0|			    ((av->assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (4852:9): [True: 0, False: 0]
  ------------------
 4853|      0|			     (av->assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4853:9): [True: 0, False: 0]
  ------------------
 4854|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4855|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (4855:5): [True: 0, False: 0]
  ------------------
 4856|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4857|      0|					stcb->asoc.ss_functions.sctp_ss_clear(stcb, &stcb->asoc, true);
 4858|      0|					stcb->asoc.ss_functions = sctp_ss_functions[av->assoc_value];
 4859|      0|					stcb->asoc.stream_scheduling_module = av->assoc_value;
 4860|      0|					stcb->asoc.ss_functions.sctp_ss_init(stcb, &stcb->asoc);
 4861|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4862|      0|				}
 4863|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4864|      0|			}
 4865|      0|		}
 4866|      0|		break;
 4867|      0|	}
 4868|      0|	case SCTP_STREAM_SCHEDULER_VALUE:
  ------------------
  |  |  198|      0|#define SCTP_STREAM_SCHEDULER_VALUE	0x00001204
  ------------------
  |  Branch (4868:2): [True: 0, False: 206k]
  ------------------
 4869|      0|	{
 4870|      0|		struct sctp_stream_value *av;
 4871|       |
 4872|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_stream_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4873|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 4874|      0|		if (stcb) {
  ------------------
  |  Branch (4874:7): [True: 0, False: 0]
  ------------------
 4875|      0|			if ((av->stream_id >= stcb->asoc.streamoutcnt) ||
  ------------------
  |  Branch (4875:8): [True: 0, False: 0]
  ------------------
 4876|      0|			    (stcb->asoc.ss_functions.sctp_ss_set_value(stcb, &stcb->asoc, &stcb->asoc.strmout[av->stream_id],
  ------------------
  |  Branch (4876:8): [True: 0, False: 0]
  ------------------
 4877|      0|			                                               av->stream_value) < 0)) {
 4878|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4879|      0|				error = EINVAL;
 4880|      0|			}
 4881|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4882|      0|		} else {
 4883|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4883:8): [True: 0, False: 0]
  ------------------
 4884|      0|			    (av->assoc_id == SCTP_CURRENT_ASSOC)) {
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (4884:8): [True: 0, False: 0]
  ------------------
 4885|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4886|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (4886:5): [True: 0, False: 0]
  ------------------
 4887|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4888|      0|					if (av->stream_id < stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (4888:10): [True: 0, False: 0]
  ------------------
 4889|      0|						stcb->asoc.ss_functions.sctp_ss_set_value(stcb,
 4890|      0|						                                          &stcb->asoc,
 4891|      0|						                                          &stcb->asoc.strmout[av->stream_id],
 4892|      0|						                                          av->stream_value);
 4893|      0|					}
 4894|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4895|      0|				}
 4896|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4897|      0|			} else {
 4898|       |				/* Can't set stream value without association */
 4899|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4900|      0|				error = EINVAL;
 4901|      0|			}
 4902|      0|		}
 4903|      0|		break;
 4904|      0|	}
 4905|      0|	case SCTP_CLR_STAT_LOG:
  ------------------
  |  |  190|      0|#define SCTP_CLR_STAT_LOG               0x00001007
  ------------------
  |  Branch (4905:2): [True: 0, False: 206k]
  ------------------
 4906|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EOPNOTSUPP);
 4907|      0|		error = EOPNOTSUPP;
 4908|      0|		break;
 4909|      0|	case SCTP_CONTEXT:
  ------------------
  |  |  117|      0|#define SCTP_CONTEXT                    0x0000001a /* rw */
  ------------------
  |  Branch (4909:2): [True: 0, False: 206k]
  ------------------
 4910|      0|	{
 4911|      0|		struct sctp_assoc_value *av;
 4912|       |
 4913|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4914|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 4915|       |
 4916|      0|		if (stcb) {
  ------------------
  |  Branch (4916:7): [True: 0, False: 0]
  ------------------
 4917|      0|			stcb->asoc.context = av->assoc_value;
 4918|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4919|      0|		} else {
 4920|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4920:8): [True: 0, False: 0]
  ------------------
 4921|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4921:8): [True: 0, False: 0]
  ------------------
 4922|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4922:9): [True: 0, False: 0]
  ------------------
 4923|      0|			     ((av->assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (4923:10): [True: 0, False: 0]
  ------------------
 4924|      0|			      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4924:10): [True: 0, False: 0]
  ------------------
 4925|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4926|      0|				inp->sctp_context = av->assoc_value;
 4927|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4928|      0|			}
 4929|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4929:8): [True: 0, False: 0]
  ------------------
 4930|      0|			    ((av->assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (4930:9): [True: 0, False: 0]
  ------------------
 4931|      0|			     (av->assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4931:9): [True: 0, False: 0]
  ------------------
 4932|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4933|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (4933:5): [True: 0, False: 0]
  ------------------
 4934|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4935|      0|					stcb->asoc.context = av->assoc_value;
 4936|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4937|      0|				}
 4938|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4939|      0|			}
 4940|      0|		}
 4941|      0|		break;
 4942|      0|	}
 4943|      0|	case SCTP_VRF_ID:
  ------------------
  |  |  245|      0|#define SCTP_VRF_ID			0x00003001
  ------------------
  |  Branch (4943:2): [True: 0, False: 206k]
  ------------------
 4944|      0|	{
 4945|      0|		uint32_t *default_vrfid;
 4946|       |#ifdef SCTP_MVRF
 4947|       |		int i;
 4948|       |#endif
 4949|      0|		SCTP_CHECK_AND_CAST(default_vrfid, optval, uint32_t, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 4950|      0|		if (*default_vrfid > SCTP_MAX_VRF_ID) {
  ------------------
  |  |  647|      0|#define SCTP_MAX_VRF_ID		0
  ------------------
  |  Branch (4950:7): [True: 0, False: 0]
  ------------------
 4951|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4952|      0|			error = EINVAL;
 4953|      0|			break;
 4954|      0|		}
 4955|       |#ifdef SCTP_MVRF
 4956|       |		for (i = 0; i < inp->num_vrfs; i++) {
 4957|       |			/* The VRF must be in the VRF list */
 4958|       |			if (*default_vrfid == inp->m_vrf_ids[i]) {
 4959|       |				SCTP_INP_WLOCK(inp);
 4960|       |				inp->def_vrf_id = *default_vrfid;
 4961|       |				SCTP_INP_WUNLOCK(inp);
 4962|       |				goto sctp_done;
 4963|       |			}
 4964|       |		}
 4965|       |		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4966|       |		error = EINVAL;
 4967|       |#else
 4968|      0|		inp->def_vrf_id = *default_vrfid;
 4969|      0|#endif
 4970|       |#ifdef SCTP_MVRF
 4971|       |	sctp_done:
 4972|       |#endif
 4973|      0|		break;
 4974|      0|	}
 4975|      0|	case SCTP_DEL_VRF_ID:
  ------------------
  |  |  249|      0|#define SCTP_DEL_VRF_ID                 0x00003005
  ------------------
  |  Branch (4975:2): [True: 0, False: 206k]
  ------------------
 4976|      0|	{
 4977|       |#ifdef SCTP_MVRF
 4978|       |		uint32_t *del_vrfid;
 4979|       |		int i, fnd = 0;
 4980|       |
 4981|       |		SCTP_CHECK_AND_CAST(del_vrfid, optval, uint32_t, optsize);
 4982|       |		if (*del_vrfid > SCTP_MAX_VRF_ID) {
 4983|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4984|       |			error = EINVAL;
 4985|       |			break;
 4986|       |		}
 4987|       |		if (inp->num_vrfs == 1) {
 4988|       |			/* Can't delete last one */
 4989|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4990|       |			error = EINVAL;
 4991|       |			break;
 4992|       |		}
 4993|       |		if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
 4994|       |			/* Can't add more once you are bound */
 4995|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4996|       |			error = EINVAL;
 4997|       |			break;
 4998|       |		}
 4999|       |		SCTP_INP_WLOCK(inp);
 5000|       |		for (i = 0; i < inp->num_vrfs; i++) {
 5001|       |			if (*del_vrfid == inp->m_vrf_ids[i]) {
 5002|       |				fnd = 1;
 5003|       |				break;
 5004|       |			}
 5005|       |		}
 5006|       |		if (!fnd) {
 5007|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5008|       |			error = EINVAL;
 5009|       |			break;
 5010|       |		}
 5011|       |		if (i != (inp->num_vrfs - 1)) {
 5012|       |			/* Take bottom one and move to this slot */
 5013|       |			inp->m_vrf_ids[i] = inp->m_vrf_ids[(inp->num_vrfs-1)];
 5014|       |		}
 5015|       |		if (*del_vrfid == inp->def_vrf_id) {
 5016|       |			/* Take the first one as the new default */
 5017|       |			inp->def_vrf_id = inp->m_vrf_ids[0];
 5018|       |		}
 5019|       |		/* Drop the number by one killing last one */
 5020|       |		inp->num_vrfs--;
 5021|       |#else
 5022|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EOPNOTSUPP);
 5023|      0|		error = EOPNOTSUPP;
 5024|      0|#endif
 5025|      0|		break;
 5026|      0|	}
 5027|      0|	case SCTP_ADD_VRF_ID:
  ------------------
  |  |  246|      0|#define SCTP_ADD_VRF_ID			0x00003002
  ------------------
  |  Branch (5027:2): [True: 0, False: 206k]
  ------------------
 5028|      0|	{
 5029|       |#ifdef SCTP_MVRF
 5030|       |		uint32_t *add_vrfid;
 5031|       |		int i;
 5032|       |
 5033|       |		SCTP_CHECK_AND_CAST(add_vrfid, optval, uint32_t, optsize);
 5034|       |		if (*add_vrfid > SCTP_MAX_VRF_ID) {
 5035|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5036|       |			error = EINVAL;
 5037|       |			break;
 5038|       |		}
 5039|       |		if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
 5040|       |			/* Can't add more once you are bound */
 5041|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5042|       |			error = EINVAL;
 5043|       |			break;
 5044|       |		}
 5045|       |		SCTP_INP_WLOCK(inp);
 5046|       |		/* Verify its not already here */
 5047|       |		for (i = 0; i < inp->num_vrfs; i++) {
 5048|       |			if (*add_vrfid == inp->m_vrf_ids[i]) {
 5049|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EALREADY);
 5050|       |				error = EALREADY;
 5051|       |				SCTP_INP_WUNLOCK(inp);
 5052|       |				break;
 5053|       |			}
 5054|       |		}
 5055|       |		if ((inp->num_vrfs + 1) > inp->vrf_size) {
 5056|       |			/* need to grow array */
 5057|       |			uint32_t *tarray;
 5058|       |			SCTP_MALLOC(tarray, uint32_t *,
 5059|       |				    (sizeof(uint32_t) * (inp->vrf_size + SCTP_DEFAULT_VRF_SIZE)),
 5060|       |				    SCTP_M_MVRF);
 5061|       |			if (tarray == NULL) {
 5062|       |				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5063|       |				error = ENOMEM;
 5064|       |				SCTP_INP_WUNLOCK(inp);
 5065|       |				break;
 5066|       |			}
 5067|       |			memcpy(tarray, inp->m_vrf_ids, (sizeof(uint32_t) * inp->vrf_size));
 5068|       |			SCTP_FREE(inp->m_vrf_ids, SCTP_M_MVRF);
 5069|       |			inp->m_vrf_ids = tarray;
 5070|       |			inp->vrf_size += SCTP_DEFAULT_VRF_SIZE;
 5071|       |		}
 5072|       |		inp->m_vrf_ids[inp->num_vrfs] = *add_vrfid;
 5073|       |		inp->num_vrfs++;
 5074|       |		SCTP_INP_WUNLOCK(inp);
 5075|       |#else
 5076|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EOPNOTSUPP);
 5077|      0|		error = EOPNOTSUPP;
 5078|      0|#endif
 5079|      0|		break;
 5080|      0|	}
 5081|      0|	case SCTP_DELAYED_SACK:
  ------------------
  |  |  103|      0|#define SCTP_DELAYED_SACK               0x0000000f
  ------------------
  |  Branch (5081:2): [True: 0, False: 206k]
  ------------------
 5082|      0|	{
 5083|      0|		struct sctp_sack_info *sack;
 5084|       |
 5085|      0|		SCTP_CHECK_AND_CAST(sack, optval, struct sctp_sack_info, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5086|      0|		SCTP_FIND_STCB(inp, stcb, sack->sack_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5087|      0|		if (sack->sack_delay) {
  ------------------
  |  Branch (5087:7): [True: 0, False: 0]
  ------------------
 5088|      0|			if (sack->sack_delay > SCTP_MAX_SACK_DELAY) {
  ------------------
  |  |  632|      0|#define SCTP_MAX_SACK_DELAY 500 /* per RFC4960 */
  ------------------
  |  Branch (5088:8): [True: 0, False: 0]
  ------------------
 5089|      0|				error = EINVAL;
 5090|      0|				if (stcb != NULL) {
  ------------------
  |  Branch (5090:9): [True: 0, False: 0]
  ------------------
 5091|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5092|      0|				}
 5093|      0|				break;
 5094|      0|			}
 5095|      0|		}
 5096|      0|		if (stcb) {
  ------------------
  |  Branch (5096:7): [True: 0, False: 0]
  ------------------
 5097|      0|			if (sack->sack_delay) {
  ------------------
  |  Branch (5097:8): [True: 0, False: 0]
  ------------------
 5098|      0|				stcb->asoc.delayed_ack = sack->sack_delay;
 5099|      0|			}
 5100|      0|			if (sack->sack_freq) {
  ------------------
  |  Branch (5100:8): [True: 0, False: 0]
  ------------------
 5101|      0|				stcb->asoc.sack_freq = sack->sack_freq;
 5102|      0|			}
 5103|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5104|      0|		} else {
 5105|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5105:8): [True: 0, False: 0]
  ------------------
 5106|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5106:8): [True: 0, False: 0]
  ------------------
 5107|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5107:9): [True: 0, False: 0]
  ------------------
 5108|      0|			     ((sack->sack_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5108:10): [True: 0, False: 0]
  ------------------
 5109|      0|			      (sack->sack_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5109:10): [True: 0, False: 0]
  ------------------
 5110|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5111|      0|				if (sack->sack_delay) {
  ------------------
  |  Branch (5111:9): [True: 0, False: 0]
  ------------------
 5112|      0|					inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_RECV] = sctp_msecs_to_ticks(sack->sack_delay);
  ------------------
  |  |  518|      0|#define SCTP_TIMER_RECV 	1
  ------------------
 5113|      0|				}
 5114|      0|				if (sack->sack_freq) {
  ------------------
  |  Branch (5114:9): [True: 0, False: 0]
  ------------------
 5115|      0|					inp->sctp_ep.sctp_sack_freq = sack->sack_freq;
 5116|      0|				}
 5117|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5118|      0|			}
 5119|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5119:8): [True: 0, False: 0]
  ------------------
 5120|      0|			    ((sack->sack_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5120:9): [True: 0, False: 0]
  ------------------
 5121|      0|			     (sack->sack_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5121:9): [True: 0, False: 0]
  ------------------
 5122|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5123|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5123:5): [True: 0, False: 0]
  ------------------
 5124|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5125|      0|					if (sack->sack_delay) {
  ------------------
  |  Branch (5125:10): [True: 0, False: 0]
  ------------------
 5126|      0|						stcb->asoc.delayed_ack = sack->sack_delay;
 5127|      0|					}
 5128|      0|					if (sack->sack_freq) {
  ------------------
  |  Branch (5128:10): [True: 0, False: 0]
  ------------------
 5129|      0|						stcb->asoc.sack_freq = sack->sack_freq;
 5130|      0|					}
 5131|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5132|      0|				}
 5133|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5134|      0|			}
 5135|      0|		}
 5136|      0|		break;
 5137|      0|	}
 5138|      0|	case SCTP_AUTH_CHUNK:
  ------------------
  |  |  107|      0|#define SCTP_AUTH_CHUNK 		0x00000012
  ------------------
  |  Branch (5138:2): [True: 0, False: 206k]
  ------------------
 5139|      0|	{
 5140|      0|		struct sctp_authchunk *sauth;
 5141|       |
 5142|      0|		SCTP_CHECK_AND_CAST(sauth, optval, struct sctp_authchunk, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5143|       |
 5144|      0|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5145|      0|		if (sctp_auth_add_chunk(sauth->sauth_chunk, inp->sctp_ep.local_auth_chunks)) {
  ------------------
  |  Branch (5145:7): [True: 0, False: 0]
  ------------------
 5146|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5147|      0|			error = EINVAL;
 5148|      0|		} else {
 5149|      0|			inp->auth_supported = 1;
 5150|      0|		}
 5151|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5152|      0|		break;
 5153|      0|	}
 5154|      0|	case SCTP_AUTH_KEY:
  ------------------
  |  |  108|      0|#define SCTP_AUTH_KEY 			0x00000013
  ------------------
  |  Branch (5154:2): [True: 0, False: 206k]
  ------------------
 5155|      0|	{
 5156|      0|		struct sctp_authkey *sca;
 5157|      0|		struct sctp_keyhead *shared_keys;
 5158|      0|		sctp_sharedkey_t *shared_key;
 5159|      0|		sctp_key_t *key = NULL;
 5160|      0|		size_t size;
 5161|       |
 5162|      0|		SCTP_CHECK_AND_CAST(sca, optval, struct sctp_authkey, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5163|      0|		if (sca->sca_keylength == 0) {
  ------------------
  |  Branch (5163:7): [True: 0, False: 0]
  ------------------
 5164|      0|			size = optsize - sizeof(struct sctp_authkey);
 5165|      0|		} else {
 5166|      0|			if (sca->sca_keylength + sizeof(struct sctp_authkey) <= optsize) {
  ------------------
  |  Branch (5166:8): [True: 0, False: 0]
  ------------------
 5167|      0|				size = sca->sca_keylength;
 5168|      0|			} else {
 5169|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5170|      0|				error = EINVAL;
 5171|      0|				break;
 5172|      0|			}
 5173|      0|		}
 5174|      0|		SCTP_FIND_STCB(inp, stcb, sca->sca_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5175|       |
 5176|      0|		if (stcb) {
  ------------------
  |  Branch (5176:7): [True: 0, False: 0]
  ------------------
 5177|      0|			shared_keys = &stcb->asoc.shared_keys;
 5178|       |			/* clear the cached keys for this key id */
 5179|      0|			sctp_clear_cachedkeys(stcb, sca->sca_keynumber);
 5180|       |			/*
 5181|       |			 * create the new shared key and
 5182|       |			 * insert/replace it
 5183|       |			 */
 5184|      0|			if (size > 0) {
  ------------------
  |  Branch (5184:8): [True: 0, False: 0]
  ------------------
 5185|      0|				key = sctp_set_key(sca->sca_key, (uint32_t) size);
 5186|      0|				if (key == NULL) {
  ------------------
  |  Branch (5186:9): [True: 0, False: 0]
  ------------------
 5187|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5188|      0|					error = ENOMEM;
 5189|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5190|      0|					break;
 5191|      0|				}
 5192|      0|			}
 5193|      0|			shared_key = sctp_alloc_sharedkey();
 5194|      0|			if (shared_key == NULL) {
  ------------------
  |  Branch (5194:8): [True: 0, False: 0]
  ------------------
 5195|      0|				sctp_free_key(key);
 5196|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5197|      0|				error = ENOMEM;
 5198|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5199|      0|				break;
 5200|      0|			}
 5201|      0|			shared_key->key = key;
 5202|      0|			shared_key->keyid = sca->sca_keynumber;
 5203|      0|			error = sctp_insert_sharedkey(shared_keys, shared_key);
 5204|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5205|      0|		} else {
 5206|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5206:8): [True: 0, False: 0]
  ------------------
 5207|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5207:8): [True: 0, False: 0]
  ------------------
 5208|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5208:9): [True: 0, False: 0]
  ------------------
 5209|      0|			     ((sca->sca_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5209:10): [True: 0, False: 0]
  ------------------
 5210|      0|			      (sca->sca_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5210:10): [True: 0, False: 0]
  ------------------
 5211|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5212|      0|				shared_keys = &inp->sctp_ep.shared_keys;
 5213|       |				/*
 5214|       |				 * clear the cached keys on all assocs for
 5215|       |				 * this key id
 5216|       |				 */
 5217|      0|				sctp_clear_cachedkeys_ep(inp, sca->sca_keynumber);
 5218|       |				/*
 5219|       |				 * create the new shared key and
 5220|       |				 * insert/replace it
 5221|       |				 */
 5222|      0|				if (size > 0) {
  ------------------
  |  Branch (5222:9): [True: 0, False: 0]
  ------------------
 5223|      0|					key = sctp_set_key(sca->sca_key, (uint32_t) size);
 5224|      0|					if (key == NULL) {
  ------------------
  |  Branch (5224:10): [True: 0, False: 0]
  ------------------
 5225|      0|						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5226|      0|						error = ENOMEM;
 5227|      0|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5228|      0|						break;
 5229|      0|					}
 5230|      0|				}
 5231|      0|				shared_key = sctp_alloc_sharedkey();
 5232|      0|				if (shared_key == NULL) {
  ------------------
  |  Branch (5232:9): [True: 0, False: 0]
  ------------------
 5233|      0|					sctp_free_key(key);
 5234|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5235|      0|					error = ENOMEM;
 5236|      0|					SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5237|      0|					break;
 5238|      0|				}
 5239|      0|				shared_key->key = key;
 5240|      0|				shared_key->keyid = sca->sca_keynumber;
 5241|      0|				error = sctp_insert_sharedkey(shared_keys, shared_key);
 5242|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5243|      0|			}
 5244|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5244:8): [True: 0, False: 0]
  ------------------
 5245|      0|			    ((sca->sca_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5245:9): [True: 0, False: 0]
  ------------------
 5246|      0|			     (sca->sca_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5246:9): [True: 0, False: 0]
  ------------------
 5247|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5248|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5248:5): [True: 0, False: 0]
  ------------------
 5249|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5250|      0|					shared_keys = &stcb->asoc.shared_keys;
 5251|       |					/* clear the cached keys for this key id */
 5252|      0|					sctp_clear_cachedkeys(stcb, sca->sca_keynumber);
 5253|       |					/*
 5254|       |					 * create the new shared key and
 5255|       |					 * insert/replace it
 5256|       |					 */
 5257|      0|					if (size > 0) {
  ------------------
  |  Branch (5257:10): [True: 0, False: 0]
  ------------------
 5258|      0|						key = sctp_set_key(sca->sca_key, (uint32_t) size);
 5259|      0|						if (key == NULL) {
  ------------------
  |  Branch (5259:11): [True: 0, False: 0]
  ------------------
 5260|      0|							SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5261|      0|							continue;
 5262|      0|						}
 5263|      0|					}
 5264|      0|					shared_key = sctp_alloc_sharedkey();
 5265|      0|					if (shared_key == NULL) {
  ------------------
  |  Branch (5265:10): [True: 0, False: 0]
  ------------------
 5266|      0|						sctp_free_key(key);
 5267|      0|						SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5268|      0|						continue;
 5269|      0|					}
 5270|      0|					shared_key->key = key;
 5271|      0|					shared_key->keyid = sca->sca_keynumber;
 5272|      0|					error = sctp_insert_sharedkey(shared_keys, shared_key);
 5273|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5274|      0|				}
 5275|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5276|      0|			}
 5277|      0|		}
 5278|      0|		break;
 5279|      0|	}
 5280|      0|	case SCTP_HMAC_IDENT:
  ------------------
  |  |  109|      0|#define SCTP_HMAC_IDENT 		0x00000014
  ------------------
  |  Branch (5280:2): [True: 0, False: 206k]
  ------------------
 5281|      0|	{
 5282|      0|		struct sctp_hmacalgo *shmac;
 5283|      0|		sctp_hmaclist_t *hmaclist;
 5284|      0|		uint16_t hmacid;
 5285|      0|		uint32_t i;
 5286|       |
 5287|      0|		SCTP_CHECK_AND_CAST(shmac, optval, struct sctp_hmacalgo, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5288|      0|		if ((optsize < sizeof(struct sctp_hmacalgo) + shmac->shmac_number_of_idents * sizeof(uint16_t)) ||
  ------------------
  |  Branch (5288:7): [True: 0, False: 0]
  ------------------
 5289|      0|		    (shmac->shmac_number_of_idents > 0xffff)) {
  ------------------
  |  Branch (5289:7): [True: 0, False: 0]
  ------------------
 5290|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5291|      0|			error = EINVAL;
 5292|      0|			break;
 5293|      0|		}
 5294|       |
 5295|      0|		hmaclist = sctp_alloc_hmaclist((uint16_t)shmac->shmac_number_of_idents);
 5296|      0|		if (hmaclist == NULL) {
  ------------------
  |  Branch (5296:7): [True: 0, False: 0]
  ------------------
 5297|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5298|      0|			error = ENOMEM;
 5299|      0|			break;
 5300|      0|		}
 5301|      0|		for (i = 0; i < shmac->shmac_number_of_idents; i++) {
  ------------------
  |  Branch (5301:15): [True: 0, False: 0]
  ------------------
 5302|      0|			hmacid = shmac->shmac_idents[i];
 5303|      0|			if (sctp_auth_add_hmacid(hmaclist, hmacid)) {
  ------------------
  |  Branch (5303:8): [True: 0, False: 0]
  ------------------
 5304|      0|				/* invalid HMACs were found */;
 5305|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5306|      0|				error = EINVAL;
 5307|      0|				sctp_free_hmaclist(hmaclist);
 5308|      0|				goto sctp_set_hmac_done;
 5309|      0|			}
 5310|      0|		}
 5311|      0|		for (i = 0; i < hmaclist->num_algo; i++) {
  ------------------
  |  Branch (5311:15): [True: 0, False: 0]
  ------------------
 5312|      0|			if (hmaclist->hmac[i] == SCTP_AUTH_HMAC_ID_SHA1) {
  ------------------
  |  |  691|      0|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (5312:8): [True: 0, False: 0]
  ------------------
 5313|       |				/* already in list */
 5314|      0|				break;
 5315|      0|			}
 5316|      0|		}
 5317|      0|		if (i == hmaclist->num_algo) {
  ------------------
  |  Branch (5317:7): [True: 0, False: 0]
  ------------------
 5318|       |			/* not found in list */
 5319|      0|			sctp_free_hmaclist(hmaclist);
 5320|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5321|      0|			error = EINVAL;
 5322|      0|			break;
 5323|      0|		}
 5324|       |		/* set it on the endpoint */
 5325|      0|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5326|      0|		if (inp->sctp_ep.local_hmacs)
  ------------------
  |  Branch (5326:7): [True: 0, False: 0]
  ------------------
 5327|      0|			sctp_free_hmaclist(inp->sctp_ep.local_hmacs);
 5328|      0|		inp->sctp_ep.local_hmacs = hmaclist;
 5329|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5330|      0|	sctp_set_hmac_done:
 5331|      0|		break;
 5332|      0|	}
 5333|      0|	case SCTP_AUTH_ACTIVE_KEY:
  ------------------
  |  |  110|      0|#define SCTP_AUTH_ACTIVE_KEY 		0x00000015
  ------------------
  |  Branch (5333:2): [True: 0, False: 206k]
  ------------------
 5334|      0|	{
 5335|      0|		struct sctp_authkeyid *scact;
 5336|       |
 5337|      0|		SCTP_CHECK_AND_CAST(scact, optval, struct sctp_authkeyid, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5338|      0|		SCTP_FIND_STCB(inp, stcb, scact->scact_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5339|       |
 5340|       |		/* set the active key on the right place */
 5341|      0|		if (stcb) {
  ------------------
  |  Branch (5341:7): [True: 0, False: 0]
  ------------------
 5342|       |			/* set the active key on the assoc */
 5343|      0|			if (sctp_auth_setactivekey(stcb,
  ------------------
  |  Branch (5343:8): [True: 0, False: 0]
  ------------------
 5344|      0|						   scact->scact_keynumber)) {
 5345|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL,
 5346|      0|						    SCTP_FROM_SCTP_USRREQ,
 5347|      0|						    EINVAL);
 5348|      0|				error = EINVAL;
 5349|      0|			}
 5350|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5351|      0|		} else {
 5352|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5352:8): [True: 0, False: 0]
  ------------------
 5353|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5353:8): [True: 0, False: 0]
  ------------------
 5354|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5354:9): [True: 0, False: 0]
  ------------------
 5355|      0|			     ((scact->scact_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5355:10): [True: 0, False: 0]
  ------------------
 5356|      0|			      (scact->scact_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5356:10): [True: 0, False: 0]
  ------------------
 5357|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5358|      0|				if (sctp_auth_setactivekey_ep(inp, scact->scact_keynumber)) {
  ------------------
  |  Branch (5358:9): [True: 0, False: 0]
  ------------------
 5359|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5360|      0|					error = EINVAL;
 5361|      0|				}
 5362|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5363|      0|			}
 5364|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5364:8): [True: 0, False: 0]
  ------------------
 5365|      0|			    ((scact->scact_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5365:9): [True: 0, False: 0]
  ------------------
 5366|      0|			     (scact->scact_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5366:9): [True: 0, False: 0]
  ------------------
 5367|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5368|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5368:5): [True: 0, False: 0]
  ------------------
 5369|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5370|      0|					sctp_auth_setactivekey(stcb, scact->scact_keynumber);
 5371|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5372|      0|				}
 5373|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5374|      0|			}
 5375|      0|		}
 5376|      0|		break;
 5377|      0|	}
 5378|      0|	case SCTP_AUTH_DELETE_KEY:
  ------------------
  |  |  111|      0|#define SCTP_AUTH_DELETE_KEY 		0x00000016
  ------------------
  |  Branch (5378:2): [True: 0, False: 206k]
  ------------------
 5379|      0|	{
 5380|      0|		struct sctp_authkeyid *scdel;
 5381|       |
 5382|      0|		SCTP_CHECK_AND_CAST(scdel, optval, struct sctp_authkeyid, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5383|      0|		SCTP_FIND_STCB(inp, stcb, scdel->scact_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5384|       |
 5385|       |		/* delete the key from the right place */
 5386|      0|		if (stcb) {
  ------------------
  |  Branch (5386:7): [True: 0, False: 0]
  ------------------
 5387|      0|			if (sctp_delete_sharedkey(stcb, scdel->scact_keynumber)) {
  ------------------
  |  Branch (5387:8): [True: 0, False: 0]
  ------------------
 5388|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5389|      0|				error = EINVAL;
 5390|      0|			}
 5391|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5392|      0|		} else {
 5393|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5393:8): [True: 0, False: 0]
  ------------------
 5394|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5394:8): [True: 0, False: 0]
  ------------------
 5395|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5395:9): [True: 0, False: 0]
  ------------------
 5396|      0|			     ((scdel->scact_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5396:10): [True: 0, False: 0]
  ------------------
 5397|      0|			      (scdel->scact_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5397:10): [True: 0, False: 0]
  ------------------
 5398|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5399|      0|				if (sctp_delete_sharedkey_ep(inp, scdel->scact_keynumber)) {
  ------------------
  |  Branch (5399:9): [True: 0, False: 0]
  ------------------
 5400|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5401|      0|					error = EINVAL;
 5402|      0|				}
 5403|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5404|      0|			}
 5405|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5405:8): [True: 0, False: 0]
  ------------------
 5406|      0|			    ((scdel->scact_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5406:9): [True: 0, False: 0]
  ------------------
 5407|      0|			     (scdel->scact_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5407:9): [True: 0, False: 0]
  ------------------
 5408|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5409|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5409:5): [True: 0, False: 0]
  ------------------
 5410|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5411|      0|					sctp_delete_sharedkey(stcb, scdel->scact_keynumber);
 5412|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5413|      0|				}
 5414|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5415|      0|			}
 5416|      0|		}
 5417|      0|		break;
 5418|      0|	}
 5419|      0|	case SCTP_AUTH_DEACTIVATE_KEY:
  ------------------
  |  |  121|      0|#define SCTP_AUTH_DEACTIVATE_KEY	0x0000001d
  ------------------
  |  Branch (5419:2): [True: 0, False: 206k]
  ------------------
 5420|      0|	{
 5421|      0|		struct sctp_authkeyid *keyid;
 5422|       |
 5423|      0|		SCTP_CHECK_AND_CAST(keyid, optval, struct sctp_authkeyid, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5424|      0|		SCTP_FIND_STCB(inp, stcb, keyid->scact_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5425|       |
 5426|       |		/* deactivate the key from the right place */
 5427|      0|		if (stcb) {
  ------------------
  |  Branch (5427:7): [True: 0, False: 0]
  ------------------
 5428|      0|			if (sctp_deact_sharedkey(stcb, keyid->scact_keynumber)) {
  ------------------
  |  Branch (5428:8): [True: 0, False: 0]
  ------------------
 5429|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5430|      0|				error = EINVAL;
 5431|      0|			}
 5432|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5433|      0|		} else {
 5434|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5434:8): [True: 0, False: 0]
  ------------------
 5435|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5435:8): [True: 0, False: 0]
  ------------------
 5436|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5436:9): [True: 0, False: 0]
  ------------------
 5437|      0|			     ((keyid->scact_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5437:10): [True: 0, False: 0]
  ------------------
 5438|      0|			      (keyid->scact_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5438:10): [True: 0, False: 0]
  ------------------
 5439|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5440|      0|				if (sctp_deact_sharedkey_ep(inp, keyid->scact_keynumber)) {
  ------------------
  |  Branch (5440:9): [True: 0, False: 0]
  ------------------
 5441|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5442|      0|					error = EINVAL;
 5443|      0|				}
 5444|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5445|      0|			}
 5446|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5446:8): [True: 0, False: 0]
  ------------------
 5447|      0|			    ((keyid->scact_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5447:9): [True: 0, False: 0]
  ------------------
 5448|      0|			     (keyid->scact_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5448:9): [True: 0, False: 0]
  ------------------
 5449|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5450|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5450:5): [True: 0, False: 0]
  ------------------
 5451|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5452|      0|					sctp_deact_sharedkey(stcb, keyid->scact_keynumber);
 5453|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5454|      0|				}
 5455|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5456|      0|			}
 5457|      0|		}
 5458|      0|		break;
 5459|      0|	}
 5460|  10.1k|	case SCTP_ENABLE_STREAM_RESET:
  ------------------
  |  |  174|  10.1k|#define SCTP_ENABLE_STREAM_RESET	0x00000900 /* struct sctp_assoc_value */
  ------------------
  |  Branch (5460:2): [True: 10.1k, False: 196k]
  ------------------
 5461|  10.1k|	{
 5462|  10.1k|		struct sctp_assoc_value *av;
 5463|       |
 5464|  10.1k|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|  10.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  10.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  10.1k|	} else { \
  |  | 2164|  10.1k|		destp = (type *)srcp; \
  |  | 2165|  10.1k|	} \
  |  | 2166|  10.1k|}
  ------------------
 5465|  10.1k|		if (av->assoc_value & (~SCTP_ENABLE_VALUE_MASK)) {
  ------------------
  |  |  183|  10.1k|#define SCTP_ENABLE_VALUE_MASK		0x00000007
  ------------------
  |  Branch (5465:7): [True: 0, False: 10.1k]
  ------------------
 5466|      0|		        SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5467|      0|			error = EINVAL;
 5468|      0|			break;
 5469|      0|		}
 5470|  10.1k|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|  10.1k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 10.1k, False: 0]
  |  |  ------------------
  |  | 2139|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|  10.1k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|  10.1k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|  10.1k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|  10.1k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|  10.1k|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|  10.1k|}
  ------------------
 5471|  10.1k|		if (stcb) {
  ------------------
  |  Branch (5471:7): [True: 0, False: 10.1k]
  ------------------
 5472|      0|			stcb->asoc.local_strreset_support = (uint8_t)av->assoc_value;
 5473|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5474|  10.1k|		} else {
 5475|  10.1k|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5475:8): [True: 10.1k, False: 0]
  ------------------
 5476|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5476:8): [True: 0, False: 0]
  ------------------
 5477|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5477:9): [True: 0, False: 0]
  ------------------
 5478|      0|			     ((av->assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5478:10): [True: 0, False: 0]
  ------------------
 5479|  10.1k|			      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5479:10): [True: 0, False: 0]
  ------------------
 5480|  10.1k|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5481|  10.1k|				inp->local_strreset_support = (uint8_t)av->assoc_value;
 5482|  10.1k|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5483|  10.1k|			}
 5484|  10.1k|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|  10.1k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5484:8): [True: 0, False: 10.1k]
  ------------------
 5485|      0|			    ((av->assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5485:9): [True: 0, False: 0]
  ------------------
 5486|      0|			     (av->assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5486:9): [True: 0, False: 0]
  ------------------
 5487|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5488|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5488:5): [True: 0, False: 0]
  ------------------
 5489|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5490|      0|					stcb->asoc.local_strreset_support = (uint8_t)av->assoc_value;
 5491|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5492|      0|				}
 5493|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5494|      0|			}
 5495|  10.1k|		}
 5496|  10.1k|		break;
 5497|  10.1k|	}
 5498|  10.1k|	case SCTP_RESET_STREAMS:
  ------------------
  |  |  175|  2.19k|#define SCTP_RESET_STREAMS		0x00000901 /* struct sctp_reset_streams */
  ------------------
  |  Branch (5498:2): [True: 2.19k, False: 204k]
  ------------------
 5499|  2.19k|	{
 5500|  2.19k|		struct sctp_reset_streams *strrst;
 5501|  2.19k|		int i, send_out = 0;
 5502|  2.19k|		int send_in = 0;
 5503|       |
 5504|  2.19k|		SCTP_CHECK_AND_CAST(strrst, optval, struct sctp_reset_streams, optsize);
  ------------------
  |  | 2158|  2.19k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  2.19k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 2.19k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  2.19k|	} else { \
  |  | 2164|  2.19k|		destp = (type *)srcp; \
  |  | 2165|  2.19k|	} \
  |  | 2166|  2.19k|}
  ------------------
 5505|  2.19k|		SCTP_FIND_STCB(inp, stcb, strrst->srs_assoc_id);
  ------------------
  |  | 2137|  2.19k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|  2.19k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|  2.19k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 2.19k, False: 0]
  |  |  ------------------
  |  | 2139|  2.19k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|  2.19k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|  2.19k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.19k|	do {                         \
  |  |  |  |  |  |  113|  2.19k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  2.19k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|  2.19k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|  2.19k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 2.19k, False: 0]
  |  |  ------------------
  |  | 2143|  2.19k|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|  2.19k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.19k|	do {                         \
  |  |  |  |  |  |  113|  2.19k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  2.19k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|  2.19k|		} \
  |  | 2145|  2.19k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|  2.19k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.19k|	do {                         \
  |  |  |  |  |  |  113|  2.19k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  2.19k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|  2.19k|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|  2.19k|}
  ------------------
 5506|  2.19k|		if (stcb == NULL) {
  ------------------
  |  Branch (5506:7): [True: 0, False: 2.19k]
  ------------------
 5507|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT);
 5508|      0|			error = ENOENT;
 5509|      0|			break;
 5510|      0|		}
 5511|  2.19k|		if (stcb->asoc.reconfig_supported == 0) {
  ------------------
  |  Branch (5511:7): [True: 0, False: 2.19k]
  ------------------
 5512|       |			/*
 5513|       |			 * Peer does not support the chunk type.
 5514|       |			 */
 5515|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EOPNOTSUPP);
 5516|      0|			error = EOPNOTSUPP;
 5517|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5518|      0|			break;
 5519|      0|		}
 5520|  2.19k|		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  472|  2.19k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.19k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  459|  2.19k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (5520:7): [True: 0, False: 2.19k]
  ------------------
 5521|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5522|      0|			error = EINVAL;
 5523|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5524|      0|			break;
 5525|      0|		}
 5526|  2.19k|		if (sizeof(struct sctp_reset_streams) +
  ------------------
  |  Branch (5526:7): [True: 0, False: 2.19k]
  ------------------
 5527|  2.19k|		    strrst->srs_number_streams * sizeof(uint16_t) > optsize) {
 5528|      0|			error = EINVAL;
 5529|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5530|      0|			break;
 5531|      0|		}
 5532|  2.19k|		if (strrst->srs_flags & SCTP_STREAM_RESET_INCOMING) {
  ------------------
  |  |  185|  2.19k|#define SCTP_STREAM_RESET_INCOMING	0x00000001
  ------------------
  |  Branch (5532:7): [True: 2.19k, False: 0]
  ------------------
 5533|  2.19k|			send_in = 1;
 5534|  2.19k|			if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (5534:8): [True: 0, False: 2.19k]
  ------------------
 5535|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EALREADY);
 5536|      0|				error = EALREADY;
 5537|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5538|      0|				break;
 5539|      0|			}
 5540|  2.19k|		}
 5541|  2.19k|		if (strrst->srs_flags & SCTP_STREAM_RESET_OUTGOING) {
  ------------------
  |  |  186|  2.19k|#define SCTP_STREAM_RESET_OUTGOING	0x00000002
  ------------------
  |  Branch (5541:7): [True: 2.19k, False: 0]
  ------------------
 5542|  2.19k|			send_out = 1;
 5543|  2.19k|		}
 5544|  2.19k|		if ((strrst->srs_number_streams > SCTP_MAX_STREAMS_AT_ONCE_RESET) && send_in) {
  ------------------
  |  |  697|  2.19k|#define SCTP_MAX_STREAMS_AT_ONCE_RESET 200
  ------------------
  |  Branch (5544:7): [True: 0, False: 2.19k]
  |  Branch (5544:72): [True: 0, False: 0]
  ------------------
 5545|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
 5546|      0|			error = ENOMEM;
 5547|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5548|      0|			break;
 5549|      0|		}
 5550|  2.19k|		if ((send_in == 0) && (send_out == 0)) {
  ------------------
  |  Branch (5550:7): [True: 0, False: 2.19k]
  |  Branch (5550:25): [True: 0, False: 0]
  ------------------
 5551|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5552|      0|			error = EINVAL;
 5553|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5554|      0|			break;
 5555|      0|		}
 5556|  2.19k|		for (i = 0; i < strrst->srs_number_streams; i++) {
  ------------------
  |  Branch (5556:15): [True: 0, False: 2.19k]
  ------------------
 5557|      0|			if ((send_in) &&
  ------------------
  |  Branch (5557:8): [True: 0, False: 0]
  ------------------
 5558|      0|			    (strrst->srs_stream_list[i] >= stcb->asoc.streamincnt)) {
  ------------------
  |  Branch (5558:8): [True: 0, False: 0]
  ------------------
 5559|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5560|      0|				error = EINVAL;
 5561|      0|				break;
 5562|      0|			}
 5563|      0|			if ((send_out) &&
  ------------------
  |  Branch (5563:8): [True: 0, False: 0]
  ------------------
 5564|      0|			    (strrst->srs_stream_list[i] >= stcb->asoc.streamoutcnt)) {
  ------------------
  |  Branch (5564:8): [True: 0, False: 0]
  ------------------
 5565|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5566|      0|				error = EINVAL;
 5567|      0|				break;
 5568|      0|			}
 5569|      0|		}
 5570|  2.19k|		if (error) {
  ------------------
  |  Branch (5570:7): [True: 0, False: 2.19k]
  ------------------
 5571|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5572|      0|			break;
 5573|      0|		}
 5574|  2.19k|		if (send_out) {
  ------------------
  |  Branch (5574:7): [True: 2.19k, False: 0]
  ------------------
 5575|  2.19k|			int cnt;
 5576|  2.19k|			uint16_t strm;
 5577|  2.19k|			if (strrst->srs_number_streams) {
  ------------------
  |  Branch (5577:8): [True: 0, False: 2.19k]
  ------------------
 5578|      0|				for (i = 0, cnt = 0; i < strrst->srs_number_streams; i++) {
  ------------------
  |  Branch (5578:26): [True: 0, False: 0]
  ------------------
 5579|      0|					strm = strrst->srs_stream_list[i];
 5580|      0|					if (stcb->asoc.strmout[strm].state == SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|      0|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (5580:10): [True: 0, False: 0]
  ------------------
 5581|      0|						stcb->asoc.strmout[strm].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|      0|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 5582|      0|						cnt++;
 5583|      0|					}
 5584|      0|				}
 5585|  2.19k|			} else {
 5586|       |				/* Its all */
 5587|   567k|				for (i = 0, cnt = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (5587:26): [True: 565k, False: 2.19k]
  ------------------
 5588|   565k|					if (stcb->asoc.strmout[i].state == SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|   565k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (5588:10): [True: 565k, False: 0]
  ------------------
 5589|   565k|						stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|   565k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 5590|   565k|						cnt++;
 5591|   565k|					}
 5592|   565k|				}
 5593|  2.19k|			}
 5594|  2.19k|		}
 5595|  2.19k|		if (send_in) {
  ------------------
  |  Branch (5595:7): [True: 2.19k, False: 0]
  ------------------
 5596|  2.19k|			error = sctp_send_str_reset_req(stcb, strrst->srs_number_streams,
 5597|  2.19k|							strrst->srs_stream_list,
 5598|  2.19k|							send_in, 0, 0, 0, 0, 0);
 5599|  2.19k|		} else {
 5600|      0|			error = sctp_send_stream_reset_out_if_possible(stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5601|      0|		}
 5602|  2.19k|		if (error == 0) {
  ------------------
  |  Branch (5602:7): [True: 2.19k, False: 0]
  ------------------
 5603|  2.19k|			sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  373|  2.19k|#define SCTP_OUTPUT_FROM_STRRST_REQ     12
  ------------------
              			sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  2.19k|#define SCTP_SO_LOCKED		1
  ------------------
 5604|  2.19k|		} else {
 5605|       |			 /*
 5606|       |			  * For outgoing streams don't report any problems in
 5607|       |			  * sending the request to the application.
 5608|       |			  * XXX: Double check resetting incoming streams.
 5609|       |			  */
 5610|      0|			error = 0;
 5611|      0|		}
 5612|  2.19k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  2.19k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.19k|	do {                         \
  |  |  |  |  113|  2.19k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.19k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.19k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.19k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5613|  2.19k|		break;
 5614|  2.19k|	}
 5615|  2.19k|	case SCTP_ADD_STREAMS:
  ------------------
  |  |  177|      0|#define SCTP_ADD_STREAMS		0x00000903 /* struct sctp_add_streams */
  ------------------
  |  Branch (5615:2): [True: 0, False: 206k]
  ------------------
 5616|      0|	{
 5617|      0|		struct sctp_add_streams *stradd;
 5618|      0|		uint8_t addstream = 0;
 5619|      0|		uint16_t add_o_strmcnt = 0;
 5620|      0|		uint16_t add_i_strmcnt = 0;
 5621|       |
 5622|      0|		SCTP_CHECK_AND_CAST(stradd, optval, struct sctp_add_streams, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5623|      0|		SCTP_FIND_STCB(inp, stcb, stradd->sas_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5624|      0|		if (stcb == NULL) {
  ------------------
  |  Branch (5624:7): [True: 0, False: 0]
  ------------------
 5625|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT);
 5626|      0|			error = ENOENT;
 5627|      0|			break;
 5628|      0|		}
 5629|      0|		if (stcb->asoc.reconfig_supported == 0) {
  ------------------
  |  Branch (5629:7): [True: 0, False: 0]
  ------------------
 5630|       |			/*
 5631|       |			 * Peer does not support the chunk type.
 5632|       |			 */
 5633|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EOPNOTSUPP);
 5634|      0|			error = EOPNOTSUPP;
 5635|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5636|      0|			break;
 5637|      0|		}
 5638|      0|		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (5638:7): [True: 0, False: 0]
  ------------------
 5639|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5640|      0|			error = EINVAL;
 5641|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5642|      0|			break;
 5643|      0|		}
 5644|      0|		if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (5644:7): [True: 0, False: 0]
  ------------------
 5645|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EALREADY);
 5646|      0|			error = EALREADY;
 5647|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5648|      0|			break;
 5649|      0|		}
 5650|      0|		if ((stradd->sas_outstrms == 0) &&
  ------------------
  |  Branch (5650:7): [True: 0, False: 0]
  ------------------
 5651|      0|		    (stradd->sas_instrms == 0)) {
  ------------------
  |  Branch (5651:7): [True: 0, False: 0]
  ------------------
 5652|      0|			error = EINVAL;
 5653|      0|			goto skip_stuff;
 5654|      0|		}
 5655|      0|		if (stradd->sas_outstrms) {
  ------------------
  |  Branch (5655:7): [True: 0, False: 0]
  ------------------
 5656|      0|			addstream = 1;
 5657|       |			/* We allocate here */
 5658|      0|			add_o_strmcnt = stradd->sas_outstrms;
 5659|      0|			if ((((int)add_o_strmcnt) + ((int)stcb->asoc.streamoutcnt)) > 0x0000ffff) {
  ------------------
  |  Branch (5659:8): [True: 0, False: 0]
  ------------------
 5660|       |				/* You can't have more than 64k */
 5661|      0|				error = EINVAL;
 5662|      0|				goto skip_stuff;
 5663|      0|			}
 5664|      0|		}
 5665|      0|		if (stradd->sas_instrms) {
  ------------------
  |  Branch (5665:7): [True: 0, False: 0]
  ------------------
 5666|      0|			int cnt;
 5667|       |
 5668|      0|			addstream |= 2;
 5669|       |			/* We allocate inside sctp_send_str_reset_req() */
 5670|      0|			add_i_strmcnt = stradd->sas_instrms;
 5671|      0|			cnt = add_i_strmcnt;
 5672|      0|			cnt += stcb->asoc.streamincnt;
 5673|      0|			if (cnt > 0x0000ffff) {
  ------------------
  |  Branch (5673:8): [True: 0, False: 0]
  ------------------
 5674|       |				/* You can't have more than 64k */
 5675|      0|				error = EINVAL;
 5676|      0|				goto skip_stuff;
 5677|      0|			}
 5678|      0|			if (cnt > (int)stcb->asoc.max_inbound_streams) {
  ------------------
  |  Branch (5678:8): [True: 0, False: 0]
  ------------------
 5679|       |				/* More than you are allowed */
 5680|      0|				error = EINVAL;
 5681|      0|				goto skip_stuff;
 5682|      0|			}
 5683|      0|		}
 5684|      0|		error = sctp_send_str_reset_req(stcb, 0, NULL, 0, 0, addstream, add_o_strmcnt, add_i_strmcnt, 0);
 5685|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  373|      0|#define SCTP_OUTPUT_FROM_STRRST_REQ     12
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5686|      0|	skip_stuff:
 5687|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5688|      0|		break;
 5689|      0|	}
 5690|      0|	case SCTP_RESET_ASSOC:
  ------------------
  |  |  176|      0|#define SCTP_RESET_ASSOC		0x00000902 /* sctp_assoc_t */
  ------------------
  |  Branch (5690:2): [True: 0, False: 206k]
  ------------------
 5691|      0|	{
 5692|      0|		int i;
 5693|      0|		uint32_t *value;
 5694|       |
 5695|      0|		SCTP_CHECK_AND_CAST(value, optval, uint32_t, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5696|      0|		SCTP_FIND_STCB(inp, stcb, (sctp_assoc_t) *value);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5697|      0|		if (stcb == NULL) {
  ------------------
  |  Branch (5697:7): [True: 0, False: 0]
  ------------------
 5698|      0|		        SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT);
 5699|      0|			error = ENOENT;
 5700|      0|			break;
 5701|      0|		}
 5702|      0|		if (stcb->asoc.reconfig_supported == 0) {
  ------------------
  |  Branch (5702:7): [True: 0, False: 0]
  ------------------
 5703|       |			/*
 5704|       |			 * Peer does not support the chunk type.
 5705|       |			 */
 5706|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EOPNOTSUPP);
 5707|      0|			error = EOPNOTSUPP;
 5708|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5709|      0|			break;
 5710|      0|		}
 5711|      0|		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (5711:7): [True: 0, False: 0]
  ------------------
 5712|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5713|      0|			error = EINVAL;
 5714|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5715|      0|			break;
 5716|      0|		}
 5717|      0|		if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (5717:7): [True: 0, False: 0]
  ------------------
 5718|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EALREADY);
 5719|      0|			error = EALREADY;
 5720|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5721|      0|			break;
 5722|      0|		}
 5723|       |		/* Is there any data pending in the send or sent queues? */
 5724|      0|		if (!TAILQ_EMPTY(&stcb->asoc.send_queue) ||
  ------------------
  |  Branch (5724:7): [True: 0, False: 0]
  ------------------
 5725|      0|		    !TAILQ_EMPTY(&stcb->asoc.sent_queue)) {
  ------------------
  |  Branch (5725:7): [True: 0, False: 0]
  ------------------
 5726|      0|		busy_out:
 5727|      0|			error = EBUSY;
 5728|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, error);
 5729|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5730|      0|			break;
 5731|      0|		}
 5732|       |		/* Do any streams have data queued? */
 5733|      0|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (5733:15): [True: 0, False: 0]
  ------------------
 5734|      0|			if (!TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) {
  ------------------
  |  Branch (5734:8): [True: 0, False: 0]
  ------------------
 5735|      0|				goto busy_out;
 5736|      0|			}
 5737|      0|		}
 5738|      0|		error = sctp_send_str_reset_req(stcb, 0, NULL, 0, 1, 0, 0, 0, 0);
 5739|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  373|      0|#define SCTP_OUTPUT_FROM_STRRST_REQ     12
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5740|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5741|      0|		break;
 5742|      0|	}
 5743|      0|	case SCTP_CONNECT_X:
  ------------------
  |  |  276|      0|#define SCTP_CONNECT_X			0x00008007
  ------------------
  |  Branch (5743:2): [True: 0, False: 206k]
  ------------------
 5744|      0|		if (optsize < (sizeof(int) + sizeof(struct sockaddr_in))) {
  ------------------
  |  Branch (5744:7): [True: 0, False: 0]
  ------------------
 5745|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5746|      0|			error = EINVAL;
 5747|      0|			break;
 5748|      0|		}
 5749|      0|		error = sctp_do_connect_x(so, inp, optval, optsize, p, 0);
 5750|      0|		break;
 5751|      0|	case SCTP_CONNECT_X_DELAYED:
  ------------------
  |  |  278|      0|#define SCTP_CONNECT_X_DELAYED		0x00008008
  ------------------
  |  Branch (5751:2): [True: 0, False: 206k]
  ------------------
 5752|      0|		if (optsize < (sizeof(int) + sizeof(struct sockaddr_in))) {
  ------------------
  |  Branch (5752:7): [True: 0, False: 0]
  ------------------
 5753|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5754|      0|			error = EINVAL;
 5755|      0|			break;
 5756|      0|		}
 5757|      0|		error = sctp_do_connect_x(so, inp, optval, optsize, p, 1);
 5758|      0|		break;
 5759|      0|	case SCTP_CONNECT_X_COMPLETE:
  ------------------
  |  |  279|      0|#define SCTP_CONNECT_X_COMPLETE         0x00008009
  ------------------
  |  Branch (5759:2): [True: 0, False: 206k]
  ------------------
 5760|      0|	{
 5761|      0|		struct sockaddr *sa;
 5762|       |
 5763|       |		/* FIXME MT: check correct? */
 5764|      0|		SCTP_CHECK_AND_CAST(sa, optval, struct sockaddr, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5765|       |
 5766|       |		/* find tcb */
 5767|      0|		if (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) {
  ------------------
  |  |  539|      0|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (5767:7): [True: 0, False: 0]
  ------------------
 5768|      0|			SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5769|      0|			stcb = LIST_FIRST(&inp->sctp_asoc_list);
 5770|      0|			if (stcb) {
  ------------------
  |  Branch (5770:8): [True: 0, False: 0]
  ------------------
 5771|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5772|      0|			}
 5773|      0|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5774|      0|		} else {
 5775|       |			/* We increment here since sctp_findassociation_ep_addr() wil
 5776|       |			 * do a decrement if it finds the stcb as long as the locked
 5777|       |			 * tcb (last argument) is NOT a TCB.. aka NULL.
 5778|       |			 */
 5779|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 5780|      0|			stcb = sctp_findassociation_ep_addr(&inp, sa, NULL, NULL, NULL);
 5781|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (5781:8): [True: 0, False: 0]
  ------------------
 5782|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5783|      0|			}
 5784|      0|		}
 5785|       |
 5786|      0|		if (stcb == NULL) {
  ------------------
  |  Branch (5786:7): [True: 0, False: 0]
  ------------------
 5787|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT);
 5788|      0|			error = ENOENT;
 5789|      0|			break;
 5790|      0|		}
 5791|      0|		if (stcb->asoc.delayed_connection == 1) {
  ------------------
  |  Branch (5791:7): [True: 0, False: 0]
  ------------------
 5792|      0|			stcb->asoc.delayed_connection = 0;
 5793|      0|			(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 5794|      0|			sctp_timer_stop(SCTP_TIMER_TYPE_INIT, inp, stcb,
  ------------------
  |  |  533|      0|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
 5795|      0|					stcb->asoc.primary_destination,
 5796|      0|					SCTP_FROM_SCTP_USRREQ + SCTP_LOC_8);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              					SCTP_FROM_SCTP_USRREQ + SCTP_LOC_8);
  ------------------
  |  |  776|      0|#define SCTP_LOC_8  0x00000008
  ------------------
 5797|      0|			sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5798|      0|		} else {
 5799|       |			/*
 5800|       |			 * already expired or did not use delayed
 5801|       |			 * connectx
 5802|       |			 */
 5803|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EALREADY);
 5804|      0|			error = EALREADY;
 5805|      0|		}
 5806|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5807|      0|		break;
 5808|      0|	}
 5809|      0|	case SCTP_MAX_BURST:
  ------------------
  |  |  115|      0|#define SCTP_MAX_BURST			0x00000019 /* rw */
  ------------------
  |  Branch (5809:2): [True: 0, False: 206k]
  ------------------
 5810|      0|	{
 5811|      0|		struct sctp_assoc_value *av;
 5812|       |
 5813|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5814|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5815|       |
 5816|      0|		if (stcb) {
  ------------------
  |  Branch (5816:7): [True: 0, False: 0]
  ------------------
 5817|      0|			stcb->asoc.max_burst = av->assoc_value;
 5818|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5819|      0|		} else {
 5820|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5820:8): [True: 0, False: 0]
  ------------------
 5821|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5821:8): [True: 0, False: 0]
  ------------------
 5822|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5822:9): [True: 0, False: 0]
  ------------------
 5823|      0|			     ((av->assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5823:10): [True: 0, False: 0]
  ------------------
 5824|      0|			      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5824:10): [True: 0, False: 0]
  ------------------
 5825|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5826|      0|				inp->sctp_ep.max_burst = av->assoc_value;
 5827|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5828|      0|			}
 5829|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5829:8): [True: 0, False: 0]
  ------------------
 5830|      0|			    ((av->assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (5830:9): [True: 0, False: 0]
  ------------------
 5831|      0|			     (av->assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5831:9): [True: 0, False: 0]
  ------------------
 5832|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5833|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5833:5): [True: 0, False: 0]
  ------------------
 5834|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5835|      0|					stcb->asoc.max_burst = av->assoc_value;
 5836|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5837|      0|				}
 5838|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5839|      0|			}
 5840|      0|		}
 5841|      0|		break;
 5842|      0|	}
 5843|      0|	case SCTP_MAXSEG:
  ------------------
  |  |  102|      0|#define SCTP_MAXSEG 			0x0000000e
  ------------------
  |  Branch (5843:2): [True: 0, False: 206k]
  ------------------
 5844|      0|	{
 5845|      0|		struct sctp_assoc_value *av;
 5846|       |
 5847|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5848|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 5849|       |
 5850|      0|		if (stcb) {
  ------------------
  |  Branch (5850:7): [True: 0, False: 0]
  ------------------
 5851|      0|			stcb->asoc.sctp_frag_point = av->assoc_value;
 5852|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5853|      0|		} else {
 5854|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5854:8): [True: 0, False: 0]
  ------------------
 5855|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5855:8): [True: 0, False: 0]
  ------------------
 5856|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5856:9): [True: 0, False: 0]
  ------------------
 5857|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (5857:9): [True: 0, False: 0]
  ------------------
 5858|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5859|      0|				inp->sctp_frag_point = av->assoc_value;
 5860|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5861|      0|			} else {
 5862|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 5863|      0|				error = EINVAL;
 5864|      0|			}
 5865|      0|		}
 5866|      0|		break;
 5867|      0|	}
 5868|      0|	case SCTP_EVENTS:
  ------------------
  |  |   99|      0|#define SCTP_EVENTS			0x0000000c /* deprecated */
  ------------------
  |  Branch (5868:2): [True: 0, False: 206k]
  ------------------
 5869|      0|	{
 5870|      0|		struct sctp_event_subscribe *events;
 5871|       |
 5872|      0|		SCTP_CHECK_AND_CAST(events, optval, struct sctp_event_subscribe, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 5873|       |
 5874|      0|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5875|      0|		if (events->sctp_data_io_event) {
  ------------------
  |  Branch (5875:7): [True: 0, False: 0]
  ------------------
 5876|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVDATAIOEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5877|      0|		} else {
 5878|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVDATAIOEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5879|      0|		}
 5880|       |
 5881|      0|		if (events->sctp_association_event) {
  ------------------
  |  Branch (5881:7): [True: 0, False: 0]
  ------------------
 5882|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVASSOCEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5883|      0|		} else {
 5884|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVASSOCEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5885|      0|		}
 5886|       |
 5887|      0|		if (events->sctp_address_event) {
  ------------------
  |  Branch (5887:7): [True: 0, False: 0]
  ------------------
 5888|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVPADDREVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5889|      0|		} else {
 5890|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVPADDREVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5891|      0|		}
 5892|       |
 5893|      0|		if (events->sctp_send_failure_event) {
  ------------------
  |  Branch (5893:7): [True: 0, False: 0]
  ------------------
 5894|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVSENDFAILEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5895|      0|		} else {
 5896|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVSENDFAILEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5897|      0|		}
 5898|       |
 5899|      0|		if (events->sctp_peer_error_event) {
  ------------------
  |  Branch (5899:7): [True: 0, False: 0]
  ------------------
 5900|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVPEERERR);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5901|      0|		} else {
 5902|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVPEERERR);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5903|      0|		}
 5904|       |
 5905|      0|		if (events->sctp_shutdown_event) {
  ------------------
  |  Branch (5905:7): [True: 0, False: 0]
  ------------------
 5906|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5907|      0|		} else {
 5908|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5909|      0|		}
 5910|       |
 5911|      0|		if (events->sctp_partial_delivery_event) {
  ------------------
  |  Branch (5911:7): [True: 0, False: 0]
  ------------------
 5912|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_PDAPIEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5913|      0|		} else {
 5914|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_PDAPIEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5915|      0|		}
 5916|       |
 5917|      0|		if (events->sctp_adaptation_layer_event) {
  ------------------
  |  Branch (5917:7): [True: 0, False: 0]
  ------------------
 5918|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_ADAPTATIONEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5919|      0|		} else {
 5920|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_ADAPTATIONEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5921|      0|		}
 5922|       |
 5923|      0|		if (events->sctp_authentication_event) {
  ------------------
  |  Branch (5923:7): [True: 0, False: 0]
  ------------------
 5924|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_AUTHEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5925|      0|		} else {
 5926|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_AUTHEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5927|      0|		}
 5928|       |
 5929|      0|		if (events->sctp_sender_dry_event) {
  ------------------
  |  Branch (5929:7): [True: 0, False: 0]
  ------------------
 5930|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_DRYEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5931|      0|		} else {
 5932|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_DRYEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5933|      0|		}
 5934|       |
 5935|      0|		if (events->sctp_stream_reset_event) {
  ------------------
  |  Branch (5935:7): [True: 0, False: 0]
  ------------------
 5936|      0|			sctp_feature_on(inp, SCTP_PCB_FLAGS_STREAM_RESETEVNT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 5937|      0|		} else {
 5938|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_STREAM_RESETEVNT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 5939|      0|		}
 5940|       |
 5941|      0|		LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (5941:3): [True: 0, False: 0]
  ------------------
 5942|      0|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5943|      0|			if (events->sctp_association_event) {
  ------------------
  |  Branch (5943:8): [True: 0, False: 0]
  ------------------
 5944|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVASSOCEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5945|      0|			} else {
 5946|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_RECVASSOCEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5947|      0|			}
 5948|      0|			if (events->sctp_address_event) {
  ------------------
  |  Branch (5948:8): [True: 0, False: 0]
  ------------------
 5949|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVPADDREVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5950|      0|			} else {
 5951|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_RECVPADDREVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5952|      0|			}
 5953|      0|			if (events->sctp_send_failure_event) {
  ------------------
  |  Branch (5953:8): [True: 0, False: 0]
  ------------------
 5954|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVSENDFAILEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5955|      0|			} else {
 5956|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_RECVSENDFAILEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5957|      0|			}
 5958|      0|			if (events->sctp_peer_error_event) {
  ------------------
  |  Branch (5958:8): [True: 0, False: 0]
  ------------------
 5959|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVPEERERR);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5960|      0|			} else {
 5961|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_RECVPEERERR);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5962|      0|			}
 5963|      0|			if (events->sctp_shutdown_event) {
  ------------------
  |  Branch (5963:8): [True: 0, False: 0]
  ------------------
 5964|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5965|      0|			} else {
 5966|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5967|      0|			}
 5968|      0|			if (events->sctp_partial_delivery_event) {
  ------------------
  |  Branch (5968:8): [True: 0, False: 0]
  ------------------
 5969|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_PDAPIEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5970|      0|			} else {
 5971|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_PDAPIEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5972|      0|			}
 5973|      0|			if (events->sctp_adaptation_layer_event) {
  ------------------
  |  Branch (5973:8): [True: 0, False: 0]
  ------------------
 5974|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_ADAPTATIONEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5975|      0|			} else {
 5976|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_ADAPTATIONEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5977|      0|			}
 5978|      0|			if (events->sctp_authentication_event) {
  ------------------
  |  Branch (5978:8): [True: 0, False: 0]
  ------------------
 5979|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_AUTHEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5980|      0|			} else {
 5981|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_AUTHEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5982|      0|			}
 5983|      0|			if (events->sctp_sender_dry_event) {
  ------------------
  |  Branch (5983:8): [True: 0, False: 0]
  ------------------
 5984|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_DRYEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5985|      0|			} else {
 5986|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_DRYEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5987|      0|			}
 5988|      0|			if (events->sctp_stream_reset_event) {
  ------------------
  |  Branch (5988:8): [True: 0, False: 0]
  ------------------
 5989|      0|				sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_STREAM_RESETEVNT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 5990|      0|			} else {
 5991|      0|				sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_STREAM_RESETEVNT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 5992|      0|			}
 5993|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5994|      0|		}
 5995|       |		/* Send up the sender dry event only for 1-to-1 style sockets. */
 5996|      0|		if (events->sctp_sender_dry_event) {
  ------------------
  |  Branch (5996:7): [True: 0, False: 0]
  ------------------
 5997|      0|			if (((inp->sctp_flags & (SCTP_PCB_FLAGS_TCPTYPE | SCTP_PCB_FLAGS_IN_TCPPOOL)) != 0) &&
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
              			if (((inp->sctp_flags & (SCTP_PCB_FLAGS_TCPTYPE | SCTP_PCB_FLAGS_IN_TCPPOOL)) != 0) &&
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5997:8): [True: 0, False: 0]
  ------------------
 5998|      0|			    !SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|      0|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|      0|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  ------------------
  |  Branch (5998:8): [True: 0, False: 0]
  ------------------
 5999|      0|				stcb = LIST_FIRST(&inp->sctp_asoc_list);
 6000|      0|				if (stcb != NULL) {
  ------------------
  |  Branch (6000:9): [True: 0, False: 0]
  ------------------
 6001|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6002|      0|					if (TAILQ_EMPTY(&stcb->asoc.send_queue) &&
  ------------------
  |  Branch (6002:10): [True: 0, False: 0]
  ------------------
 6003|      0|					    TAILQ_EMPTY(&stcb->asoc.sent_queue) &&
  ------------------
  |  Branch (6003:10): [True: 0, False: 0]
  ------------------
 6004|      0|					    (stcb->asoc.stream_queue_cnt == 0)) {
  ------------------
  |  Branch (6004:10): [True: 0, False: 0]
  ------------------
 6005|      0|						sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb, 0, NULL, SCTP_SO_LOCKED);
  ------------------
  |  |  730|      0|#define SCTP_NOTIFY_SENDER_DRY                  28
  ------------------
              						sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb, 0, NULL, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6006|      0|					}
 6007|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6008|      0|				}
 6009|      0|			}
 6010|      0|		}
 6011|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6012|      0|		break;
 6013|      0|	}
 6014|      0|	case SCTP_ADAPTATION_LAYER:
  ------------------
  |  |   92|      0|#define SCTP_ADAPTATION_LAYER		0x00000008
  ------------------
  |  Branch (6014:2): [True: 0, False: 206k]
  ------------------
 6015|      0|	{
 6016|      0|		struct sctp_setadaptation *adap_bits;
 6017|       |
 6018|      0|		SCTP_CHECK_AND_CAST(adap_bits, optval, struct sctp_setadaptation, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6019|      0|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6020|      0|		inp->sctp_ep.adaptation_layer_indicator = adap_bits->ssb_adaptation_ind;
 6021|      0|		inp->sctp_ep.adaptation_layer_indicator_provided = 1;
 6022|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6023|      0|		break;
 6024|      0|	}
 6025|       |#ifdef SCTP_DEBUG
 6026|       |	case SCTP_SET_INITIAL_DBG_SEQ:
 6027|       |	{
 6028|       |		uint32_t *vvv;
 6029|       |
 6030|       |		SCTP_CHECK_AND_CAST(vvv, optval, uint32_t, optsize);
 6031|       |		SCTP_INP_WLOCK(inp);
 6032|       |		inp->sctp_ep.initial_sequence_debug = *vvv;
 6033|       |		SCTP_INP_WUNLOCK(inp);
 6034|       |		break;
 6035|       |	}
 6036|       |#endif
 6037|      0|	case SCTP_DEFAULT_SEND_PARAM:
  ------------------
  |  |   97|      0|#define SCTP_DEFAULT_SEND_PARAM		0x0000000b
  ------------------
  |  Branch (6037:2): [True: 0, False: 206k]
  ------------------
 6038|      0|	{
 6039|      0|		struct sctp_sndrcvinfo *s_info;
 6040|       |
 6041|      0|		SCTP_CHECK_AND_CAST(s_info, optval, struct sctp_sndrcvinfo, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6042|      0|		SCTP_FIND_STCB(inp, stcb, s_info->sinfo_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 6043|       |
 6044|      0|		if (stcb) {
  ------------------
  |  Branch (6044:7): [True: 0, False: 0]
  ------------------
 6045|      0|			if (s_info->sinfo_stream < stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (6045:8): [True: 0, False: 0]
  ------------------
 6046|      0|				memcpy(&stcb->asoc.def_send, s_info, min(optsize, sizeof(stcb->asoc.def_send)));
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 6047|      0|			} else {
 6048|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6049|      0|				error = EINVAL;
 6050|      0|			}
 6051|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6052|      0|		} else {
 6053|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (6053:8): [True: 0, False: 0]
  ------------------
 6054|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (6054:8): [True: 0, False: 0]
  ------------------
 6055|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (6055:9): [True: 0, False: 0]
  ------------------
 6056|      0|			     ((s_info->sinfo_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (6056:10): [True: 0, False: 0]
  ------------------
 6057|      0|			      (s_info->sinfo_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (6057:10): [True: 0, False: 0]
  ------------------
 6058|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6059|      0|				memcpy(&inp->def_send, s_info, min(optsize, sizeof(inp->def_send)));
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 6060|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6061|      0|			}
 6062|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (6062:8): [True: 0, False: 0]
  ------------------
 6063|      0|			    ((s_info->sinfo_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (6063:9): [True: 0, False: 0]
  ------------------
 6064|      0|			     (s_info->sinfo_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (6064:9): [True: 0, False: 0]
  ------------------
 6065|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6066|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (6066:5): [True: 0, False: 0]
  ------------------
 6067|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6068|      0|					if (s_info->sinfo_stream < stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (6068:10): [True: 0, False: 0]
  ------------------
 6069|      0|						memcpy(&stcb->asoc.def_send, s_info, min(optsize, sizeof(stcb->asoc.def_send)));
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 6070|      0|					}
 6071|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6072|      0|				}
 6073|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6074|      0|			}
 6075|      0|		}
 6076|      0|		break;
 6077|      0|	}
 6078|      0|	case SCTP_PEER_ADDR_PARAMS:
  ------------------
  |  |   96|      0|#define SCTP_PEER_ADDR_PARAMS 		0x0000000a
  ------------------
  |  Branch (6078:2): [True: 0, False: 206k]
  ------------------
 6079|      0|	{
 6080|      0|		struct sctp_paddrparams *paddrp;
 6081|      0|		struct sctp_nets *net;
 6082|      0|		struct sockaddr *addr;
 6083|      0|#if defined(INET) && defined(INET6)
 6084|      0|		struct sockaddr_in sin_store;
 6085|      0|#endif
 6086|       |
 6087|      0|		SCTP_CHECK_AND_CAST(paddrp, optval, struct sctp_paddrparams, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6088|      0|		SCTP_FIND_STCB(inp, stcb, paddrp->spp_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 6089|       |
 6090|      0|#if defined(INET) && defined(INET6)
 6091|      0|		if (paddrp->spp_address.ss_family == AF_INET6) {
  ------------------
  |  Branch (6091:7): [True: 0, False: 0]
  ------------------
 6092|      0|			struct sockaddr_in6 *sin6;
 6093|       |
 6094|      0|			sin6 = (struct sockaddr_in6 *)&paddrp->spp_address;
 6095|      0|			if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (6095:8): [True: 0, False: 0]
  ------------------
 6096|      0|				in6_sin6_2_sin(&sin_store, sin6);
 6097|      0|				addr = (struct sockaddr *)&sin_store;
 6098|      0|			} else {
 6099|      0|				addr = (struct sockaddr *)&paddrp->spp_address;
 6100|      0|			}
 6101|      0|		} else {
 6102|      0|			addr = (struct sockaddr *)&paddrp->spp_address;
 6103|      0|		}
 6104|       |#else
 6105|       |		addr = (struct sockaddr *)&paddrp->spp_address;
 6106|       |#endif
 6107|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (6107:7): [True: 0, False: 0]
  ------------------
 6108|      0|			net = sctp_findnet(stcb, addr);
 6109|      0|		} else {
 6110|       |			/* We increment here since sctp_findassociation_ep_addr() wil
 6111|       |			 * do a decrement if it finds the stcb as long as the locked
 6112|       |			 * tcb (last argument) is NOT a TCB.. aka NULL.
 6113|       |			 */
 6114|      0|			net = NULL;
 6115|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 6116|      0|			stcb = sctp_findassociation_ep_addr(&inp, addr,
 6117|      0|			                                    &net, NULL, NULL);
 6118|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (6118:8): [True: 0, False: 0]
  ------------------
 6119|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 6120|      0|			}
 6121|      0|		}
 6122|      0|		if ((stcb != NULL) && (net == NULL)) {
  ------------------
  |  Branch (6122:7): [True: 0, False: 0]
  |  Branch (6122:25): [True: 0, False: 0]
  ------------------
 6123|      0|#ifdef INET
 6124|      0|			if (addr->sa_family == AF_INET) {
  ------------------
  |  Branch (6124:8): [True: 0, False: 0]
  ------------------
 6125|      0|				struct sockaddr_in *sin;
 6126|       |
 6127|      0|				sin = (struct sockaddr_in *)addr;
 6128|      0|				if (sin->sin_addr.s_addr != INADDR_ANY) {
  ------------------
  |  Branch (6128:9): [True: 0, False: 0]
  ------------------
 6129|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6130|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6131|      0|					error = EINVAL;
 6132|      0|					break;
 6133|      0|				}
 6134|      0|			} else
 6135|      0|#endif
 6136|      0|#ifdef INET6
 6137|      0|			if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (6137:8): [True: 0, False: 0]
  ------------------
 6138|      0|				struct sockaddr_in6 *sin6;
 6139|       |
 6140|      0|				sin6 = (struct sockaddr_in6 *)addr;
 6141|      0|				if (!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (6141:9): [True: 0, False: 0]
  ------------------
 6142|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6143|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6144|      0|					error = EINVAL;
 6145|      0|					break;
 6146|      0|				}
 6147|      0|			} else
 6148|      0|#endif
 6149|      0|#if defined(__Userspace__)
 6150|      0|			if (addr->sa_family == AF_CONN) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (6150:8): [True: 0, False: 0]
  ------------------
 6151|      0|				struct sockaddr_conn *sconn;
 6152|       |
 6153|      0|				sconn = (struct sockaddr_conn *)addr;
 6154|      0|				if (sconn->sconn_addr != NULL) {
  ------------------
  |  Branch (6154:9): [True: 0, False: 0]
  ------------------
 6155|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6156|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6157|      0|					error = EINVAL;
 6158|      0|					break;
 6159|      0|				}
 6160|      0|			} else
 6161|      0|#endif
 6162|      0|			{
 6163|      0|				error = EAFNOSUPPORT;
 6164|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6165|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, error);
 6166|      0|				break;
 6167|      0|			}
 6168|      0|		}
 6169|       |		/* sanity checks */
 6170|      0|		if ((paddrp->spp_flags & SPP_HB_ENABLE) && (paddrp->spp_flags & SPP_HB_DISABLE)) {
  ------------------
  |  |  585|      0|#define SPP_HB_ENABLE		0x00000001
  ------------------
              		if ((paddrp->spp_flags & SPP_HB_ENABLE) && (paddrp->spp_flags & SPP_HB_DISABLE)) {
  ------------------
  |  |  586|      0|#define SPP_HB_DISABLE		0x00000002
  ------------------
  |  Branch (6170:7): [True: 0, False: 0]
  |  Branch (6170:46): [True: 0, False: 0]
  ------------------
 6171|      0|			if (stcb)
  ------------------
  |  Branch (6171:8): [True: 0, False: 0]
  ------------------
 6172|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6173|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6174|      0|			return (EINVAL);
 6175|      0|		}
 6176|       |
 6177|      0|		if ((paddrp->spp_flags & SPP_PMTUD_ENABLE) && (paddrp->spp_flags & SPP_PMTUD_DISABLE)) {
  ------------------
  |  |  588|      0|#define SPP_PMTUD_ENABLE	0x00000008
  ------------------
              		if ((paddrp->spp_flags & SPP_PMTUD_ENABLE) && (paddrp->spp_flags & SPP_PMTUD_DISABLE)) {
  ------------------
  |  |  589|      0|#define SPP_PMTUD_DISABLE	0x00000010
  ------------------
  |  Branch (6177:7): [True: 0, False: 0]
  |  Branch (6177:49): [True: 0, False: 0]
  ------------------
 6178|      0|			if (stcb)
  ------------------
  |  Branch (6178:8): [True: 0, False: 0]
  ------------------
 6179|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6180|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6181|      0|			return (EINVAL);
 6182|      0|		}
 6183|      0|		if ((paddrp->spp_flags & SPP_PMTUD_DISABLE) &&
  ------------------
  |  |  589|      0|#define SPP_PMTUD_DISABLE	0x00000010
  ------------------
  |  Branch (6183:7): [True: 0, False: 0]
  ------------------
 6184|      0|		    (paddrp->spp_pathmtu > 0) &&
  ------------------
  |  Branch (6184:7): [True: 0, False: 0]
  ------------------
 6185|      0|		    ((paddrp->spp_pathmtu < SCTP_SMALLEST_PMTU) ||
  ------------------
  |  |  611|      0|#define SCTP_SMALLEST_PMTU 512
  ------------------
  |  Branch (6185:8): [True: 0, False: 0]
  ------------------
 6186|      0|		     (paddrp->spp_pathmtu > SCTP_LARGEST_PMTU))) {
  ------------------
  |  |  613|      0|#define SCTP_LARGEST_PMTU  65536
  ------------------
  |  Branch (6186:8): [True: 0, False: 0]
  ------------------
 6187|      0|			if (stcb)
  ------------------
  |  Branch (6187:8): [True: 0, False: 0]
  ------------------
 6188|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6189|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6190|      0|			return (EINVAL);
 6191|      0|		}
 6192|       |
 6193|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (6193:7): [True: 0, False: 0]
  ------------------
 6194|       |			/************************TCB SPECIFIC SET ******************/
 6195|      0|			if (net != NULL) {
  ------------------
  |  Branch (6195:8): [True: 0, False: 0]
  ------------------
 6196|       |				/************************NET SPECIFIC SET ******************/
 6197|      0|				if (paddrp->spp_flags & SPP_HB_DISABLE) {
  ------------------
  |  |  586|      0|#define SPP_HB_DISABLE		0x00000002
  ------------------
  |  Branch (6197:9): [True: 0, False: 0]
  ------------------
 6198|      0|					if (((net->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) &&
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (6198:10): [True: 0, False: 0]
  ------------------
 6199|      0|					    ((net->dest_state & SCTP_ADDR_NOHB) == 0)) {
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
  |  Branch (6199:10): [True: 0, False: 0]
  ------------------
 6200|      0|						sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6201|      0|						                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_9);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              						                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_9);
  ------------------
  |  |  777|      0|#define SCTP_LOC_9  0x00000009
  ------------------
 6202|      0|					}
 6203|      0|					net->dest_state |= SCTP_ADDR_NOHB;
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
 6204|      0|				}
 6205|      0|				if (paddrp->spp_flags & SPP_HB_ENABLE) {
  ------------------
  |  |  585|      0|#define SPP_HB_ENABLE		0x00000001
  ------------------
  |  Branch (6205:9): [True: 0, False: 0]
  ------------------
 6206|      0|					if (paddrp->spp_hbinterval) {
  ------------------
  |  Branch (6206:10): [True: 0, False: 0]
  ------------------
 6207|      0|						net->heart_beat_delay = paddrp->spp_hbinterval;
 6208|      0|					} else if (paddrp->spp_flags & SPP_HB_TIME_IS_ZERO) {
  ------------------
  |  |  590|      0|#define SPP_HB_TIME_IS_ZERO     0x00000080
  ------------------
  |  Branch (6208:17): [True: 0, False: 0]
  ------------------
 6209|      0|						net->heart_beat_delay = 0;
 6210|      0|					}
 6211|      0|					sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6212|      0|					                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              					                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10);
  ------------------
  |  |  778|      0|#define SCTP_LOC_10 0x0000000a
  ------------------
 6213|      0|					sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6214|      0|					net->dest_state &= ~SCTP_ADDR_NOHB;
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
 6215|      0|				}
 6216|      0|				if (paddrp->spp_flags & SPP_HB_DEMAND) {
  ------------------
  |  |  587|      0|#define SPP_HB_DEMAND		0x00000004
  ------------------
  |  Branch (6216:9): [True: 0, False: 0]
  ------------------
 6217|      0|					if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              					if (SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) {
  ------------------
  |  |  459|      0|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (6217:10): [True: 0, False: 0]
  ------------------
 6218|      0|						sctp_send_hb(stcb, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6219|      0|						sctp_chunk_output(inp, stcb,  SCTP_OUTPUT_FROM_SOCKOPT, SCTP_SO_LOCKED);
  ------------------
  |  |  378|      0|#define SCTP_OUTPUT_FROM_SOCKOPT        17
  ------------------
              						sctp_chunk_output(inp, stcb,  SCTP_OUTPUT_FROM_SOCKOPT, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6220|      0|						sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6221|      0|					}
 6222|      0|				}
 6223|      0|				if (paddrp->spp_flags & SPP_PMTUD_DISABLE) {
  ------------------
  |  |  589|      0|#define SPP_PMTUD_DISABLE	0x00000010
  ------------------
  |  Branch (6223:9): [True: 0, False: 0]
  ------------------
 6224|      0|					if (SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 6225|      0|						sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|      0|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
 6226|      0|						                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_11);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              						                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_11);
  ------------------
  |  |  779|      0|#define SCTP_LOC_11 0x0000000b
  ------------------
 6227|      0|					}
 6228|      0|					net->dest_state |= SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 6229|      0|					if (paddrp->spp_pathmtu > 0) {
  ------------------
  |  Branch (6229:10): [True: 0, False: 0]
  ------------------
 6230|      0|						net->mtu = paddrp->spp_pathmtu;
 6231|      0|						switch (net->ro._l_addr.sa.sa_family) {
 6232|      0|#ifdef INET
 6233|      0|						case AF_INET:
  ------------------
  |  Branch (6233:7): [True: 0, False: 0]
  ------------------
 6234|      0|							net->mtu += SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      0|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      0|                              sizeof(struct sctphdr))
  ------------------
 6235|      0|							break;
 6236|      0|#endif
 6237|      0|#ifdef INET6
 6238|      0|						case AF_INET6:
  ------------------
  |  Branch (6238:7): [True: 0, False: 0]
  ------------------
 6239|      0|							net->mtu += SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 6240|      0|							break;
 6241|      0|#endif
 6242|      0|#if defined(__Userspace__)
 6243|      0|						case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (6243:7): [True: 0, False: 0]
  ------------------
 6244|      0|							net->mtu += sizeof(struct sctphdr);
 6245|      0|							break;
 6246|      0|#endif
 6247|      0|						default:
  ------------------
  |  Branch (6247:7): [True: 0, False: 0]
  ------------------
 6248|      0|							break;
 6249|      0|						}
 6250|      0|						if (net->mtu < stcb->asoc.smallest_mtu) {
  ------------------
  |  Branch (6250:11): [True: 0, False: 0]
  ------------------
 6251|      0|							sctp_pathmtu_adjustment(stcb, net->mtu, true);
 6252|      0|						}
 6253|      0|					}
 6254|      0|				}
 6255|      0|				if (paddrp->spp_flags & SPP_PMTUD_ENABLE) {
  ------------------
  |  |  588|      0|#define SPP_PMTUD_ENABLE	0x00000008
  ------------------
  |  Branch (6255:9): [True: 0, False: 0]
  ------------------
 6256|      0|					if (!SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (6256:10): [True: 0, False: 0]
  ------------------
 6257|      0|						sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net);
  ------------------
  |  |  539|      0|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
 6258|      0|					}
 6259|      0|					net->dest_state &= ~SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 6260|      0|				}
 6261|      0|				if (paddrp->spp_pathmaxrxt > 0) {
  ------------------
  |  Branch (6261:9): [True: 0, False: 0]
  ------------------
 6262|      0|					if (net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (6262:10): [True: 0, False: 0]
  ------------------
 6263|      0|						if (net->error_count > paddrp->spp_pathmaxrxt) {
  ------------------
  |  Branch (6263:11): [True: 0, False: 0]
  ------------------
 6264|      0|							net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 6265|      0|						}
 6266|      0|					} else {
 6267|      0|						if ((net->error_count <= paddrp->spp_pathmaxrxt) &&
  ------------------
  |  Branch (6267:11): [True: 0, False: 0]
  ------------------
 6268|      0|						    (net->error_count > net->pf_threshold)) {
  ------------------
  |  Branch (6268:11): [True: 0, False: 0]
  ------------------
 6269|      0|							net->dest_state |= SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 6270|      0|							sctp_send_hb(stcb, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6271|      0|							sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6272|      0|							                stcb->sctp_ep, stcb, net,
 6273|      0|							                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_12);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              							                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_12);
  ------------------
  |  |  780|      0|#define SCTP_LOC_12 0x0000000c
  ------------------
 6274|      0|							sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6275|      0|						}
 6276|      0|					}
 6277|      0|					if (net->dest_state & SCTP_ADDR_REACHABLE) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (6277:10): [True: 0, False: 0]
  ------------------
 6278|      0|						if (net->error_count > paddrp->spp_pathmaxrxt) {
  ------------------
  |  Branch (6278:11): [True: 0, False: 0]
  ------------------
 6279|      0|							net->dest_state &= ~SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 6280|      0|							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
              							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6281|      0|						}
 6282|      0|					} else {
 6283|      0|						if (net->error_count <= paddrp->spp_pathmaxrxt) {
  ------------------
  |  Branch (6283:11): [True: 0, False: 0]
  ------------------
 6284|      0|							net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 6285|      0|							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
              							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6286|      0|						}
 6287|      0|					}
 6288|      0|					net->failure_threshold = paddrp->spp_pathmaxrxt;
 6289|      0|				}
 6290|      0|				if (paddrp->spp_flags & SPP_DSCP) {
  ------------------
  |  |  592|      0|#define SPP_DSCP                0x00000200
  ------------------
  |  Branch (6290:9): [True: 0, False: 0]
  ------------------
 6291|      0|					net->dscp = paddrp->spp_dscp & 0xfc;
 6292|      0|					net->dscp |= 0x01;
 6293|      0|				}
 6294|      0|#ifdef INET6
 6295|      0|				if (paddrp->spp_flags & SPP_IPV6_FLOWLABEL) {
  ------------------
  |  |  591|      0|#define SPP_IPV6_FLOWLABEL      0x00000100
  ------------------
  |  Branch (6295:9): [True: 0, False: 0]
  ------------------
 6296|      0|					if (net->ro._l_addr.sa.sa_family == AF_INET6) {
  ------------------
  |  Branch (6296:10): [True: 0, False: 0]
  ------------------
 6297|      0|						net->flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff;
 6298|      0|						net->flowlabel |= 0x80000000;
 6299|      0|					}
 6300|      0|				}
 6301|      0|#endif
 6302|      0|			} else {
 6303|       |				/************************ASSOC ONLY -- NO NET SPECIFIC SET ******************/
 6304|      0|				if (paddrp->spp_pathmaxrxt > 0) {
  ------------------
  |  Branch (6304:9): [True: 0, False: 0]
  ------------------
 6305|      0|					stcb->asoc.def_net_failure = paddrp->spp_pathmaxrxt;
 6306|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6306:6): [True: 0, False: 0]
  ------------------
 6307|      0|						if (net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (6307:11): [True: 0, False: 0]
  ------------------
 6308|      0|							if (net->error_count > paddrp->spp_pathmaxrxt) {
  ------------------
  |  Branch (6308:12): [True: 0, False: 0]
  ------------------
 6309|      0|								net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 6310|      0|							}
 6311|      0|						} else {
 6312|      0|							if ((net->error_count <= paddrp->spp_pathmaxrxt) &&
  ------------------
  |  Branch (6312:12): [True: 0, False: 0]
  ------------------
 6313|      0|							    (net->error_count > net->pf_threshold)) {
  ------------------
  |  Branch (6313:12): [True: 0, False: 0]
  ------------------
 6314|      0|								net->dest_state |= SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 6315|      0|								sctp_send_hb(stcb, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6316|      0|								sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6317|      0|								                stcb->sctp_ep, stcb, net,
 6318|      0|								                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_13);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              								                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_13);
  ------------------
  |  |  781|      0|#define SCTP_LOC_13 0x0000000d
  ------------------
 6319|      0|								sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6320|      0|							}
 6321|      0|						}
 6322|      0|						if (net->dest_state & SCTP_ADDR_REACHABLE) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (6322:11): [True: 0, False: 0]
  ------------------
 6323|      0|							if (net->error_count > paddrp->spp_pathmaxrxt) {
  ------------------
  |  Branch (6323:12): [True: 0, False: 0]
  ------------------
 6324|      0|								net->dest_state &= ~SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 6325|      0|								sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
              								sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6326|      0|							}
 6327|      0|						} else {
 6328|      0|							if (net->error_count <= paddrp->spp_pathmaxrxt) {
  ------------------
  |  Branch (6328:12): [True: 0, False: 0]
  ------------------
 6329|      0|								net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 6330|      0|								sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
              								sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6331|      0|							}
 6332|      0|						}
 6333|      0|						net->failure_threshold = paddrp->spp_pathmaxrxt;
 6334|      0|					}
 6335|      0|				}
 6336|      0|				if (paddrp->spp_flags & SPP_HB_ENABLE) {
  ------------------
  |  |  585|      0|#define SPP_HB_ENABLE		0x00000001
  ------------------
  |  Branch (6336:9): [True: 0, False: 0]
  ------------------
 6337|      0|					if (paddrp->spp_hbinterval != 0) {
  ------------------
  |  Branch (6337:10): [True: 0, False: 0]
  ------------------
 6338|      0|						stcb->asoc.heart_beat_delay = paddrp->spp_hbinterval;
 6339|      0|					} else if (paddrp->spp_flags & SPP_HB_TIME_IS_ZERO) {
  ------------------
  |  |  590|      0|#define SPP_HB_TIME_IS_ZERO     0x00000080
  ------------------
  |  Branch (6339:17): [True: 0, False: 0]
  ------------------
 6340|      0|						stcb->asoc.heart_beat_delay = 0;
 6341|      0|					}
 6342|       |					/* Turn back on the timer */
 6343|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6343:6): [True: 0, False: 0]
  ------------------
 6344|      0|						if (paddrp->spp_hbinterval != 0) {
  ------------------
  |  Branch (6344:11): [True: 0, False: 0]
  ------------------
 6345|      0|							net->heart_beat_delay = paddrp->spp_hbinterval;
 6346|      0|						} else if (paddrp->spp_flags & SPP_HB_TIME_IS_ZERO) {
  ------------------
  |  |  590|      0|#define SPP_HB_TIME_IS_ZERO     0x00000080
  ------------------
  |  Branch (6346:18): [True: 0, False: 0]
  ------------------
 6347|      0|							net->heart_beat_delay = 0;
 6348|      0|						}
 6349|      0|						if (net->dest_state & SCTP_ADDR_NOHB) {
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
  |  Branch (6349:11): [True: 0, False: 0]
  ------------------
 6350|      0|							net->dest_state &= ~SCTP_ADDR_NOHB;
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
 6351|      0|						}
 6352|      0|						sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6353|      0|								SCTP_FROM_SCTP_USRREQ + SCTP_LOC_14);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              								SCTP_FROM_SCTP_USRREQ + SCTP_LOC_14);
  ------------------
  |  |  782|      0|#define SCTP_LOC_14 0x0000000e
  ------------------
 6354|      0|						sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6355|      0|					}
 6356|      0|					sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 6357|      0|				}
 6358|      0|				if (paddrp->spp_flags & SPP_HB_DISABLE) {
  ------------------
  |  |  586|      0|#define SPP_HB_DISABLE		0x00000002
  ------------------
  |  Branch (6358:9): [True: 0, False: 0]
  ------------------
 6359|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6359:6): [True: 0, False: 0]
  ------------------
 6360|      0|						if ((net->dest_state & SCTP_ADDR_NOHB) == 0) {
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
  |  Branch (6360:11): [True: 0, False: 0]
  ------------------
 6361|      0|							net->dest_state |= SCTP_ADDR_NOHB;
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
 6362|      0|							if ((net->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (6362:12): [True: 0, False: 0]
  ------------------
 6363|      0|								sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 6364|      0|								                inp, stcb, net,
 6365|      0|								                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_15);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              								                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_15);
  ------------------
  |  |  783|      0|#define SCTP_LOC_15 0x0000000f
  ------------------
 6366|      0|							}
 6367|      0|						}
 6368|      0|					}
 6369|      0|					sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 6370|      0|				}
 6371|      0|				if (paddrp->spp_flags & SPP_PMTUD_DISABLE) {
  ------------------
  |  |  589|      0|#define SPP_PMTUD_DISABLE	0x00000010
  ------------------
  |  Branch (6371:9): [True: 0, False: 0]
  ------------------
 6372|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6372:6): [True: 0, False: 0]
  ------------------
 6373|      0|						if (SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 6374|      0|							sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|      0|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
 6375|      0|							                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_16);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              							                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_16);
  ------------------
  |  |  784|      0|#define SCTP_LOC_16 0x00000010
  ------------------
 6376|      0|						}
 6377|      0|						net->dest_state |= SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 6378|      0|						if (paddrp->spp_pathmtu > 0) {
  ------------------
  |  Branch (6378:11): [True: 0, False: 0]
  ------------------
 6379|      0|							net->mtu = paddrp->spp_pathmtu;
 6380|      0|							switch (net->ro._l_addr.sa.sa_family) {
 6381|      0|#ifdef INET
 6382|      0|							case AF_INET:
  ------------------
  |  Branch (6382:8): [True: 0, False: 0]
  ------------------
 6383|      0|								net->mtu += SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|      0|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|      0|                              sizeof(struct sctphdr))
  ------------------
 6384|      0|								break;
 6385|      0|#endif
 6386|      0|#ifdef INET6
 6387|      0|							case AF_INET6:
  ------------------
  |  Branch (6387:8): [True: 0, False: 0]
  ------------------
 6388|      0|								net->mtu += SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 6389|      0|								break;
 6390|      0|#endif
 6391|      0|#if defined(__Userspace__)
 6392|      0|							case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (6392:8): [True: 0, False: 0]
  ------------------
 6393|      0|								net->mtu += sizeof(struct sctphdr);
 6394|      0|								break;
 6395|      0|#endif
 6396|      0|							default:
  ------------------
  |  Branch (6396:8): [True: 0, False: 0]
  ------------------
 6397|      0|								break;
 6398|      0|							}
 6399|      0|							if (net->mtu < stcb->asoc.smallest_mtu) {
  ------------------
  |  Branch (6399:12): [True: 0, False: 0]
  ------------------
 6400|      0|								sctp_pathmtu_adjustment(stcb, net->mtu, true);
 6401|      0|							}
 6402|      0|						}
 6403|      0|					}
 6404|      0|					if (paddrp->spp_pathmtu > 0) {
  ------------------
  |  Branch (6404:10): [True: 0, False: 0]
  ------------------
 6405|      0|						stcb->asoc.default_mtu = paddrp->spp_pathmtu;
 6406|      0|					}
 6407|      0|					sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 6408|      0|				}
 6409|      0|				if (paddrp->spp_flags & SPP_PMTUD_ENABLE) {
  ------------------
  |  |  588|      0|#define SPP_PMTUD_ENABLE	0x00000008
  ------------------
  |  Branch (6409:9): [True: 0, False: 0]
  ------------------
 6410|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6410:6): [True: 0, False: 0]
  ------------------
 6411|      0|						if (!SCTP_OS_TIMER_PENDING(&net->pmtu_timer.timer)) {
  ------------------
  |  |  102|      0|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|      0|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (6411:11): [True: 0, False: 0]
  ------------------
 6412|      0|							sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net);
  ------------------
  |  |  539|      0|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
 6413|      0|						}
 6414|      0|						net->dest_state &= ~SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|      0|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 6415|      0|					}
 6416|      0|					stcb->asoc.default_mtu = 0;
 6417|      0|					sctp_stcb_feature_off(inp, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 6418|      0|				}
 6419|      0|				if (paddrp->spp_flags & SPP_DSCP) {
  ------------------
  |  |  592|      0|#define SPP_DSCP                0x00000200
  ------------------
  |  Branch (6419:9): [True: 0, False: 0]
  ------------------
 6420|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6420:6): [True: 0, False: 0]
  ------------------
 6421|      0|						net->dscp = paddrp->spp_dscp & 0xfc;
 6422|      0|						net->dscp |= 0x01;
 6423|      0|					}
 6424|      0|					stcb->asoc.default_dscp = paddrp->spp_dscp & 0xfc;
 6425|      0|					stcb->asoc.default_dscp |= 0x01;
 6426|      0|				}
 6427|      0|#ifdef INET6
 6428|      0|				if (paddrp->spp_flags & SPP_IPV6_FLOWLABEL) {
  ------------------
  |  |  591|      0|#define SPP_IPV6_FLOWLABEL      0x00000100
  ------------------
  |  Branch (6428:9): [True: 0, False: 0]
  ------------------
 6429|      0|					TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6429:6): [True: 0, False: 0]
  ------------------
 6430|      0|						if (net->ro._l_addr.sa.sa_family == AF_INET6) {
  ------------------
  |  Branch (6430:11): [True: 0, False: 0]
  ------------------
 6431|      0|							net->flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff;
 6432|      0|							net->flowlabel |= 0x80000000;
 6433|      0|						}
 6434|      0|					}
 6435|      0|					stcb->asoc.default_flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff;
 6436|      0|					stcb->asoc.default_flowlabel |= 0x80000000;
 6437|      0|				}
 6438|      0|#endif
 6439|      0|			}
 6440|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6441|      0|		} else {
 6442|       |			/************************NO TCB, SET TO default stuff ******************/
 6443|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (6443:8): [True: 0, False: 0]
  ------------------
 6444|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (6444:8): [True: 0, False: 0]
  ------------------
 6445|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (6445:9): [True: 0, False: 0]
  ------------------
 6446|      0|			     (paddrp->spp_assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (6446:9): [True: 0, False: 0]
  ------------------
 6447|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6448|       |				/*
 6449|       |				 * For the TOS/FLOWLABEL stuff you set it
 6450|       |				 * with the options on the socket
 6451|       |				 */
 6452|      0|				if (paddrp->spp_pathmaxrxt > 0) {
  ------------------
  |  Branch (6452:9): [True: 0, False: 0]
  ------------------
 6453|      0|					inp->sctp_ep.def_net_failure = paddrp->spp_pathmaxrxt;
 6454|      0|				}
 6455|       |
 6456|      0|				if (paddrp->spp_flags & SPP_HB_TIME_IS_ZERO)
  ------------------
  |  |  590|      0|#define SPP_HB_TIME_IS_ZERO     0x00000080
  ------------------
  |  Branch (6456:9): [True: 0, False: 0]
  ------------------
 6457|      0|					inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = 0;
  ------------------
  |  |  520|      0|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
 6458|      0|				else if (paddrp->spp_hbinterval != 0) {
  ------------------
  |  Branch (6458:14): [True: 0, False: 0]
  ------------------
 6459|      0|					if (paddrp->spp_hbinterval > SCTP_MAX_HB_INTERVAL)
  ------------------
  |  |  633|      0|#define SCTP_MAX_HB_INTERVAL 14400000 /* 4 hours in ms */
  ------------------
  |  Branch (6459:10): [True: 0, False: 0]
  ------------------
 6460|      0|						paddrp->spp_hbinterval= SCTP_MAX_HB_INTERVAL;
  ------------------
  |  |  633|      0|#define SCTP_MAX_HB_INTERVAL 14400000 /* 4 hours in ms */
  ------------------
 6461|      0|					inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = sctp_msecs_to_ticks(paddrp->spp_hbinterval);
  ------------------
  |  |  520|      0|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
 6462|      0|				}
 6463|       |
 6464|      0|				if (paddrp->spp_flags & SPP_HB_ENABLE) {
  ------------------
  |  |  585|      0|#define SPP_HB_ENABLE		0x00000001
  ------------------
  |  Branch (6464:9): [True: 0, False: 0]
  ------------------
 6465|      0|					if (paddrp->spp_flags & SPP_HB_TIME_IS_ZERO) {
  ------------------
  |  |  590|      0|#define SPP_HB_TIME_IS_ZERO     0x00000080
  ------------------
  |  Branch (6465:10): [True: 0, False: 0]
  ------------------
 6466|      0|						inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = 0;
  ------------------
  |  |  520|      0|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
 6467|      0|					} else if (paddrp->spp_hbinterval) {
  ------------------
  |  Branch (6467:17): [True: 0, False: 0]
  ------------------
 6468|      0|						inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = sctp_msecs_to_ticks(paddrp->spp_hbinterval);
  ------------------
  |  |  520|      0|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
 6469|      0|					}
 6470|      0|					sctp_feature_off(inp, SCTP_PCB_FLAGS_DONOT_HEARTBEAT);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 6471|      0|				} else if (paddrp->spp_flags & SPP_HB_DISABLE) {
  ------------------
  |  |  586|      0|#define SPP_HB_DISABLE		0x00000002
  ------------------
  |  Branch (6471:16): [True: 0, False: 0]
  ------------------
 6472|      0|					sctp_feature_on(inp, SCTP_PCB_FLAGS_DONOT_HEARTBEAT);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 6473|      0|				}
 6474|      0|				if (paddrp->spp_flags & SPP_PMTUD_ENABLE) {
  ------------------
  |  |  588|      0|#define SPP_PMTUD_ENABLE	0x00000008
  ------------------
  |  Branch (6474:9): [True: 0, False: 0]
  ------------------
 6475|      0|					inp->sctp_ep.default_mtu = 0;
 6476|      0|					sctp_feature_off(inp, SCTP_PCB_FLAGS_DO_NOT_PMTUD);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 6477|      0|				} else if (paddrp->spp_flags & SPP_PMTUD_DISABLE) {
  ------------------
  |  |  589|      0|#define SPP_PMTUD_DISABLE	0x00000010
  ------------------
  |  Branch (6477:16): [True: 0, False: 0]
  ------------------
 6478|      0|					if (paddrp->spp_pathmtu > 0) {
  ------------------
  |  Branch (6478:10): [True: 0, False: 0]
  ------------------
 6479|      0|						inp->sctp_ep.default_mtu = paddrp->spp_pathmtu;
 6480|      0|					}
 6481|      0|					sctp_feature_on(inp, SCTP_PCB_FLAGS_DO_NOT_PMTUD);
  ------------------
  |  |   50|      0|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 6482|      0|				}
 6483|      0|				if (paddrp->spp_flags & SPP_DSCP) {
  ------------------
  |  |  592|      0|#define SPP_DSCP                0x00000200
  ------------------
  |  Branch (6483:9): [True: 0, False: 0]
  ------------------
 6484|      0|					inp->sctp_ep.default_dscp = paddrp->spp_dscp & 0xfc;
 6485|      0|					inp->sctp_ep.default_dscp |= 0x01;
 6486|      0|				}
 6487|      0|#ifdef INET6
 6488|      0|				if (paddrp->spp_flags & SPP_IPV6_FLOWLABEL) {
  ------------------
  |  |  591|      0|#define SPP_IPV6_FLOWLABEL      0x00000100
  ------------------
  |  Branch (6488:9): [True: 0, False: 0]
  ------------------
 6489|      0|					if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|      0|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (6489:10): [True: 0, False: 0]
  ------------------
 6490|      0|						inp->sctp_ep.default_flowlabel = paddrp->spp_ipv6_flowlabel & 0x000fffff;
 6491|      0|						inp->sctp_ep.default_flowlabel |= 0x80000000;
 6492|      0|					}
 6493|      0|				}
 6494|      0|#endif
 6495|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6496|      0|			} else {
 6497|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6498|      0|				error = EINVAL;
 6499|      0|			}
 6500|      0|		}
 6501|      0|		break;
 6502|      0|	}
 6503|      0|	case SCTP_RTOINFO:
  ------------------
  |  |   85|      0|#define SCTP_RTOINFO			0x00000001
  ------------------
  |  Branch (6503:2): [True: 0, False: 206k]
  ------------------
 6504|      0|	{
 6505|      0|		struct sctp_rtoinfo *srto;
 6506|      0|		uint32_t new_init, new_min, new_max;
 6507|       |
 6508|      0|		SCTP_CHECK_AND_CAST(srto, optval, struct sctp_rtoinfo, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6509|      0|		SCTP_FIND_STCB(inp, stcb, srto->srto_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 6510|       |
 6511|      0|		if (stcb) {
  ------------------
  |  Branch (6511:7): [True: 0, False: 0]
  ------------------
 6512|      0|			if (srto->srto_initial)
  ------------------
  |  Branch (6512:8): [True: 0, False: 0]
  ------------------
 6513|      0|				new_init = srto->srto_initial;
 6514|      0|			else
 6515|      0|				new_init = stcb->asoc.initial_rto;
 6516|      0|			if (srto->srto_max)
  ------------------
  |  Branch (6516:8): [True: 0, False: 0]
  ------------------
 6517|      0|				new_max = srto->srto_max;
 6518|      0|			else
 6519|      0|				new_max = stcb->asoc.maxrto;
 6520|      0|			if (srto->srto_min)
  ------------------
  |  Branch (6520:8): [True: 0, False: 0]
  ------------------
 6521|      0|				new_min = srto->srto_min;
 6522|      0|			else
 6523|      0|				new_min = stcb->asoc.minrto;
 6524|      0|			if ((new_min <= new_init) && (new_init <= new_max)) {
  ------------------
  |  Branch (6524:8): [True: 0, False: 0]
  |  Branch (6524:33): [True: 0, False: 0]
  ------------------
 6525|      0|				stcb->asoc.initial_rto = new_init;
 6526|      0|				stcb->asoc.maxrto = new_max;
 6527|      0|				stcb->asoc.minrto = new_min;
 6528|      0|			} else {
 6529|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6530|      0|				error = EINVAL;
 6531|      0|			}
 6532|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6533|      0|		} else {
 6534|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (6534:8): [True: 0, False: 0]
  ------------------
 6535|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (6535:8): [True: 0, False: 0]
  ------------------
 6536|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (6536:9): [True: 0, False: 0]
  ------------------
 6537|      0|			     (srto->srto_assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (6537:9): [True: 0, False: 0]
  ------------------
 6538|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6539|      0|				if (srto->srto_initial)
  ------------------
  |  Branch (6539:9): [True: 0, False: 0]
  ------------------
 6540|      0|					new_init = srto->srto_initial;
 6541|      0|				else
 6542|      0|					new_init = inp->sctp_ep.initial_rto;
 6543|      0|				if (srto->srto_max)
  ------------------
  |  Branch (6543:9): [True: 0, False: 0]
  ------------------
 6544|      0|					new_max = srto->srto_max;
 6545|      0|				else
 6546|      0|					new_max = inp->sctp_ep.sctp_maxrto;
 6547|      0|				if (srto->srto_min)
  ------------------
  |  Branch (6547:9): [True: 0, False: 0]
  ------------------
 6548|      0|					new_min = srto->srto_min;
 6549|      0|				else
 6550|      0|					new_min = inp->sctp_ep.sctp_minrto;
 6551|      0|				if ((new_min <= new_init) && (new_init <= new_max)) {
  ------------------
  |  Branch (6551:9): [True: 0, False: 0]
  |  Branch (6551:34): [True: 0, False: 0]
  ------------------
 6552|      0|					inp->sctp_ep.initial_rto = new_init;
 6553|      0|					inp->sctp_ep.sctp_maxrto = new_max;
 6554|      0|					inp->sctp_ep.sctp_minrto = new_min;
 6555|      0|				} else {
 6556|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6557|      0|					error = EINVAL;
 6558|      0|				}
 6559|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6560|      0|			} else {
 6561|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6562|      0|				error = EINVAL;
 6563|      0|			}
 6564|      0|		}
 6565|      0|		break;
 6566|      0|	}
 6567|      0|	case SCTP_ASSOCINFO:
  ------------------
  |  |   86|      0|#define SCTP_ASSOCINFO			0x00000002
  ------------------
  |  Branch (6567:2): [True: 0, False: 206k]
  ------------------
 6568|      0|	{
 6569|      0|		struct sctp_assocparams *sasoc;
 6570|       |
 6571|      0|		SCTP_CHECK_AND_CAST(sasoc, optval, struct sctp_assocparams, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6572|      0|		SCTP_FIND_STCB(inp, stcb, sasoc->sasoc_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 6573|      0|		if (sasoc->sasoc_cookie_life > 0) {
  ------------------
  |  Branch (6573:7): [True: 0, False: 0]
  ------------------
 6574|       |			/* boundary check the cookie life */
 6575|      0|			if (sasoc->sasoc_cookie_life < SCTP_MIN_COOKIE_LIFE) {
  ------------------
  |  |  634|      0|#define SCTP_MIN_COOKIE_LIFE     1000 /* 1 second in ms */
  ------------------
  |  Branch (6575:8): [True: 0, False: 0]
  ------------------
 6576|      0|				sasoc->sasoc_cookie_life = SCTP_MIN_COOKIE_LIFE;
  ------------------
  |  |  634|      0|#define SCTP_MIN_COOKIE_LIFE     1000 /* 1 second in ms */
  ------------------
 6577|      0|			}
 6578|      0|			if (sasoc->sasoc_cookie_life > SCTP_MAX_COOKIE_LIFE) {
  ------------------
  |  |  635|      0|#define SCTP_MAX_COOKIE_LIFE  3600000 /* 1 hour in ms */
  ------------------
  |  Branch (6578:8): [True: 0, False: 0]
  ------------------
 6579|      0|				sasoc->sasoc_cookie_life = SCTP_MAX_COOKIE_LIFE;
  ------------------
  |  |  635|      0|#define SCTP_MAX_COOKIE_LIFE  3600000 /* 1 hour in ms */
  ------------------
 6580|      0|			}
 6581|      0|		}
 6582|      0|		if (stcb) {
  ------------------
  |  Branch (6582:7): [True: 0, False: 0]
  ------------------
 6583|      0|			if (sasoc->sasoc_asocmaxrxt > 0) {
  ------------------
  |  Branch (6583:8): [True: 0, False: 0]
  ------------------
 6584|      0|				stcb->asoc.max_send_times = sasoc->sasoc_asocmaxrxt;
 6585|      0|			}
 6586|      0|			if (sasoc->sasoc_cookie_life > 0) {
  ------------------
  |  Branch (6586:8): [True: 0, False: 0]
  ------------------
 6587|      0|				stcb->asoc.cookie_life = sctp_msecs_to_ticks(sasoc->sasoc_cookie_life);
 6588|      0|			}
 6589|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6590|      0|		} else {
 6591|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (6591:8): [True: 0, False: 0]
  ------------------
 6592|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (6592:8): [True: 0, False: 0]
  ------------------
 6593|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (6593:9): [True: 0, False: 0]
  ------------------
 6594|      0|			     (sasoc->sasoc_assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (6594:9): [True: 0, False: 0]
  ------------------
 6595|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6596|      0|				if (sasoc->sasoc_asocmaxrxt > 0) {
  ------------------
  |  Branch (6596:9): [True: 0, False: 0]
  ------------------
 6597|      0|					inp->sctp_ep.max_send_times = sasoc->sasoc_asocmaxrxt;
 6598|      0|				}
 6599|      0|				if (sasoc->sasoc_cookie_life > 0) {
  ------------------
  |  Branch (6599:9): [True: 0, False: 0]
  ------------------
 6600|      0|					inp->sctp_ep.def_cookie_life = sctp_msecs_to_ticks(sasoc->sasoc_cookie_life);
 6601|      0|				}
 6602|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6603|      0|			} else {
 6604|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6605|      0|				error = EINVAL;
 6606|      0|			}
 6607|      0|		}
 6608|      0|		break;
 6609|      0|	}
 6610|  10.1k|	case SCTP_INITMSG:
  ------------------
  |  |   87|  10.1k|#define SCTP_INITMSG			0x00000003
  ------------------
  |  Branch (6610:2): [True: 10.1k, False: 196k]
  ------------------
 6611|  10.1k|	{
 6612|  10.1k|		struct sctp_initmsg *sinit;
 6613|       |
 6614|  10.1k|		SCTP_CHECK_AND_CAST(sinit, optval, struct sctp_initmsg, optsize);
  ------------------
  |  | 2158|  10.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  10.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  10.1k|	} else { \
  |  | 2164|  10.1k|		destp = (type *)srcp; \
  |  | 2165|  10.1k|	} \
  |  | 2166|  10.1k|}
  ------------------
 6615|  10.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6616|  10.1k|		if (sinit->sinit_num_ostreams)
  ------------------
  |  Branch (6616:7): [True: 10.1k, False: 0]
  ------------------
 6617|  10.1k|			inp->sctp_ep.pre_open_stream_count = sinit->sinit_num_ostreams;
 6618|       |
 6619|  10.1k|		if (sinit->sinit_max_instreams)
  ------------------
  |  Branch (6619:7): [True: 10.1k, False: 0]
  ------------------
 6620|  10.1k|			inp->sctp_ep.max_open_streams_intome = sinit->sinit_max_instreams;
 6621|       |
 6622|  10.1k|		if (sinit->sinit_max_attempts)
  ------------------
  |  Branch (6622:7): [True: 10.1k, False: 0]
  ------------------
 6623|  10.1k|			inp->sctp_ep.max_init_times = sinit->sinit_max_attempts;
 6624|       |
 6625|  10.1k|		if (sinit->sinit_max_init_timeo)
  ------------------
  |  Branch (6625:7): [True: 10.1k, False: 0]
  ------------------
 6626|  10.1k|			inp->sctp_ep.initial_init_rto_max = sinit->sinit_max_init_timeo;
 6627|  10.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6628|  10.1k|		break;
 6629|  10.1k|	}
 6630|  10.1k|	case SCTP_PRIMARY_ADDR:
  ------------------
  |  |   91|      0|#define SCTP_PRIMARY_ADDR		0x00000007
  ------------------
  |  Branch (6630:2): [True: 0, False: 206k]
  ------------------
 6631|      0|	{
 6632|      0|		struct sctp_setprim *spa;
 6633|      0|		struct sctp_nets *net;
 6634|      0|		struct sockaddr *addr;
 6635|      0|#if defined(INET) && defined(INET6)
 6636|      0|		struct sockaddr_in sin_store;
 6637|      0|#endif
 6638|       |
 6639|      0|		SCTP_CHECK_AND_CAST(spa, optval, struct sctp_setprim, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6640|      0|		SCTP_FIND_STCB(inp, stcb, spa->ssp_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 6641|       |
 6642|      0|#if defined(INET) && defined(INET6)
 6643|      0|		if (spa->ssp_addr.ss_family == AF_INET6) {
  ------------------
  |  Branch (6643:7): [True: 0, False: 0]
  ------------------
 6644|      0|			struct sockaddr_in6 *sin6;
 6645|       |
 6646|      0|			sin6 = (struct sockaddr_in6 *)&spa->ssp_addr;
 6647|      0|			if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (6647:8): [True: 0, False: 0]
  ------------------
 6648|      0|				in6_sin6_2_sin(&sin_store, sin6);
 6649|      0|				addr = (struct sockaddr *)&sin_store;
 6650|      0|			} else {
 6651|      0|				addr = (struct sockaddr *)&spa->ssp_addr;
 6652|      0|			}
 6653|      0|		} else {
 6654|      0|			addr = (struct sockaddr *)&spa->ssp_addr;
 6655|      0|		}
 6656|       |#else
 6657|       |		addr = (struct sockaddr *)&spa->ssp_addr;
 6658|       |#endif
 6659|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (6659:7): [True: 0, False: 0]
  ------------------
 6660|      0|			net = sctp_findnet(stcb, addr);
 6661|      0|		} else {
 6662|       |			/* We increment here since sctp_findassociation_ep_addr() wil
 6663|       |			 * do a decrement if it finds the stcb as long as the locked
 6664|       |			 * tcb (last argument) is NOT a TCB.. aka NULL.
 6665|       |			 */
 6666|      0|			net = NULL;
 6667|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 6668|      0|			stcb = sctp_findassociation_ep_addr(&inp, addr,
 6669|      0|			                                    &net, NULL, NULL);
 6670|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (6670:8): [True: 0, False: 0]
  ------------------
 6671|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 6672|      0|			}
 6673|      0|		}
 6674|       |
 6675|      0|		if ((stcb != NULL) && (net != NULL)) {
  ------------------
  |  Branch (6675:7): [True: 0, False: 0]
  |  Branch (6675:25): [True: 0, False: 0]
  ------------------
 6676|      0|			if (net != stcb->asoc.primary_destination) {
  ------------------
  |  Branch (6676:8): [True: 0, False: 0]
  ------------------
 6677|      0|				if ((net->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (6677:9): [True: 0, False: 0]
  ------------------
 6678|       |					/* Ok we need to set it */
 6679|      0|					if (sctp_set_primary_addr(stcb, (struct sockaddr *)NULL, net) == 0) {
  ------------------
  |  Branch (6679:10): [True: 0, False: 0]
  ------------------
 6680|      0|						if ((stcb->asoc.alternate) &&
  ------------------
  |  Branch (6680:11): [True: 0, False: 0]
  ------------------
 6681|      0|						    ((net->dest_state & SCTP_ADDR_PF) == 0) &&
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (6681:11): [True: 0, False: 0]
  ------------------
 6682|      0|						    (net->dest_state & SCTP_ADDR_REACHABLE)) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (6682:11): [True: 0, False: 0]
  ------------------
 6683|      0|							sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 6684|      0|							stcb->asoc.alternate = NULL;
 6685|      0|						}
 6686|      0|					} else {
 6687|      0|						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6688|      0|						error = EINVAL;
 6689|      0|					}
 6690|      0|				} else {
 6691|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6692|      0|					error = EINVAL;
 6693|      0|				}
 6694|      0|			}
 6695|      0|		} else {
 6696|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6697|      0|			error = EINVAL;
 6698|      0|		}
 6699|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (6699:7): [True: 0, False: 0]
  ------------------
 6700|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6701|      0|		}
 6702|      0|		break;
 6703|      0|	}
 6704|      0|	case SCTP_SET_DYNAMIC_PRIMARY:
  ------------------
  |  |  215|      0|#define SCTP_SET_DYNAMIC_PRIMARY        0x00002001
  ------------------
  |  Branch (6704:2): [True: 0, False: 206k]
  ------------------
 6705|      0|	{
 6706|      0|		union sctp_sockstore *ss;
 6707|       |#ifdef SCTP_MVRF
 6708|       |		int i, fnd = 0;
 6709|       |#endif
 6710|       |#if !defined(_WIN32) && !defined(__Userspace__)
 6711|       |#if defined(__APPLE__)
 6712|       |		struct proc *proc;
 6713|       |#endif
 6714|       |#if defined(__FreeBSD__)
 6715|       |		error = priv_check(curthread,
 6716|       |				   PRIV_NETINET_RESERVEDPORT);
 6717|       |#elif defined(__APPLE__)
 6718|       |		proc = (struct proc *)p;
 6719|       |		if (p) {
 6720|       |			error = suser(proc->p_ucred, &proc->p_acflag);
 6721|       |		} else {
 6722|       |			break;
 6723|       |		}
 6724|       |#else
 6725|       |		error = suser(p, 0);
 6726|       |#endif
 6727|       |		if (error)
 6728|       |			break;
 6729|       |#endif
 6730|       |
 6731|      0|		SCTP_CHECK_AND_CAST(ss, optval, union sctp_sockstore, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6732|       |		/* SUPER USER CHECK? */
 6733|       |#ifdef SCTP_MVRF
 6734|       |		for (i = 0; i < inp->num_vrfs; i++) {
 6735|       |			if (vrf_id == inp->m_vrf_ids[i]) {
 6736|       |				fnd = 1;
 6737|       |				break;
 6738|       |			}
 6739|       |		}
 6740|       |		if (!fnd) {
 6741|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6742|       |			error = EINVAL;
 6743|       |			break;
 6744|       |		}
 6745|       |#endif
 6746|      0|		error = sctp_dynamic_set_primary(&ss->sa, vrf_id);
 6747|      0|		break;
 6748|      0|	}
 6749|      0|	case SCTP_SET_PEER_PRIMARY_ADDR:
  ------------------
  |  |   90|      0|#define SCTP_SET_PEER_PRIMARY_ADDR	0x00000006
  ------------------
  |  Branch (6749:2): [True: 0, False: 206k]
  ------------------
 6750|      0|	{
 6751|      0|		struct sctp_setpeerprim *sspp;
 6752|      0|		struct sockaddr *addr;
 6753|      0|#if defined(INET) && defined(INET6)
 6754|      0|		struct sockaddr_in sin_store;
 6755|      0|#endif
 6756|       |
 6757|      0|		SCTP_CHECK_AND_CAST(sspp, optval, struct sctp_setpeerprim, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6758|      0|		SCTP_FIND_STCB(inp, stcb, sspp->sspp_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 6759|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (6759:7): [True: 0, False: 0]
  ------------------
 6760|      0|			struct sctp_ifa *ifa;
 6761|       |
 6762|      0|#if defined(INET) && defined(INET6)
 6763|      0|			if (sspp->sspp_addr.ss_family == AF_INET6) {
  ------------------
  |  Branch (6763:8): [True: 0, False: 0]
  ------------------
 6764|      0|				struct sockaddr_in6 *sin6;
 6765|       |
 6766|      0|				sin6 = (struct sockaddr_in6 *)&sspp->sspp_addr;
 6767|      0|				if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (6767:9): [True: 0, False: 0]
  ------------------
 6768|      0|					in6_sin6_2_sin(&sin_store, sin6);
 6769|      0|					addr = (struct sockaddr *)&sin_store;
 6770|      0|				} else {
 6771|      0|					addr = (struct sockaddr *)&sspp->sspp_addr;
 6772|      0|				}
 6773|      0|			} else {
 6774|      0|				addr = (struct sockaddr *)&sspp->sspp_addr;
 6775|      0|			}
 6776|       |#else
 6777|       |			addr = (struct sockaddr *)&sspp->sspp_addr;
 6778|       |#endif
 6779|      0|			ifa = sctp_find_ifa_by_addr(addr, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|      0|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 6780|      0|			if (ifa == NULL) {
  ------------------
  |  Branch (6780:8): [True: 0, False: 0]
  ------------------
 6781|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6782|      0|				error = EINVAL;
 6783|      0|				goto out_of_it;
 6784|      0|			}
 6785|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) == 0) {
  ------------------
  |  |  530|      0|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (6785:8): [True: 0, False: 0]
  ------------------
 6786|       |				/* Must validate the ifa found is in our ep */
 6787|      0|				struct sctp_laddr *laddr;
 6788|      0|				int found = 0;
 6789|       |
 6790|      0|				LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (6790:5): [True: 0, False: 0]
  ------------------
 6791|      0|					if (laddr->ifa == NULL) {
  ------------------
  |  Branch (6791:10): [True: 0, False: 0]
  ------------------
 6792|      0|						SCTPDBG(SCTP_DEBUG_OUTPUT1, "%s: NULL ifa\n",
 6793|      0|							__func__);
 6794|      0|						continue;
 6795|      0|					}
 6796|      0|					if ((sctp_is_addr_restricted(stcb, laddr->ifa)) &&
  ------------------
  |  Branch (6796:10): [True: 0, False: 0]
  ------------------
 6797|      0|					    (!sctp_is_addr_pending(stcb, laddr->ifa))) {
  ------------------
  |  Branch (6797:10): [True: 0, False: 0]
  ------------------
 6798|      0|						continue;
 6799|      0|					}
 6800|      0|					if (laddr->ifa == ifa) {
  ------------------
  |  Branch (6800:10): [True: 0, False: 0]
  ------------------
 6801|      0|						found = 1;
 6802|      0|						break;
 6803|      0|					}
 6804|      0|				}
 6805|      0|				if (!found) {
  ------------------
  |  Branch (6805:9): [True: 0, False: 0]
  ------------------
 6806|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6807|      0|					error = EINVAL;
 6808|      0|					goto out_of_it;
 6809|      0|				}
 6810|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6811|       |			} else {
 6812|       |				switch (addr->sa_family) {
 6813|       |#ifdef INET
 6814|       |				case AF_INET:
 6815|       |				{
 6816|       |					struct sockaddr_in *sin;
 6817|       |
 6818|       |					sin = (struct sockaddr_in *)addr;
 6819|       |					if (prison_check_ip4(inp->ip_inp.inp.inp_cred,
 6820|       |					                     &sin->sin_addr) != 0) {
 6821|       |						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6822|       |						error = EINVAL;
 6823|       |						goto out_of_it;
 6824|       |					}
 6825|       |					break;
 6826|       |				}
 6827|       |#endif
 6828|       |#ifdef INET6
 6829|       |				case AF_INET6:
 6830|       |				{
 6831|       |					struct sockaddr_in6 *sin6;
 6832|       |
 6833|       |					sin6 = (struct sockaddr_in6 *)addr;
 6834|       |					if (prison_check_ip6(inp->ip_inp.inp.inp_cred,
 6835|       |					                     &sin6->sin6_addr) != 0) {
 6836|       |						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6837|       |						error = EINVAL;
 6838|       |						goto out_of_it;
 6839|       |					}
 6840|       |					break;
 6841|       |				}
 6842|       |#endif
 6843|       |				default:
 6844|       |					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6845|       |					error = EINVAL;
 6846|       |					goto out_of_it;
 6847|       |				}
 6848|       |#endif
 6849|      0|			}
 6850|      0|			if (sctp_set_primary_ip_address_sa(stcb, addr) != 0) {
  ------------------
  |  Branch (6850:8): [True: 0, False: 0]
  ------------------
 6851|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6852|      0|				error = EINVAL;
 6853|      0|			}
 6854|      0|			sctp_chunk_output(inp, stcb,  SCTP_OUTPUT_FROM_SOCKOPT, SCTP_SO_LOCKED);
  ------------------
  |  |  378|      0|#define SCTP_OUTPUT_FROM_SOCKOPT        17
  ------------------
              			sctp_chunk_output(inp, stcb,  SCTP_OUTPUT_FROM_SOCKOPT, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 6855|      0|		out_of_it:
 6856|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6857|      0|		} else {
 6858|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6859|      0|			error = EINVAL;
 6860|      0|		}
 6861|      0|		break;
 6862|      0|	}
 6863|      0|	case SCTP_BINDX_ADD_ADDR:
  ------------------
  |  |  266|      0|#define SCTP_BINDX_ADD_ADDR		0x00008001
  ------------------
  |  Branch (6863:2): [True: 0, False: 206k]
  ------------------
 6864|      0|	{
 6865|      0|		struct sockaddr *sa;
 6866|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6867|       |		struct thread *td;
 6868|       |
 6869|       |		td = (struct thread *)p;
 6870|       |#endif
 6871|      0|		SCTP_CHECK_AND_CAST(sa, optval, struct sockaddr, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6872|      0|#ifdef INET
 6873|      0|		if (sa->sa_family == AF_INET) {
  ------------------
  |  Branch (6873:7): [True: 0, False: 0]
  ------------------
 6874|      0|			if (optsize < sizeof(struct sockaddr_in)) {
  ------------------
  |  Branch (6874:8): [True: 0, False: 0]
  ------------------
 6875|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6876|      0|				error = EINVAL;
 6877|      0|				break;
 6878|      0|			}
 6879|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6880|       |			if (td != NULL &&
 6881|       |			    (error = prison_local_ip4(td->td_ucred, &(((struct sockaddr_in *)sa)->sin_addr)))) {
 6882|       |				SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_USRREQ, error);
 6883|       |				break;
 6884|       |			}
 6885|       |#endif
 6886|      0|		} else
 6887|      0|#endif
 6888|      0|#ifdef INET6
 6889|      0|		if (sa->sa_family == AF_INET6) {
  ------------------
  |  Branch (6889:7): [True: 0, False: 0]
  ------------------
 6890|      0|			if (optsize < sizeof(struct sockaddr_in6)) {
  ------------------
  |  Branch (6890:8): [True: 0, False: 0]
  ------------------
 6891|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6892|      0|				error = EINVAL;
 6893|      0|				break;
 6894|      0|			}
 6895|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6896|       |			if (td != NULL &&
 6897|       |			    (error = prison_local_ip6(td->td_ucred,
 6898|       |			                              &(((struct sockaddr_in6 *)sa)->sin6_addr),
 6899|       |			                              (SCTP_IPV6_V6ONLY(inp) != 0))) != 0) {
 6900|       |				SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_USRREQ, error);
 6901|       |				break;
 6902|       |			}
 6903|       |#endif
 6904|      0|		} else
 6905|      0|#endif
 6906|      0|		{
 6907|      0|			error = EAFNOSUPPORT;
 6908|      0|			break;
 6909|      0|		}
 6910|      0|		sctp_bindx_add_address(so, inp, sa, vrf_id, &error, p);
 6911|      0|		break;
 6912|      0|	}
 6913|      0|	case SCTP_BINDX_REM_ADDR:
  ------------------
  |  |  267|      0|#define SCTP_BINDX_REM_ADDR		0x00008002
  ------------------
  |  Branch (6913:2): [True: 0, False: 206k]
  ------------------
 6914|      0|	{
 6915|      0|		struct sockaddr *sa;
 6916|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6917|       |		struct thread *td;
 6918|       |		td = (struct thread *)p;
 6919|       |
 6920|       |#endif
 6921|      0|		SCTP_CHECK_AND_CAST(sa, optval, struct sockaddr, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 6922|      0|#ifdef INET
 6923|      0|		if (sa->sa_family == AF_INET) {
  ------------------
  |  Branch (6923:7): [True: 0, False: 0]
  ------------------
 6924|      0|			if (optsize < sizeof(struct sockaddr_in)) {
  ------------------
  |  Branch (6924:8): [True: 0, False: 0]
  ------------------
 6925|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6926|      0|				error = EINVAL;
 6927|      0|				break;
 6928|      0|			}
 6929|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6930|       |			if (td != NULL &&
 6931|       |			    (error = prison_local_ip4(td->td_ucred, &(((struct sockaddr_in *)sa)->sin_addr)))) {
 6932|       |				SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_USRREQ, error);
 6933|       |				break;
 6934|       |			}
 6935|       |#endif
 6936|      0|		} else
 6937|      0|#endif
 6938|      0|#ifdef INET6
 6939|      0|		if (sa->sa_family == AF_INET6) {
  ------------------
  |  Branch (6939:7): [True: 0, False: 0]
  ------------------
 6940|      0|			if (optsize < sizeof(struct sockaddr_in6)) {
  ------------------
  |  Branch (6940:8): [True: 0, False: 0]
  ------------------
 6941|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6942|      0|				error = EINVAL;
 6943|      0|				break;
 6944|      0|			}
 6945|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6946|       |			if (td != NULL &&
 6947|       |			    (error = prison_local_ip6(td->td_ucred,
 6948|       |			                              &(((struct sockaddr_in6 *)sa)->sin6_addr),
 6949|       |			                              (SCTP_IPV6_V6ONLY(inp) != 0))) != 0) {
 6950|       |				SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_USRREQ, error);
 6951|       |				break;
 6952|       |			}
 6953|       |#endif
 6954|      0|		} else
 6955|      0|#endif
 6956|      0|		{
 6957|      0|			error = EAFNOSUPPORT;
 6958|      0|			break;
 6959|      0|		}
 6960|      0|		sctp_bindx_delete_address(inp, sa, vrf_id, &error);
 6961|      0|		break;
 6962|      0|	}
 6963|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6964|       |	case SCTP_LISTEN_FIX:
 6965|       |		/* only applies to one-to-many sockets */
 6966|       |		if (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) {
 6967|       |			/* make sure the ACCEPTCONN flag is OFF */
 6968|       |			so->so_options &= ~SO_ACCEPTCONN;
 6969|       |		} else {
 6970|       |			/* otherwise, not allowed */
 6971|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 6972|       |			error = EINVAL;
 6973|       |		}
 6974|       |		break;
 6975|       |#endif
 6976|   132k|	case SCTP_EVENT:
  ------------------
  |  |  122|   132k|#define SCTP_EVENT                      0x0000001e
  ------------------
  |  Branch (6976:2): [True: 132k, False: 74.2k]
  ------------------
 6977|   132k|	{
 6978|   132k|		struct sctp_event *event;
 6979|   132k|		uint32_t event_type;
 6980|       |
 6981|   132k|		SCTP_CHECK_AND_CAST(event, optval, struct sctp_event, optsize);
  ------------------
  |  | 2158|   132k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|   132k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 132k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|   132k|	} else { \
  |  | 2164|   132k|		destp = (type *)srcp; \
  |  | 2165|   132k|	} \
  |  | 2166|   132k|}
  ------------------
 6982|   132k|		SCTP_FIND_STCB(inp, stcb, event->se_assoc_id);
  ------------------
  |  | 2137|   132k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|   132k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|   132k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 132k, False: 0]
  |  |  ------------------
  |  | 2139|   132k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|   132k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|   132k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   132k|	do {                         \
  |  |  |  |  |  |  113|   132k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 132k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   132k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 132k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|   132k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|   132k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 132k]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|   132k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|   132k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   132k|	do {                         \
  |  |  |  |  |  |  113|   132k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 132k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   132k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 132k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|   132k|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|   132k|}
  ------------------
 6983|   132k|		switch (event->se_type) {
 6984|  10.1k|		case SCTP_ASSOC_CHANGE:
  ------------------
  |  |  553|  10.1k|#define SCTP_ASSOC_CHANGE                       0x0001
  ------------------
  |  Branch (6984:3): [True: 10.1k, False: 122k]
  ------------------
 6985|  10.1k|			event_type = SCTP_PCB_FLAGS_RECVASSOCEVNT;
  ------------------
  |  |  579|  10.1k|#define SCTP_PCB_FLAGS_RECVASSOCEVNT     0x0000000000000800
  ------------------
 6986|  10.1k|			break;
 6987|  10.1k|		case SCTP_PEER_ADDR_CHANGE:
  ------------------
  |  |  554|  10.1k|#define SCTP_PEER_ADDR_CHANGE                   0x0002
  ------------------
  |  Branch (6987:3): [True: 10.1k, False: 122k]
  ------------------
 6988|  10.1k|			event_type = SCTP_PCB_FLAGS_RECVPADDREVNT;
  ------------------
  |  |  580|  10.1k|#define SCTP_PCB_FLAGS_RECVPADDREVNT     0x0000000000001000
  ------------------
 6989|  10.1k|			break;
 6990|  10.1k|		case SCTP_REMOTE_ERROR:
  ------------------
  |  |  555|  10.1k|#define SCTP_REMOTE_ERROR                       0x0003
  ------------------
  |  Branch (6990:3): [True: 10.1k, False: 122k]
  ------------------
 6991|  10.1k|			event_type = SCTP_PCB_FLAGS_RECVPEERERR;
  ------------------
  |  |  581|  10.1k|#define SCTP_PCB_FLAGS_RECVPEERERR       0x0000000000002000
  ------------------
 6992|  10.1k|			break;
 6993|  10.1k|		case SCTP_SEND_FAILED:
  ------------------
  |  |  556|  10.1k|#define SCTP_SEND_FAILED                        0x0004
  ------------------
  |  Branch (6993:3): [True: 10.1k, False: 122k]
  ------------------
 6994|  10.1k|			event_type = SCTP_PCB_FLAGS_RECVSENDFAILEVNT;
  ------------------
  |  |  582|  10.1k|#define SCTP_PCB_FLAGS_RECVSENDFAILEVNT  0x0000000000004000 /* deprecated */
  ------------------
 6995|  10.1k|			break;
 6996|  10.1k|		case SCTP_SHUTDOWN_EVENT:
  ------------------
  |  |  557|  10.1k|#define SCTP_SHUTDOWN_EVENT                     0x0005
  ------------------
  |  Branch (6996:3): [True: 10.1k, False: 122k]
  ------------------
 6997|  10.1k|			event_type = SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT;
  ------------------
  |  |  583|  10.1k|#define SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT  0x0000000000008000
  ------------------
 6998|  10.1k|			break;
 6999|  10.1k|		case SCTP_ADAPTATION_INDICATION:
  ------------------
  |  |  558|  10.1k|#define SCTP_ADAPTATION_INDICATION              0x0006
  ------------------
  |  Branch (6999:3): [True: 10.1k, False: 122k]
  ------------------
 7000|  10.1k|			event_type = SCTP_PCB_FLAGS_ADAPTATIONEVNT;
  ------------------
  |  |  584|  10.1k|#define SCTP_PCB_FLAGS_ADAPTATIONEVNT    0x0000000000010000
  ------------------
 7001|  10.1k|			break;
 7002|  10.1k|		case SCTP_PARTIAL_DELIVERY_EVENT:
  ------------------
  |  |  561|  10.1k|#define SCTP_PARTIAL_DELIVERY_EVENT             0x0007
  ------------------
  |  Branch (7002:3): [True: 10.1k, False: 122k]
  ------------------
 7003|  10.1k|			event_type = SCTP_PCB_FLAGS_PDAPIEVNT;
  ------------------
  |  |  585|  10.1k|#define SCTP_PCB_FLAGS_PDAPIEVNT         0x0000000000020000
  ------------------
 7004|  10.1k|			break;
 7005|  10.1k|		case SCTP_AUTHENTICATION_EVENT:
  ------------------
  |  |  562|  10.1k|#define SCTP_AUTHENTICATION_EVENT               0x0008
  ------------------
  |  Branch (7005:3): [True: 10.1k, False: 122k]
  ------------------
 7006|  10.1k|			event_type = SCTP_PCB_FLAGS_AUTHEVNT;
  ------------------
  |  |  586|  10.1k|#define SCTP_PCB_FLAGS_AUTHEVNT          0x0000000000040000
  ------------------
 7007|  10.1k|			break;
 7008|  10.1k|		case SCTP_STREAM_RESET_EVENT:
  ------------------
  |  |  563|  10.1k|#define SCTP_STREAM_RESET_EVENT                 0x0009
  ------------------
  |  Branch (7008:3): [True: 10.1k, False: 122k]
  ------------------
 7009|  10.1k|			event_type = SCTP_PCB_FLAGS_STREAM_RESETEVNT;
  ------------------
  |  |  587|  10.1k|#define SCTP_PCB_FLAGS_STREAM_RESETEVNT  0x0000000000080000
  ------------------
 7010|  10.1k|			break;
 7011|  10.1k|		case SCTP_SENDER_DRY_EVENT:
  ------------------
  |  |  564|  10.1k|#define SCTP_SENDER_DRY_EVENT                   0x000a
  ------------------
  |  Branch (7011:3): [True: 10.1k, False: 122k]
  ------------------
 7012|  10.1k|			event_type = SCTP_PCB_FLAGS_DRYEVNT;
  ------------------
  |  |  593|  10.1k|#define SCTP_PCB_FLAGS_DRYEVNT           0x0000000004000000
  ------------------
 7013|  10.1k|			break;
 7014|      0|		case SCTP_NOTIFICATIONS_STOPPED_EVENT:
  ------------------
  |  |  565|      0|#define SCTP_NOTIFICATIONS_STOPPED_EVENT        0x000b /* we don't send this*/
  ------------------
  |  Branch (7014:3): [True: 0, False: 132k]
  ------------------
 7015|      0|			event_type = 0;
 7016|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOTSUP);
 7017|      0|			error = ENOTSUP;
 7018|      0|			break;
 7019|  10.1k|		case SCTP_ASSOC_RESET_EVENT:
  ------------------
  |  |  566|  10.1k|#define SCTP_ASSOC_RESET_EVENT                  0x000c
  ------------------
  |  Branch (7019:3): [True: 10.1k, False: 122k]
  ------------------
 7020|  10.1k|			event_type = SCTP_PCB_FLAGS_ASSOC_RESETEVNT;
  ------------------
  |  |  596|  10.1k|#define SCTP_PCB_FLAGS_ASSOC_RESETEVNT   0x0000000020000000
  ------------------
 7021|  10.1k|			break;
 7022|  10.1k|		case SCTP_STREAM_CHANGE_EVENT:
  ------------------
  |  |  567|  10.1k|#define SCTP_STREAM_CHANGE_EVENT                0x000d
  ------------------
  |  Branch (7022:3): [True: 10.1k, False: 122k]
  ------------------
 7023|  10.1k|			event_type = SCTP_PCB_FLAGS_STREAM_CHANGEEVNT;
  ------------------
  |  |  597|  10.1k|#define SCTP_PCB_FLAGS_STREAM_CHANGEEVNT 0x0000000040000000
  ------------------
 7024|  10.1k|			break;
 7025|  10.1k|		case SCTP_SEND_FAILED_EVENT:
  ------------------
  |  |  568|  10.1k|#define SCTP_SEND_FAILED_EVENT                  0x000e
  ------------------
  |  Branch (7025:3): [True: 10.1k, False: 122k]
  ------------------
 7026|  10.1k|			event_type = SCTP_PCB_FLAGS_RECVNSENDFAILEVNT;
  ------------------
  |  |  598|  10.1k|#define SCTP_PCB_FLAGS_RECVNSENDFAILEVNT 0x0000000080000000
  ------------------
 7027|  10.1k|			break;
 7028|      0|		default:
  ------------------
  |  Branch (7028:3): [True: 0, False: 132k]
  ------------------
 7029|      0|			event_type = 0;
 7030|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7031|      0|			error = EINVAL;
 7032|      0|			break;
 7033|   132k|		}
 7034|   132k|		if (event_type > 0) {
  ------------------
  |  Branch (7034:7): [True: 132k, False: 0]
  ------------------
 7035|   132k|			if (stcb) {
  ------------------
  |  Branch (7035:8): [True: 0, False: 132k]
  ------------------
 7036|      0|				if (event->se_on) {
  ------------------
  |  Branch (7036:9): [True: 0, False: 0]
  ------------------
 7037|      0|					sctp_stcb_feature_on(inp, stcb, event_type);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 7038|      0|					if (event_type == SCTP_PCB_FLAGS_DRYEVNT) {
  ------------------
  |  |  593|      0|#define SCTP_PCB_FLAGS_DRYEVNT           0x0000000004000000
  ------------------
  |  Branch (7038:10): [True: 0, False: 0]
  ------------------
 7039|      0|						if (TAILQ_EMPTY(&stcb->asoc.send_queue) &&
  ------------------
  |  Branch (7039:11): [True: 0, False: 0]
  ------------------
 7040|      0|						    TAILQ_EMPTY(&stcb->asoc.sent_queue) &&
  ------------------
  |  Branch (7040:11): [True: 0, False: 0]
  ------------------
 7041|      0|						    (stcb->asoc.stream_queue_cnt == 0)) {
  ------------------
  |  Branch (7041:11): [True: 0, False: 0]
  ------------------
 7042|      0|							sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb,  0, NULL, SCTP_SO_LOCKED);
  ------------------
  |  |  730|      0|#define SCTP_NOTIFY_SENDER_DRY                  28
  ------------------
              							sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb,  0, NULL, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7043|      0|						}
 7044|      0|					}
 7045|      0|				} else {
 7046|      0|					sctp_stcb_feature_off(inp, stcb, event_type);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 7047|      0|				}
 7048|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7049|   132k|			} else {
 7050|       |				/*
 7051|       |				 * We don't want to send up a storm of events,
 7052|       |				 * so return an error for sender dry events
 7053|       |				 */
 7054|   132k|				if ((event_type == SCTP_PCB_FLAGS_DRYEVNT) &&
  ------------------
  |  |  593|   132k|#define SCTP_PCB_FLAGS_DRYEVNT           0x0000000004000000
  ------------------
  |  Branch (7054:9): [True: 10.1k, False: 122k]
  ------------------
 7055|  10.1k|				    (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|  10.1k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7055:9): [True: 0, False: 10.1k]
  ------------------
 7056|      0|				    ((event->se_assoc_id == SCTP_ALL_ASSOC) ||
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7056:10): [True: 0, False: 0]
  ------------------
 7057|      0|				     (event->se_assoc_id == SCTP_CURRENT_ASSOC))) {
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (7057:10): [True: 0, False: 0]
  ------------------
 7058|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOTSUP);
 7059|      0|					error = ENOTSUP;
 7060|      0|					break;
 7061|      0|				}
 7062|   132k|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|   132k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7062:9): [True: 132k, False: 0]
  ------------------
 7063|      0|				    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7063:9): [True: 0, False: 0]
  ------------------
 7064|      0|				    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7064:10): [True: 0, False: 0]
  ------------------
 7065|      0|				     ((event->se_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7065:11): [True: 0, False: 0]
  ------------------
 7066|   132k|				      (event->se_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7066:11): [True: 0, False: 0]
  ------------------
 7067|   132k|					SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|   132k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   132k|	do {                         \
  |  |  |  |  113|   132k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 132k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   132k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 132k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7068|   132k|					if (event->se_on) {
  ------------------
  |  Branch (7068:10): [True: 132k, False: 0]
  ------------------
 7069|   132k|						sctp_feature_on(inp, event_type);
  ------------------
  |  |   50|   132k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 7070|   132k|					} else {
 7071|      0|						sctp_feature_off(inp, event_type);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 7072|      0|					}
 7073|   132k|					SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|   132k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   132k|	do {                         \
  |  |  |  |  113|   132k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 132k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   132k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 132k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7074|   132k|				}
 7075|   132k|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|   132k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7075:9): [True: 0, False: 132k]
  ------------------
 7076|      0|				    ((event->se_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (7076:10): [True: 0, False: 0]
  ------------------
 7077|      0|				     (event->se_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7077:10): [True: 0, False: 0]
  ------------------
 7078|      0|					SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7079|      0|					LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (7079:6): [True: 0, False: 0]
  ------------------
 7080|      0|						SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7081|      0|						if (event->se_on) {
  ------------------
  |  Branch (7081:11): [True: 0, False: 0]
  ------------------
 7082|      0|							sctp_stcb_feature_on(inp, stcb, event_type);
  ------------------
  |  |   55|      0|#define sctp_stcb_feature_on(inp, stcb, feature) {\
  |  |   56|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (56:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|		stcb->asoc.sctp_features |= feature; \
  |  |   58|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (58:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   59|      0|		inp->sctp_features |= feature; \
  |  |   60|      0|	} \
  |  |   61|      0|}
  ------------------
 7083|      0|						} else {
 7084|      0|							sctp_stcb_feature_off(inp, stcb, event_type);
  ------------------
  |  |   62|      0|#define sctp_stcb_feature_off(inp, stcb, feature) {\
  |  |   63|      0|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (63:6): [True: 0, False: 0]
  |  |  ------------------
  |  |   64|      0|		stcb->asoc.sctp_features &= ~feature; \
  |  |   65|      0|	} else if (inp) { \
  |  |  ------------------
  |  |  |  Branch (65:13): [True: 0, False: 0]
  |  |  ------------------
  |  |   66|      0|		inp->sctp_features &= ~feature; \
  |  |   67|      0|	} \
  |  |   68|      0|}
  ------------------
 7085|      0|						}
 7086|      0|						SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7087|      0|					}
 7088|      0|					SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7089|      0|				}
 7090|   132k|			}
 7091|   132k|		} else {
 7092|      0|			if (stcb) {
  ------------------
  |  Branch (7092:8): [True: 0, False: 0]
  ------------------
 7093|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7094|      0|			}
 7095|      0|		}
 7096|   132k|		break;
 7097|   132k|	}
 7098|   132k|	case SCTP_RECVRCVINFO:
  ------------------
  |  |  123|  10.1k|#define SCTP_RECVRCVINFO                0x0000001f
  ------------------
  |  Branch (7098:2): [True: 10.1k, False: 196k]
  ------------------
 7099|  10.1k|	{
 7100|  10.1k|		int *onoff;
 7101|       |
 7102|  10.1k|		SCTP_CHECK_AND_CAST(onoff, optval, int, optsize);
  ------------------
  |  | 2158|  10.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  10.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  10.1k|	} else { \
  |  | 2164|  10.1k|		destp = (type *)srcp; \
  |  | 2165|  10.1k|	} \
  |  | 2166|  10.1k|}
  ------------------
 7103|  10.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7104|  10.1k|		if (*onoff != 0) {
  ------------------
  |  Branch (7104:7): [True: 10.1k, False: 0]
  ------------------
 7105|  10.1k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVRCVINFO);
  ------------------
  |  |   50|  10.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 7106|  10.1k|		} else {
 7107|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVRCVINFO);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 7108|      0|		}
 7109|  10.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7110|  10.1k|		break;
 7111|  10.1k|	}
 7112|  10.1k|	case SCTP_RECVNXTINFO:
  ------------------
  |  |  124|  10.1k|#define SCTP_RECVNXTINFO                0x00000020
  ------------------
  |  Branch (7112:2): [True: 10.1k, False: 196k]
  ------------------
 7113|  10.1k|	{
 7114|  10.1k|		int *onoff;
 7115|       |
 7116|  10.1k|		SCTP_CHECK_AND_CAST(onoff, optval, int, optsize);
  ------------------
  |  | 2158|  10.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  10.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 10.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  10.1k|	} else { \
  |  | 2164|  10.1k|		destp = (type *)srcp; \
  |  | 2165|  10.1k|	} \
  |  | 2166|  10.1k|}
  ------------------
 7117|  10.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7118|  10.1k|		if (*onoff != 0) {
  ------------------
  |  Branch (7118:7): [True: 10.1k, False: 0]
  ------------------
 7119|  10.1k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO);
  ------------------
  |  |   50|  10.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 7120|  10.1k|		} else {
 7121|      0|			sctp_feature_off(inp, SCTP_PCB_FLAGS_RECVNXTINFO);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 7122|      0|		}
 7123|  10.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7124|  10.1k|		break;
 7125|  10.1k|	}
 7126|  10.1k|	case SCTP_DEFAULT_SNDINFO:
  ------------------
  |  |  125|      0|#define SCTP_DEFAULT_SNDINFO            0x00000021
  ------------------
  |  Branch (7126:2): [True: 0, False: 206k]
  ------------------
 7127|      0|	{
 7128|      0|		struct sctp_sndinfo *info;
 7129|      0|		uint16_t policy;
 7130|       |
 7131|      0|		SCTP_CHECK_AND_CAST(info, optval, struct sctp_sndinfo, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7132|      0|		SCTP_FIND_STCB(inp, stcb, info->snd_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7133|       |
 7134|      0|		if (stcb) {
  ------------------
  |  Branch (7134:7): [True: 0, False: 0]
  ------------------
 7135|      0|			if (info->snd_sid < stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (7135:8): [True: 0, False: 0]
  ------------------
 7136|      0|				stcb->asoc.def_send.sinfo_stream = info->snd_sid;
 7137|      0|				policy = PR_SCTP_POLICY(stcb->asoc.def_send.sinfo_flags);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
 7138|      0|				stcb->asoc.def_send.sinfo_flags = info->snd_flags;
 7139|      0|				stcb->asoc.def_send.sinfo_flags |= policy;
 7140|      0|				stcb->asoc.def_send.sinfo_ppid = info->snd_ppid;
 7141|      0|				stcb->asoc.def_send.sinfo_context = info->snd_context;
 7142|      0|			} else {
 7143|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7144|      0|				error = EINVAL;
 7145|      0|			}
 7146|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7147|      0|		} else {
 7148|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7148:8): [True: 0, False: 0]
  ------------------
 7149|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7149:8): [True: 0, False: 0]
  ------------------
 7150|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7150:9): [True: 0, False: 0]
  ------------------
 7151|      0|			     ((info->snd_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7151:10): [True: 0, False: 0]
  ------------------
 7152|      0|			      (info->snd_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7152:10): [True: 0, False: 0]
  ------------------
 7153|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7154|      0|				inp->def_send.sinfo_stream = info->snd_sid;
 7155|      0|				policy = PR_SCTP_POLICY(inp->def_send.sinfo_flags);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
 7156|      0|				inp->def_send.sinfo_flags = info->snd_flags;
 7157|      0|				inp->def_send.sinfo_flags |= policy;
 7158|      0|				inp->def_send.sinfo_ppid = info->snd_ppid;
 7159|      0|				inp->def_send.sinfo_context = info->snd_context;
 7160|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7161|      0|			}
 7162|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7162:8): [True: 0, False: 0]
  ------------------
 7163|      0|			    ((info->snd_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (7163:9): [True: 0, False: 0]
  ------------------
 7164|      0|			     (info->snd_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7164:9): [True: 0, False: 0]
  ------------------
 7165|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7166|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (7166:5): [True: 0, False: 0]
  ------------------
 7167|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7168|      0|					if (info->snd_sid < stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (7168:10): [True: 0, False: 0]
  ------------------
 7169|      0|						stcb->asoc.def_send.sinfo_stream = info->snd_sid;
 7170|      0|						policy = PR_SCTP_POLICY(stcb->asoc.def_send.sinfo_flags);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
 7171|      0|						stcb->asoc.def_send.sinfo_flags = info->snd_flags;
 7172|      0|						stcb->asoc.def_send.sinfo_flags |= policy;
 7173|      0|						stcb->asoc.def_send.sinfo_ppid = info->snd_ppid;
 7174|      0|						stcb->asoc.def_send.sinfo_context = info->snd_context;
 7175|      0|					}
 7176|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7177|      0|				}
 7178|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7179|      0|			}
 7180|      0|		}
 7181|      0|		break;
 7182|      0|	}
 7183|      0|	case SCTP_DEFAULT_PRINFO:
  ------------------
  |  |  126|      0|#define SCTP_DEFAULT_PRINFO             0x00000022
  ------------------
  |  Branch (7183:2): [True: 0, False: 206k]
  ------------------
 7184|      0|	{
 7185|      0|		struct sctp_default_prinfo *info;
 7186|       |
 7187|      0|		SCTP_CHECK_AND_CAST(info, optval, struct sctp_default_prinfo, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7188|      0|		SCTP_FIND_STCB(inp, stcb, info->pr_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7189|       |
 7190|      0|		if (info->pr_policy > SCTP_PR_SCTP_MAX) {
  ------------------
  |  |  277|      0|#define SCTP_PR_SCTP_MAX  SCTP_PR_SCTP_RTX
  |  |  ------------------
  |  |  |  |  276|      0|#define SCTP_PR_SCTP_RTX  0x0003 /* Number of retransmissions based PR-SCTP */
  |  |  ------------------
  ------------------
  |  Branch (7190:7): [True: 0, False: 0]
  ------------------
 7191|      0|			if (stcb) {
  ------------------
  |  Branch (7191:8): [True: 0, False: 0]
  ------------------
 7192|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7193|      0|			}
 7194|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7195|      0|			error = EINVAL;
 7196|      0|			break;
 7197|      0|		}
 7198|      0|		if (stcb) {
  ------------------
  |  Branch (7198:7): [True: 0, False: 0]
  ------------------
 7199|      0|			stcb->asoc.def_send.sinfo_flags &= 0xfff0;
 7200|      0|			stcb->asoc.def_send.sinfo_flags |= info->pr_policy;
 7201|      0|			stcb->asoc.def_send.sinfo_timetolive = info->pr_value;
 7202|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7203|      0|		} else {
 7204|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7204:8): [True: 0, False: 0]
  ------------------
 7205|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7205:8): [True: 0, False: 0]
  ------------------
 7206|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7206:9): [True: 0, False: 0]
  ------------------
 7207|      0|			     ((info->pr_assoc_id == SCTP_FUTURE_ASSOC) ||
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7207:10): [True: 0, False: 0]
  ------------------
 7208|      0|			      (info->pr_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7208:10): [True: 0, False: 0]
  ------------------
 7209|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7210|      0|				inp->def_send.sinfo_flags &= 0xfff0;
 7211|      0|				inp->def_send.sinfo_flags |= info->pr_policy;
 7212|      0|				inp->def_send.sinfo_timetolive = info->pr_value;
 7213|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7214|      0|			}
 7215|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7215:8): [True: 0, False: 0]
  ------------------
 7216|      0|			    ((info->pr_assoc_id == SCTP_CURRENT_ASSOC) ||
  ------------------
  |  |   64|      0|#define SCTP_CURRENT_ASSOC 1
  ------------------
  |  Branch (7216:9): [True: 0, False: 0]
  ------------------
 7217|      0|			     (info->pr_assoc_id == SCTP_ALL_ASSOC))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7217:9): [True: 0, False: 0]
  ------------------
 7218|      0|				SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7219|      0|				LIST_FOREACH(stcb, &inp->sctp_asoc_list, sctp_tcblist) {
  ------------------
  |  Branch (7219:5): [True: 0, False: 0]
  ------------------
 7220|      0|					SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7221|      0|					stcb->asoc.def_send.sinfo_flags &= 0xfff0;
 7222|      0|					stcb->asoc.def_send.sinfo_flags |= info->pr_policy;
 7223|      0|					stcb->asoc.def_send.sinfo_timetolive = info->pr_value;
 7224|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7225|      0|				}
 7226|      0|				SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7227|      0|			}
 7228|      0|		}
 7229|      0|		break;
 7230|      0|	}
 7231|      0|	case SCTP_PEER_ADDR_THLDS:
  ------------------
  |  |  127|      0|#define SCTP_PEER_ADDR_THLDS            0x00000023
  ------------------
  |  Branch (7231:2): [True: 0, False: 206k]
  ------------------
 7232|       |		/* Applies to the specific association */
 7233|      0|	{
 7234|      0|		struct sctp_paddrthlds *thlds;
 7235|      0|		struct sctp_nets *net;
 7236|      0|		struct sockaddr *addr;
 7237|      0|#if defined(INET) && defined(INET6)
 7238|      0|		struct sockaddr_in sin_store;
 7239|      0|#endif
 7240|       |
 7241|      0|		SCTP_CHECK_AND_CAST(thlds, optval, struct sctp_paddrthlds, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7242|      0|		SCTP_FIND_STCB(inp, stcb, thlds->spt_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7243|       |
 7244|      0|#if defined(INET) && defined(INET6)
 7245|      0|		if (thlds->spt_address.ss_family == AF_INET6) {
  ------------------
  |  Branch (7245:7): [True: 0, False: 0]
  ------------------
 7246|      0|			struct sockaddr_in6 *sin6;
 7247|       |
 7248|      0|			sin6 = (struct sockaddr_in6 *)&thlds->spt_address;
 7249|      0|			if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (7249:8): [True: 0, False: 0]
  ------------------
 7250|      0|				in6_sin6_2_sin(&sin_store, sin6);
 7251|      0|				addr = (struct sockaddr *)&sin_store;
 7252|      0|			} else {
 7253|      0|				addr = (struct sockaddr *)&thlds->spt_address;
 7254|      0|			}
 7255|      0|		} else {
 7256|      0|			addr = (struct sockaddr *)&thlds->spt_address;
 7257|      0|		}
 7258|       |#else
 7259|       |		addr = (struct sockaddr *)&thlds->spt_address;
 7260|       |#endif
 7261|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (7261:7): [True: 0, False: 0]
  ------------------
 7262|      0|			net = sctp_findnet(stcb, addr);
 7263|      0|		} else {
 7264|       |			/* We increment here since sctp_findassociation_ep_addr() wil
 7265|       |			 * do a decrement if it finds the stcb as long as the locked
 7266|       |			 * tcb (last argument) is NOT a TCB.. aka NULL.
 7267|       |			 */
 7268|      0|			net = NULL;
 7269|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 7270|      0|			stcb = sctp_findassociation_ep_addr(&inp, addr,
 7271|      0|			                                    &net, NULL, NULL);
 7272|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (7272:8): [True: 0, False: 0]
  ------------------
 7273|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 7274|      0|			}
 7275|      0|		}
 7276|      0|		if ((stcb != NULL) && (net == NULL)) {
  ------------------
  |  Branch (7276:7): [True: 0, False: 0]
  |  Branch (7276:25): [True: 0, False: 0]
  ------------------
 7277|      0|#ifdef INET
 7278|      0|			if (addr->sa_family == AF_INET) {
  ------------------
  |  Branch (7278:8): [True: 0, False: 0]
  ------------------
 7279|      0|				struct sockaddr_in *sin;
 7280|       |
 7281|      0|				sin = (struct sockaddr_in *)addr;
 7282|      0|				if (sin->sin_addr.s_addr != INADDR_ANY) {
  ------------------
  |  Branch (7282:9): [True: 0, False: 0]
  ------------------
 7283|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7284|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7285|      0|					error = EINVAL;
 7286|      0|					break;
 7287|      0|				}
 7288|      0|			} else
 7289|      0|#endif
 7290|      0|#ifdef INET6
 7291|      0|			if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (7291:8): [True: 0, False: 0]
  ------------------
 7292|      0|				struct sockaddr_in6 *sin6;
 7293|       |
 7294|      0|				sin6 = (struct sockaddr_in6 *)addr;
 7295|      0|				if (!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (7295:9): [True: 0, False: 0]
  ------------------
 7296|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7297|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7298|      0|					error = EINVAL;
 7299|      0|					break;
 7300|      0|				}
 7301|      0|			} else
 7302|      0|#endif
 7303|      0|#if defined(__Userspace__)
 7304|      0|			if (addr->sa_family == AF_CONN) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (7304:8): [True: 0, False: 0]
  ------------------
 7305|      0|				struct sockaddr_conn *sconn;
 7306|       |
 7307|      0|				sconn = (struct sockaddr_conn *)addr;
 7308|      0|				if (sconn->sconn_addr != NULL) {
  ------------------
  |  Branch (7308:9): [True: 0, False: 0]
  ------------------
 7309|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7310|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7311|      0|					error = EINVAL;
 7312|      0|					break;
 7313|      0|				}
 7314|      0|			} else
 7315|      0|#endif
 7316|      0|			{
 7317|      0|				error = EAFNOSUPPORT;
 7318|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7319|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, error);
 7320|      0|				break;
 7321|      0|			}
 7322|      0|		}
 7323|      0|		if (thlds->spt_pathcpthld != 0xffff) {
  ------------------
  |  Branch (7323:7): [True: 0, False: 0]
  ------------------
 7324|      0|			if (stcb != NULL) {
  ------------------
  |  Branch (7324:8): [True: 0, False: 0]
  ------------------
 7325|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7326|      0|			}
 7327|      0|			error = EINVAL;
 7328|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, error);
 7329|      0|			break;
 7330|      0|		}
 7331|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (7331:7): [True: 0, False: 0]
  ------------------
 7332|      0|			if (net != NULL) {
  ------------------
  |  Branch (7332:8): [True: 0, False: 0]
  ------------------
 7333|      0|				net->failure_threshold = thlds->spt_pathmaxrxt;
 7334|      0|				net->pf_threshold = thlds->spt_pathpfthld;
 7335|      0|				if (net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (7335:9): [True: 0, False: 0]
  ------------------
 7336|      0|					if ((net->error_count > net->failure_threshold) ||
  ------------------
  |  Branch (7336:10): [True: 0, False: 0]
  ------------------
 7337|      0|					    (net->error_count <= net->pf_threshold)) {
  ------------------
  |  Branch (7337:10): [True: 0, False: 0]
  ------------------
 7338|      0|						net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 7339|      0|					}
 7340|      0|				} else {
 7341|      0|					if ((net->error_count > net->pf_threshold) &&
  ------------------
  |  Branch (7341:10): [True: 0, False: 0]
  ------------------
 7342|      0|					    (net->error_count <= net->failure_threshold)) {
  ------------------
  |  Branch (7342:10): [True: 0, False: 0]
  ------------------
 7343|      0|						net->dest_state |= SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 7344|      0|						sctp_send_hb(stcb, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7345|      0|						sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 7346|      0|						                stcb->sctp_ep, stcb, net,
 7347|      0|						                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_17);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              						                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_17);
  ------------------
  |  |  785|      0|#define SCTP_LOC_17 0x00000011
  ------------------
 7348|      0|						sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 7349|      0|					}
 7350|      0|				}
 7351|      0|				if (net->dest_state & SCTP_ADDR_REACHABLE) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (7351:9): [True: 0, False: 0]
  ------------------
 7352|      0|					if (net->error_count > net->failure_threshold) {
  ------------------
  |  Branch (7352:10): [True: 0, False: 0]
  ------------------
 7353|      0|						net->dest_state &= ~SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 7354|      0|						sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
              						sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7355|      0|					}
 7356|      0|				} else {
 7357|      0|					if (net->error_count <= net->failure_threshold) {
  ------------------
  |  Branch (7357:10): [True: 0, False: 0]
  ------------------
 7358|      0|						net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 7359|      0|						sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
              						sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7360|      0|					}
 7361|      0|				}
 7362|      0|			} else {
 7363|      0|				TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (7363:5): [True: 0, False: 0]
  ------------------
 7364|      0|					net->failure_threshold = thlds->spt_pathmaxrxt;
 7365|      0|					net->pf_threshold = thlds->spt_pathpfthld;
 7366|      0|					if (net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (7366:10): [True: 0, False: 0]
  ------------------
 7367|      0|						if ((net->error_count > net->failure_threshold) ||
  ------------------
  |  Branch (7367:11): [True: 0, False: 0]
  ------------------
 7368|      0|						    (net->error_count <= net->pf_threshold)) {
  ------------------
  |  Branch (7368:11): [True: 0, False: 0]
  ------------------
 7369|      0|							net->dest_state &= ~SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 7370|      0|						}
 7371|      0|					} else {
 7372|      0|						if ((net->error_count > net->pf_threshold) &&
  ------------------
  |  Branch (7372:11): [True: 0, False: 0]
  ------------------
 7373|      0|						    (net->error_count <= net->failure_threshold)) {
  ------------------
  |  Branch (7373:11): [True: 0, False: 0]
  ------------------
 7374|      0|							net->dest_state |= SCTP_ADDR_PF;
  ------------------
  |  |  490|      0|#define SCTP_ADDR_PF                    0x800
  ------------------
 7375|      0|							sctp_send_hb(stcb, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7376|      0|							sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 7377|      0|							                stcb->sctp_ep, stcb, net,
 7378|      0|							                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_18);
  ------------------
  |  |  759|      0|#define SCTP_FROM_SCTP_USRREQ       0x50000000
  ------------------
              							                SCTP_FROM_SCTP_USRREQ + SCTP_LOC_18);
  ------------------
  |  |  786|      0|#define SCTP_LOC_18 0x00000012
  ------------------
 7379|      0|							sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 7380|      0|						}
 7381|      0|					}
 7382|      0|					if (net->dest_state & SCTP_ADDR_REACHABLE) {
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (7382:10): [True: 0, False: 0]
  ------------------
 7383|      0|						if (net->error_count > net->failure_threshold) {
  ------------------
  |  Branch (7383:11): [True: 0, False: 0]
  ------------------
 7384|      0|							net->dest_state &= ~SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 7385|      0|							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
              							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7386|      0|						}
 7387|      0|					} else {
 7388|      0|						if (net->error_count <= net->failure_threshold) {
  ------------------
  |  Branch (7388:11): [True: 0, False: 0]
  ------------------
 7389|      0|							net->dest_state |= SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 7390|      0|							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
              							sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 7391|      0|						}
 7392|      0|					}
 7393|      0|				}
 7394|      0|				stcb->asoc.def_net_failure = thlds->spt_pathmaxrxt;
 7395|      0|				stcb->asoc.def_net_pf_threshold = thlds->spt_pathpfthld;
 7396|      0|			}
 7397|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7398|      0|		} else {
 7399|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7399:8): [True: 0, False: 0]
  ------------------
 7400|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7400:8): [True: 0, False: 0]
  ------------------
 7401|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7401:9): [True: 0, False: 0]
  ------------------
 7402|      0|			     (thlds->spt_assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7402:9): [True: 0, False: 0]
  ------------------
 7403|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7404|      0|				inp->sctp_ep.def_net_failure = thlds->spt_pathmaxrxt;
 7405|      0|				inp->sctp_ep.def_net_pf_threshold = thlds->spt_pathpfthld;
 7406|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7407|      0|			} else {
 7408|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7409|      0|				error = EINVAL;
 7410|      0|			}
 7411|      0|		}
 7412|      0|		break;
 7413|      0|	}
 7414|      0|	case SCTP_REMOTE_UDP_ENCAPS_PORT:
  ------------------
  |  |  128|      0|#define SCTP_REMOTE_UDP_ENCAPS_PORT     0x00000024
  ------------------
  |  Branch (7414:2): [True: 0, False: 206k]
  ------------------
 7415|      0|	{
 7416|      0|		struct sctp_udpencaps *encaps;
 7417|      0|		struct sctp_nets *net;
 7418|      0|		struct sockaddr *addr;
 7419|      0|#if defined(INET) && defined(INET6)
 7420|      0|		struct sockaddr_in sin_store;
 7421|      0|#endif
 7422|       |
 7423|      0|		SCTP_CHECK_AND_CAST(encaps, optval, struct sctp_udpencaps, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7424|      0|		SCTP_FIND_STCB(inp, stcb, encaps->sue_assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7425|       |
 7426|      0|#if defined(INET) && defined(INET6)
 7427|      0|		if (encaps->sue_address.ss_family == AF_INET6) {
  ------------------
  |  Branch (7427:7): [True: 0, False: 0]
  ------------------
 7428|      0|			struct sockaddr_in6 *sin6;
 7429|       |
 7430|      0|			sin6 = (struct sockaddr_in6 *)&encaps->sue_address;
 7431|      0|			if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (7431:8): [True: 0, False: 0]
  ------------------
 7432|      0|				in6_sin6_2_sin(&sin_store, sin6);
 7433|      0|				addr = (struct sockaddr *)&sin_store;
 7434|      0|			} else {
 7435|      0|				addr = (struct sockaddr *)&encaps->sue_address;
 7436|      0|			}
 7437|      0|		} else {
 7438|      0|			addr = (struct sockaddr *)&encaps->sue_address;
 7439|      0|		}
 7440|       |#else
 7441|       |		addr = (struct sockaddr *)&encaps->sue_address;
 7442|       |#endif
 7443|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (7443:7): [True: 0, False: 0]
  ------------------
 7444|      0|			net = sctp_findnet(stcb, addr);
 7445|      0|		} else {
 7446|       |			/* We increment here since sctp_findassociation_ep_addr() wil
 7447|       |			 * do a decrement if it finds the stcb as long as the locked
 7448|       |			 * tcb (last argument) is NOT a TCB.. aka NULL.
 7449|       |			 */
 7450|      0|			net = NULL;
 7451|      0|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|      0|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 7452|      0|			stcb = sctp_findassociation_ep_addr(&inp, addr, &net, NULL, NULL);
 7453|      0|			if (stcb == NULL) {
  ------------------
  |  Branch (7453:8): [True: 0, False: 0]
  ------------------
 7454|      0|				SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|      0|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 7455|      0|			}
 7456|      0|		}
 7457|      0|		if ((stcb != NULL) && (net == NULL)) {
  ------------------
  |  Branch (7457:7): [True: 0, False: 0]
  |  Branch (7457:25): [True: 0, False: 0]
  ------------------
 7458|      0|#ifdef INET
 7459|      0|			if (addr->sa_family == AF_INET) {
  ------------------
  |  Branch (7459:8): [True: 0, False: 0]
  ------------------
 7460|      0|				struct sockaddr_in *sin;
 7461|       |
 7462|      0|				sin = (struct sockaddr_in *)addr;
 7463|      0|				if (sin->sin_addr.s_addr != INADDR_ANY) {
  ------------------
  |  Branch (7463:9): [True: 0, False: 0]
  ------------------
 7464|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7465|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7466|      0|					error = EINVAL;
 7467|      0|					break;
 7468|      0|				}
 7469|      0|			} else
 7470|      0|#endif
 7471|      0|#ifdef INET6
 7472|      0|			if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (7472:8): [True: 0, False: 0]
  ------------------
 7473|      0|				struct sockaddr_in6 *sin6;
 7474|       |
 7475|      0|				sin6 = (struct sockaddr_in6 *)addr;
 7476|      0|				if (!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (7476:9): [True: 0, False: 0]
  ------------------
 7477|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7478|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7479|      0|					error = EINVAL;
 7480|      0|					break;
 7481|      0|				}
 7482|      0|			} else
 7483|      0|#endif
 7484|      0|#if defined(__Userspace__)
 7485|      0|			if (addr->sa_family == AF_CONN) {
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (7485:8): [True: 0, False: 0]
  ------------------
 7486|      0|				struct sockaddr_conn *sconn;
 7487|       |
 7488|      0|				sconn = (struct sockaddr_conn *)addr;
 7489|      0|				if (sconn->sconn_addr != NULL) {
  ------------------
  |  Branch (7489:9): [True: 0, False: 0]
  ------------------
 7490|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7491|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7492|      0|					error = EINVAL;
 7493|      0|					break;
 7494|      0|				}
 7495|      0|			} else
 7496|      0|#endif
 7497|      0|			{
 7498|      0|					error = EAFNOSUPPORT;
 7499|      0|					SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7500|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, error);
 7501|      0|					break;
 7502|      0|				}
 7503|      0|		}
 7504|       |
 7505|      0|		if (stcb != NULL) {
  ------------------
  |  Branch (7505:7): [True: 0, False: 0]
  ------------------
 7506|      0|			if (net != NULL) {
  ------------------
  |  Branch (7506:8): [True: 0, False: 0]
  ------------------
 7507|      0|				net->port = encaps->sue_port;
 7508|      0|			} else {
 7509|      0|				stcb->asoc.port = encaps->sue_port;
 7510|      0|			}
 7511|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7512|      0|		} else {
 7513|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7513:8): [True: 0, False: 0]
  ------------------
 7514|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7514:8): [True: 0, False: 0]
  ------------------
 7515|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7515:9): [True: 0, False: 0]
  ------------------
 7516|      0|			     (encaps->sue_assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7516:9): [True: 0, False: 0]
  ------------------
 7517|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7518|      0|				inp->sctp_ep.port = encaps->sue_port;
 7519|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7520|      0|			} else {
 7521|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7522|      0|				error = EINVAL;
 7523|      0|			}
 7524|      0|		}
 7525|      0|		break;
 7526|      0|	}
 7527|      0|	case SCTP_ECN_SUPPORTED:
  ------------------
  |  |  129|      0|#define SCTP_ECN_SUPPORTED              0x00000025
  ------------------
  |  Branch (7527:2): [True: 0, False: 206k]
  ------------------
 7528|      0|	{
 7529|      0|		struct sctp_assoc_value *av;
 7530|       |
 7531|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7532|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7533|       |
 7534|      0|		if (stcb) {
  ------------------
  |  Branch (7534:7): [True: 0, False: 0]
  ------------------
 7535|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7536|      0|			error = EINVAL;
 7537|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7538|      0|		} else {
 7539|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7539:8): [True: 0, False: 0]
  ------------------
 7540|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7540:8): [True: 0, False: 0]
  ------------------
 7541|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7541:9): [True: 0, False: 0]
  ------------------
 7542|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7542:9): [True: 0, False: 0]
  ------------------
 7543|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7544|      0|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (7544:9): [True: 0, False: 0]
  ------------------
 7545|      0|					inp->ecn_supported = 0;
 7546|      0|				} else {
 7547|      0|					inp->ecn_supported = 1;
 7548|      0|				}
 7549|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7550|      0|			} else {
 7551|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7552|      0|				error = EINVAL;
 7553|      0|			}
 7554|      0|		}
 7555|      0|		break;
 7556|      0|	}
 7557|      0|	case SCTP_PR_SUPPORTED:
  ------------------
  |  |  130|      0|#define SCTP_PR_SUPPORTED               0x00000026
  ------------------
  |  Branch (7557:2): [True: 0, False: 206k]
  ------------------
 7558|      0|	{
 7559|      0|		struct sctp_assoc_value *av;
 7560|       |
 7561|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7562|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7563|       |
 7564|      0|		if (stcb) {
  ------------------
  |  Branch (7564:7): [True: 0, False: 0]
  ------------------
 7565|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7566|      0|			error = EINVAL;
 7567|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7568|      0|		} else {
 7569|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7569:8): [True: 0, False: 0]
  ------------------
 7570|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7570:8): [True: 0, False: 0]
  ------------------
 7571|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7571:9): [True: 0, False: 0]
  ------------------
 7572|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7572:9): [True: 0, False: 0]
  ------------------
 7573|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7574|      0|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (7574:9): [True: 0, False: 0]
  ------------------
 7575|      0|					inp->prsctp_supported = 0;
 7576|      0|				} else {
 7577|      0|					inp->prsctp_supported = 1;
 7578|      0|				}
 7579|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7580|      0|			} else {
 7581|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7582|      0|				error = EINVAL;
 7583|      0|			}
 7584|      0|		}
 7585|      0|		break;
 7586|      0|	}
 7587|      0|	case SCTP_AUTH_SUPPORTED:
  ------------------
  |  |  131|      0|#define SCTP_AUTH_SUPPORTED             0x00000027
  ------------------
  |  Branch (7587:2): [True: 0, False: 206k]
  ------------------
 7588|      0|	{
 7589|      0|		struct sctp_assoc_value *av;
 7590|       |
 7591|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7592|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7593|       |
 7594|      0|		if (stcb) {
  ------------------
  |  Branch (7594:7): [True: 0, False: 0]
  ------------------
 7595|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7596|      0|			error = EINVAL;
 7597|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7598|      0|		} else {
 7599|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7599:8): [True: 0, False: 0]
  ------------------
 7600|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7600:8): [True: 0, False: 0]
  ------------------
 7601|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7601:9): [True: 0, False: 0]
  ------------------
 7602|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7602:9): [True: 0, False: 0]
  ------------------
 7603|      0|				if ((av->assoc_value == 0) &&
  ------------------
  |  Branch (7603:9): [True: 0, False: 0]
  ------------------
 7604|      0|				    (inp->asconf_supported == 1)) {
  ------------------
  |  Branch (7604:9): [True: 0, False: 0]
  ------------------
 7605|       |				    	/* AUTH is required for ASCONF */
 7606|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7607|      0|					error = EINVAL;
 7608|      0|				} else {
 7609|      0|					SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7610|      0|					if (av->assoc_value == 0) {
  ------------------
  |  Branch (7610:10): [True: 0, False: 0]
  ------------------
 7611|      0|						inp->auth_supported = 0;
 7612|      0|					} else {
 7613|      0|						inp->auth_supported = 1;
 7614|      0|					}
 7615|      0|					SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7616|      0|				}
 7617|      0|			} else {
 7618|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7619|      0|				error = EINVAL;
 7620|      0|			}
 7621|      0|		}
 7622|      0|		break;
 7623|      0|	}
 7624|      0|	case SCTP_ASCONF_SUPPORTED:
  ------------------
  |  |  132|      0|#define SCTP_ASCONF_SUPPORTED           0x00000028
  ------------------
  |  Branch (7624:2): [True: 0, False: 206k]
  ------------------
 7625|      0|	{
 7626|      0|		struct sctp_assoc_value *av;
 7627|       |
 7628|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7629|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7630|       |
 7631|      0|		if (stcb) {
  ------------------
  |  Branch (7631:7): [True: 0, False: 0]
  ------------------
 7632|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7633|      0|			error = EINVAL;
 7634|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7635|      0|		} else {
 7636|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7636:8): [True: 0, False: 0]
  ------------------
 7637|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7637:8): [True: 0, False: 0]
  ------------------
 7638|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7638:9): [True: 0, False: 0]
  ------------------
 7639|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7639:9): [True: 0, False: 0]
  ------------------
 7640|      0|				if ((av->assoc_value != 0) &&
  ------------------
  |  Branch (7640:9): [True: 0, False: 0]
  ------------------
 7641|      0|				    (inp->auth_supported == 0)) {
  ------------------
  |  Branch (7641:9): [True: 0, False: 0]
  ------------------
 7642|       |				    	/* AUTH is required for ASCONF */
 7643|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7644|      0|					error = EINVAL;
 7645|      0|				} else {
 7646|      0|					SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7647|      0|					if (av->assoc_value == 0) {
  ------------------
  |  Branch (7647:10): [True: 0, False: 0]
  ------------------
 7648|      0|						inp->asconf_supported = 0;
 7649|      0|						sctp_auth_delete_chunk(SCTP_ASCONF,
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
 7650|      0|						                       inp->sctp_ep.local_auth_chunks);
 7651|      0|						sctp_auth_delete_chunk(SCTP_ASCONF_ACK,
  ------------------
  |  |  477|      0|#define	SCTP_ASCONF_ACK		0x80
  ------------------
 7652|      0|						                       inp->sctp_ep.local_auth_chunks);
 7653|      0|					} else {
 7654|      0|						inp->asconf_supported = 1;
 7655|      0|						sctp_auth_add_chunk(SCTP_ASCONF,
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
 7656|      0|						                    inp->sctp_ep.local_auth_chunks);
 7657|      0|						sctp_auth_add_chunk(SCTP_ASCONF_ACK,
  ------------------
  |  |  477|      0|#define	SCTP_ASCONF_ACK		0x80
  ------------------
 7658|      0|						                    inp->sctp_ep.local_auth_chunks);
 7659|      0|					}
 7660|      0|					SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7661|      0|				}
 7662|      0|			} else {
 7663|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7664|      0|				error = EINVAL;
 7665|      0|			}
 7666|      0|		}
 7667|      0|		break;
 7668|      0|	}
 7669|      0|	case SCTP_RECONFIG_SUPPORTED:
  ------------------
  |  |  133|      0|#define SCTP_RECONFIG_SUPPORTED         0x00000029
  ------------------
  |  Branch (7669:2): [True: 0, False: 206k]
  ------------------
 7670|      0|	{
 7671|      0|		struct sctp_assoc_value *av;
 7672|       |
 7673|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7674|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7675|       |
 7676|      0|		if (stcb) {
  ------------------
  |  Branch (7676:7): [True: 0, False: 0]
  ------------------
 7677|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7678|      0|			error = EINVAL;
 7679|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7680|      0|		} else {
 7681|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7681:8): [True: 0, False: 0]
  ------------------
 7682|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7682:8): [True: 0, False: 0]
  ------------------
 7683|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7683:9): [True: 0, False: 0]
  ------------------
 7684|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7684:9): [True: 0, False: 0]
  ------------------
 7685|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7686|      0|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (7686:9): [True: 0, False: 0]
  ------------------
 7687|      0|					inp->reconfig_supported = 0;
 7688|      0|				} else {
 7689|      0|					inp->reconfig_supported = 1;
 7690|      0|				}
 7691|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7692|      0|			} else {
 7693|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7694|      0|				error = EINVAL;
 7695|      0|			}
 7696|      0|		}
 7697|      0|		break;
 7698|      0|	}
 7699|      0|	case SCTP_NRSACK_SUPPORTED:
  ------------------
  |  |  134|      0|#define SCTP_NRSACK_SUPPORTED           0x00000030
  ------------------
  |  Branch (7699:2): [True: 0, False: 206k]
  ------------------
 7700|      0|	{
 7701|      0|		struct sctp_assoc_value *av;
 7702|       |
 7703|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7704|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7705|       |
 7706|      0|		if (stcb) {
  ------------------
  |  Branch (7706:7): [True: 0, False: 0]
  ------------------
 7707|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7708|      0|			error = EINVAL;
 7709|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7710|      0|		} else {
 7711|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7711:8): [True: 0, False: 0]
  ------------------
 7712|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7712:8): [True: 0, False: 0]
  ------------------
 7713|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7713:9): [True: 0, False: 0]
  ------------------
 7714|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7714:9): [True: 0, False: 0]
  ------------------
 7715|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7716|      0|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (7716:9): [True: 0, False: 0]
  ------------------
 7717|      0|					inp->nrsack_supported = 0;
 7718|      0|				} else {
 7719|      0|					inp->nrsack_supported = 1;
 7720|      0|				}
 7721|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7722|      0|			} else {
 7723|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7724|      0|				error = EINVAL;
 7725|      0|			}
 7726|      0|		}
 7727|      0|		break;
 7728|      0|	}
 7729|      0|	case SCTP_PKTDROP_SUPPORTED:
  ------------------
  |  |  135|      0|#define SCTP_PKTDROP_SUPPORTED          0x00000031
  ------------------
  |  Branch (7729:2): [True: 0, False: 206k]
  ------------------
 7730|      0|	{
 7731|      0|		struct sctp_assoc_value *av;
 7732|       |
 7733|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7734|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7735|       |
 7736|      0|		if (stcb) {
  ------------------
  |  Branch (7736:7): [True: 0, False: 0]
  ------------------
 7737|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7738|      0|			error = EINVAL;
 7739|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7740|      0|		} else {
 7741|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7741:8): [True: 0, False: 0]
  ------------------
 7742|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7742:8): [True: 0, False: 0]
  ------------------
 7743|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7743:9): [True: 0, False: 0]
  ------------------
 7744|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7744:9): [True: 0, False: 0]
  ------------------
 7745|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7746|      0|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (7746:9): [True: 0, False: 0]
  ------------------
 7747|      0|					inp->pktdrop_supported = 0;
 7748|      0|				} else {
 7749|      0|					inp->pktdrop_supported = 1;
 7750|      0|				}
 7751|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7752|      0|			} else {
 7753|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7754|      0|				error = EINVAL;
 7755|      0|			}
 7756|      0|		}
 7757|      0|		break;
 7758|      0|	}
 7759|      0|	case SCTP_MAX_CWND:
  ------------------
  |  |  136|      0|#define SCTP_MAX_CWND                   0x00000032
  ------------------
  |  Branch (7759:2): [True: 0, False: 206k]
  ------------------
 7760|      0|	{
 7761|      0|		struct sctp_assoc_value *av;
 7762|      0|		struct sctp_nets *net;
 7763|       |
 7764|      0|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7765|      0|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|      0|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|      0|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2139|      0|	    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (2139:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2140|      0|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|      0|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2143|      0|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|      0|		} \
  |  | 2145|      0|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|      0|	} else if (assoc_id > SCTP_ALL_ASSOC) { \
  |  |  ------------------
  |  |  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  |  |  ------------------
  |  |  |  Branch (2146:13): [True: 0, False: 0]
  |  |  ------------------
  |  | 2147|      0|		stcb = sctp_findassociation_ep_asocid(inp, assoc_id, 1); \
  |  | 2148|      0|		if (stcb == NULL) { \
  |  |  ------------------
  |  |  |  Branch (2148:7): [True: 0, False: 0]
  |  |  ------------------
  |  | 2149|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOENT); \
  |  | 2150|      0|			error = ENOENT; \
  |  | 2151|      0|			break; \
  |  | 2152|      0|		} \
  |  | 2153|      0|	} else { \
  |  | 2154|      0|		stcb = NULL; \
  |  | 2155|      0|	} \
  |  | 2156|      0|}
  ------------------
 7766|       |
 7767|      0|		if (stcb) {
  ------------------
  |  Branch (7767:7): [True: 0, False: 0]
  ------------------
 7768|      0|			stcb->asoc.max_cwnd = av->assoc_value;
 7769|      0|			if (stcb->asoc.max_cwnd > 0) {
  ------------------
  |  Branch (7769:8): [True: 0, False: 0]
  ------------------
 7770|      0|				TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (7770:5): [True: 0, False: 0]
  ------------------
 7771|      0|					if ((net->cwnd > stcb->asoc.max_cwnd) &&
  ------------------
  |  Branch (7771:10): [True: 0, False: 0]
  ------------------
 7772|      0|					    (net->cwnd > (net->mtu - sizeof(struct sctphdr)))) {
  ------------------
  |  Branch (7772:10): [True: 0, False: 0]
  ------------------
 7773|      0|						net->cwnd = stcb->asoc.max_cwnd;
 7774|      0|						if (net->cwnd < (net->mtu - sizeof(struct sctphdr))) {
  ------------------
  |  Branch (7774:11): [True: 0, False: 0]
  ------------------
 7775|      0|							net->cwnd = net->mtu - sizeof(struct sctphdr);
 7776|      0|						}
 7777|      0|					}
 7778|      0|				}
 7779|      0|			}
 7780|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7781|      0|		} else {
 7782|      0|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      0|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7782:8): [True: 0, False: 0]
  ------------------
 7783|      0|			    (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (7783:8): [True: 0, False: 0]
  ------------------
 7784|      0|			    ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|      0|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7784:9): [True: 0, False: 0]
  ------------------
 7785|      0|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (7785:9): [True: 0, False: 0]
  ------------------
 7786|      0|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7787|      0|				inp->max_cwnd = av->assoc_value;
 7788|      0|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7789|      0|			} else {
 7790|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7791|      0|				error = EINVAL;
 7792|      0|			}
 7793|      0|		}
 7794|      0|		break;
 7795|      0|	}
 7796|      0|	case SCTP_ACCEPT_ZERO_CHECKSUM:
  ------------------
  |  |  137|      0|#define SCTP_ACCEPT_ZERO_CHECKSUM       0x00000033
  ------------------
  |  Branch (7796:2): [True: 0, False: 206k]
  ------------------
 7797|      0|	{
 7798|      0|		uint32_t *value;
 7799|       |
 7800|      0|		SCTP_CHECK_AND_CAST(value, optval, uint32_t, optsize);
  ------------------
  |  | 2158|      0|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|      0|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|      0|	} else { \
  |  | 2164|      0|		destp = (type *)srcp; \
  |  | 2165|      0|	} \
  |  | 2166|      0|}
  ------------------
 7801|      0|		if ((*value == SCTP_EDMID_NONE) ||
  ------------------
  |  |  809|      0|#define SCTP_EDMID_NONE             0
  ------------------
  |  Branch (7801:7): [True: 0, False: 0]
  ------------------
 7802|      0|		    (*value == SCTP_EDMID_LOWER_LAYER_DTLS)) {
  ------------------
  |  |  810|      0|#define SCTP_EDMID_LOWER_LAYER_DTLS 1
  ------------------
  |  Branch (7802:7): [True: 0, False: 0]
  ------------------
 7803|      0|			SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7804|      0|			inp->rcv_edmid = *value;
 7805|      0|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7806|      0|		} else {
 7807|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 7808|      0|			error = EINVAL;
 7809|      0|		}
 7810|      0|		break;
 7811|      0|	}
 7812|       |
 7813|      0|	default:
  ------------------
  |  Branch (7813:2): [True: 0, False: 206k]
  ------------------
 7814|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOPROTOOPT);
 7815|      0|		error = ENOPROTOOPT;
 7816|      0|		break;
 7817|   206k|	} /* end switch (opt) */
 7818|   206k|	return (error);
 7819|   206k|}
sctpconn_connect:
 8129|  10.1k|{
 8130|       |#ifdef SCTP_MVRF
 8131|       |	int i, fnd = 0;
 8132|       |#endif
 8133|  10.1k|	void *p = NULL;
 8134|  10.1k|	int error = 0;
 8135|  10.1k|	int create_lock_on = 0;
 8136|  10.1k|	uint32_t vrf_id;
 8137|  10.1k|	struct sctp_inpcb *inp;
 8138|  10.1k|	struct sctp_tcb *stcb = NULL;
 8139|       |
 8140|  10.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
 8141|  10.1k|	if (inp == NULL) {
  ------------------
  |  Branch (8141:6): [True: 0, False: 10.1k]
  ------------------
 8142|       |		/* I made the same as TCP since we are not setup? */
 8143|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8144|      0|		return (ECONNRESET);
 8145|      0|	}
 8146|  10.1k|	if (addr == NULL) {
  ------------------
  |  Branch (8146:6): [True: 0, False: 10.1k]
  ------------------
 8147|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8148|      0|		return EINVAL;
 8149|      0|	}
 8150|  10.1k|	switch (addr->sa_family) {
 8151|      0|#ifdef INET
 8152|      0|	case AF_INET:
  ------------------
  |  Branch (8152:2): [True: 0, False: 10.1k]
  ------------------
 8153|       |#ifdef HAVE_SA_LEN
 8154|       |		if (addr->sa_len != sizeof(struct sockaddr_in)) {
 8155|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8156|       |			return (EINVAL);
 8157|       |		}
 8158|       |#endif
 8159|      0|		break;
 8160|      0|#endif
 8161|      0|#ifdef INET6
 8162|      0|	case AF_INET6:
  ------------------
  |  Branch (8162:2): [True: 0, False: 10.1k]
  ------------------
 8163|       |#ifdef HAVE_SA_LEN
 8164|       |		if (addr->sa_len != sizeof(struct sockaddr_in6)) {
 8165|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8166|       |			return (EINVAL);
 8167|       |		}
 8168|       |#endif
 8169|      0|		break;
 8170|      0|#endif
 8171|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (8171:2): [True: 10.1k, False: 0]
  ------------------
 8172|       |#ifdef HAVE_SA_LEN
 8173|       |		if (addr->sa_len != sizeof(struct sockaddr_conn)) {
 8174|       |			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8175|       |			return (EINVAL);
 8176|       |		}
 8177|       |#endif
 8178|  10.1k|		break;
 8179|      0|	default:
  ------------------
  |  Branch (8179:2): [True: 0, False: 10.1k]
  ------------------
 8180|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EAFNOSUPPORT);
 8181|      0|		return (EAFNOSUPPORT);
 8182|  10.1k|	}
 8183|  10.1k|	SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  10.1k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 8184|  10.1k|	SCTP_ASOC_CREATE_LOCK(inp);
  ------------------
  |  |  427|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8185|  10.1k|	create_lock_on = 1;
 8186|       |
 8187|       |
 8188|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (8188:6): [True: 0, False: 10.1k]
  ------------------
 8189|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) {
  ------------------
  |  |  546|  10.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (8189:6): [True: 0, False: 10.1k]
  ------------------
 8190|       |		/* Should I really unlock ? */
 8191|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EFAULT);
 8192|      0|	        error = EFAULT;
 8193|      0|		goto out_now;
 8194|      0|	}
 8195|  10.1k|#ifdef INET6
 8196|  10.1k|	if (((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) == 0) &&
  ------------------
  |  |  544|  10.1k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (8196:6): [True: 10.1k, False: 0]
  ------------------
 8197|  10.1k|	    (addr->sa_family == AF_INET6)) {
  ------------------
  |  Branch (8197:6): [True: 0, False: 10.1k]
  ------------------
 8198|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8199|      0|		error = EINVAL;
 8200|      0|		goto out_now;
 8201|      0|	}
 8202|  10.1k|#endif
 8203|  10.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) {
  ------------------
  |  |  532|  10.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (8203:6): [True: 0, False: 10.1k]
  ------------------
 8204|       |		/* Bind a ephemeral port */
 8205|      0|		error = sctp_inpcb_bind(so, NULL, NULL, p);
 8206|      0|		if (error) {
  ------------------
  |  Branch (8206:7): [True: 0, False: 0]
  ------------------
 8207|      0|			goto out_now;
 8208|      0|		}
 8209|      0|	}
 8210|       |	/* Now do we connect? */
 8211|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) &&
  ------------------
  |  |  540|  10.1k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (8211:6): [True: 0, False: 10.1k]
  ------------------
 8212|      0|	    (sctp_is_feature_off(inp, SCTP_PCB_FLAGS_PORTREUSE))) {
  ------------------
  |  |   53|      0|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  ------------------
  |  Branch (8212:6): [True: 0, False: 0]
  ------------------
 8213|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8214|      0|		error = EINVAL;
 8215|      0|		goto out_now;
 8216|      0|	}
 8217|  10.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  10.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (8217:6): [True: 10.1k, False: 0]
  ------------------
 8218|  10.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED)) {
  ------------------
  |  |  539|  10.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (8218:6): [True: 0, False: 10.1k]
  ------------------
 8219|       |		/* We are already connected AND the TCP model */
 8220|      0|		SCTP_LTRACE_ERR_RET(inp, stcb, NULL, SCTP_FROM_SCTP_USRREQ, EADDRINUSE);
 8221|      0|		error = EADDRINUSE;
 8222|      0|		goto out_now;
 8223|      0|	}
 8224|  10.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) {
  ------------------
  |  |  539|  10.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (8224:6): [True: 0, False: 10.1k]
  ------------------
 8225|      0|		SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8226|      0|		stcb = LIST_FIRST(&inp->sctp_asoc_list);
 8227|      0|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8228|  10.1k|	} else {
 8229|       |		/* We increment here since sctp_findassociation_ep_addr() will
 8230|       |		 * do a decrement if it finds the stcb as long as the locked
 8231|       |		 * tcb (last argument) is NOT a TCB.. aka NULL.
 8232|       |		 */
 8233|  10.1k|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  10.1k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  10.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 8234|  10.1k|		stcb = sctp_findassociation_ep_addr(&inp, addr, NULL, NULL, NULL);
 8235|  10.1k|		if (stcb == NULL) {
  ------------------
  |  Branch (8235:7): [True: 10.1k, False: 0]
  ------------------
 8236|  10.1k|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  10.1k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  10.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 8237|  10.1k|		} else {
 8238|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8239|      0|		}
 8240|  10.1k|	}
 8241|  10.1k|	if (stcb != NULL) {
  ------------------
  |  Branch (8241:6): [True: 0, False: 10.1k]
  ------------------
 8242|       |		/* Already have or am bring up an association */
 8243|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EALREADY);
 8244|      0|		error = EALREADY;
 8245|      0|		goto out_now;
 8246|      0|	}
 8247|       |
 8248|  10.1k|	vrf_id = inp->def_vrf_id;
 8249|       |#ifdef SCTP_MVRF
 8250|       |	for (i = 0; i < inp->num_vrfs; i++) {
 8251|       |		if (vrf_id == inp->m_vrf_ids[i]) {
 8252|       |			fnd = 1;
 8253|       |			break;
 8254|       |		}
 8255|       |	}
 8256|       |	if (!fnd) {
 8257|       |		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8258|       |		error = EINVAL;
 8259|       |		goto out_now;
 8260|       |	}
 8261|       |#endif
 8262|       |	/* We are GOOD to go */
 8263|  10.1k|	stcb = sctp_aloc_assoc_connected(inp, addr, &error, 0, 0, vrf_id,
 8264|  10.1k|	                                 inp->sctp_ep.pre_open_stream_count,
 8265|  10.1k|	                                 inp->sctp_ep.port, p,
 8266|  10.1k|	                                 SCTP_INITIALIZE_AUTH_PARAMS);
  ------------------
  |  |  767|  10.1k|#define SCTP_INITIALIZE_AUTH_PARAMS		1
  ------------------
 8267|  10.1k|	if (stcb == NULL) {
  ------------------
  |  Branch (8267:6): [True: 0, False: 10.1k]
  ------------------
 8268|       |		/* Gak! no memory */
 8269|      0|		goto out_now;
 8270|      0|	}
 8271|  10.1k|	SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|  10.1k|	sctp_set_state(_stcb, _state)
  ------------------
 8272|  10.1k|	(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|  10.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 8273|       |
 8274|  10.1k|	sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  10.1k|#define SCTP_SO_LOCKED		1
  ------------------
 8275|  10.1k|	SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  10.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8276|  10.1k| out_now:
 8277|  10.1k|	if (create_lock_on) {
  ------------------
  |  Branch (8277:6): [True: 10.1k, False: 0]
  ------------------
 8278|  10.1k|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8279|  10.1k|	}
 8280|       |
 8281|  10.1k|	SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  10.1k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  10.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 8282|  10.1k|	return (error);
 8283|  10.1k|}
register_recv_cb:
 8977|  10.1k|{
 8978|  10.1k|	struct sctp_inpcb *inp;
 8979|       |
 8980|  10.1k|	inp = (struct sctp_inpcb *) so->so_pcb;
 8981|  10.1k|	if (inp == NULL) {
  ------------------
  |  Branch (8981:6): [True: 0, False: 10.1k]
  ------------------
 8982|      0|		return (0);
 8983|      0|	}
 8984|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8985|  10.1k|	inp->recv_callback = receive_cb;
 8986|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8987|  10.1k|	return (1);
 8988|  10.1k|}
register_send_cb:
 8992|  10.1k|{
 8993|  10.1k|	struct sctp_inpcb *inp;
 8994|       |
 8995|  10.1k|	inp = (struct sctp_inpcb *) so->so_pcb;
 8996|  10.1k|	if (inp == NULL) {
  ------------------
  |  Branch (8996:6): [True: 0, False: 10.1k]
  ------------------
 8997|      0|		return (0);
 8998|      0|	}
 8999|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9000|  10.1k|	inp->send_callback = send_cb;
 9001|  10.1k|	inp->send_sb_threshold = sb_threshold;
 9002|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9003|       |	/* FIXME change to current amount free. This will be the full buffer
 9004|       |	 * the first time this is registered but it could be only a portion
 9005|       |	 * of the send buffer if this is called a second time e.g. if the
 9006|       |	 * threshold changes.
 9007|       |	 */
 9008|  10.1k|	return (1);
 9009|  10.1k|}
register_ulp_info:
 9013|  10.1k|{
 9014|  10.1k|	struct sctp_inpcb *inp;
 9015|       |
 9016|  10.1k|	inp = (struct sctp_inpcb *) so->so_pcb;
 9017|  10.1k|	if (inp == NULL) {
  ------------------
  |  Branch (9017:6): [True: 0, False: 10.1k]
  ------------------
 9018|      0|		return (0);
 9019|      0|	}
 9020|  10.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  10.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9021|  10.1k|	inp->ulp_info = ulp_info;
 9022|  10.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  10.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9023|  10.1k|	return (1);
 9024|  10.1k|}

sctp_msecs_to_ticks:
  803|   130k|{
  804|   130k|	uint64_t temp;
  805|   130k|	uint32_t ticks;
  806|       |
  807|   130k|	if (hz == 1000) {
  ------------------
  |  Branch (807:6): [True: 130k, False: 2]
  ------------------
  808|   130k|		ticks = msecs;
  809|   130k|	} else {
  810|      2|		temp = (((uint64_t)msecs * hz) + 999) / 1000;
  811|      2|		if (temp > UINT32_MAX) {
  ------------------
  |  Branch (811:7): [True: 0, False: 2]
  ------------------
  812|      0|			ticks = UINT32_MAX;
  813|      2|		} else {
  814|      2|			ticks = (uint32_t)temp;
  815|      2|		}
  816|      2|	}
  817|   130k|	return (ticks);
  818|   130k|}
sctp_ticks_to_msecs:
  822|  20.3k|{
  823|  20.3k|	uint64_t temp;
  824|  20.3k|	uint32_t msecs;
  825|       |
  826|  20.3k|	if (hz == 1000) {
  ------------------
  |  Branch (826:6): [True: 20.3k, False: 0]
  ------------------
  827|  20.3k|		msecs = ticks;
  828|  20.3k|	} else {
  829|      0|		temp = (((uint64_t)ticks * 1000) + (hz - 1)) / hz;
  830|      0|		if (temp > UINT32_MAX) {
  ------------------
  |  Branch (830:7): [True: 0, False: 0]
  ------------------
  831|      0|			msecs = UINT32_MAX;
  832|      0|		} else {
  833|      0|			msecs = (uint32_t)temp;
  834|      0|		}
  835|      0|	}
  836|  20.3k|	return (msecs);
  837|  20.3k|}
sctp_secs_to_ticks:
  841|  50.8k|{
  842|  50.8k|	uint64_t temp;
  843|  50.8k|	uint32_t ticks;
  844|       |
  845|  50.8k|	temp = (uint64_t)secs * hz;
  846|  50.8k|	if (temp > UINT32_MAX) {
  ------------------
  |  Branch (846:6): [True: 0, False: 50.8k]
  ------------------
  847|      0|		ticks = UINT32_MAX;
  848|  50.8k|	} else {
  849|  50.8k|		ticks = (uint32_t)temp;
  850|  50.8k|	}
  851|  50.8k|	return (ticks);
  852|  50.8k|}
sctp_stop_timers_for_shutdown:
  876|     53|{
  877|     53|	struct sctp_inpcb *inp;
  878|     53|	struct sctp_nets *net;
  879|       |
  880|     53|	inp = stcb->sctp_ep;
  881|       |
  882|     53|	sctp_timer_stop(SCTP_TIMER_TYPE_RECV, inp, stcb, NULL,
  ------------------
  |  |  534|     53|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  883|     53|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_12);
  ------------------
  |  |  760|     53|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_12);
  ------------------
  |  |  780|     53|#define SCTP_LOC_12 0x0000000c
  ------------------
  884|     53|	sctp_timer_stop(SCTP_TIMER_TYPE_STRRESET, inp, stcb, NULL,
  ------------------
  |  |  544|     53|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  885|     53|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_13);
  ------------------
  |  |  760|     53|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_13);
  ------------------
  |  |  781|     53|#define SCTP_LOC_13 0x0000000d
  ------------------
  886|     53|	sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, inp, stcb, NULL,
  ------------------
  |  |  541|     53|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  887|     53|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_14);
  ------------------
  |  |  760|     53|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_14);
  ------------------
  |  |  782|     53|#define SCTP_LOC_14 0x0000000e
  ------------------
  888|     53|	sctp_timer_stop(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL,
  ------------------
  |  |  543|     53|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  889|     53|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_15);
  ------------------
  |  |  760|     53|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_15);
  ------------------
  |  |  783|     53|#define SCTP_LOC_15 0x0000000f
  ------------------
  890|    136|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (890:2): [True: 136, False: 53]
  ------------------
  891|    136|		sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|    136|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  892|    136|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_16);
  ------------------
  |  |  760|    136|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_16);
  ------------------
  |  |  784|    136|#define SCTP_LOC_16 0x00000010
  ------------------
  893|    136|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|    136|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  894|    136|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_17);
  ------------------
  |  |  760|    136|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_17);
  ------------------
  |  |  785|    136|#define SCTP_LOC_17 0x00000011
  ------------------
  895|    136|	}
  896|     53|}
sctp_stop_association_timers:
  900|  20.3k|{
  901|  20.3k|	struct sctp_inpcb *inp;
  902|  20.3k|	struct sctp_nets *net;
  903|       |
  904|  20.3k|	inp = stcb->sctp_ep;
  905|  20.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_RECV, inp, stcb, NULL,
  ------------------
  |  |  534|  20.3k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  906|  20.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_18);
  ------------------
  |  |  760|  20.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_18);
  ------------------
  |  |  786|  20.3k|#define SCTP_LOC_18 0x00000012
  ------------------
  907|  20.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_STRRESET, inp, stcb, NULL,
  ------------------
  |  |  544|  20.3k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  908|  20.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_19);
  ------------------
  |  |  760|  20.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_19);
  ------------------
  |  |  787|  20.3k|#define SCTP_LOC_19 0x00000013
  ------------------
  909|  20.3k|	if (stop_assoc_kill_timer) {
  ------------------
  |  Branch (909:6): [True: 10.1k, False: 10.1k]
  ------------------
  910|  10.1k|		sctp_timer_stop(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL,
  ------------------
  |  |  546|  10.1k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  911|  10.1k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_20);
  ------------------
  |  |  760|  10.1k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_20);
  ------------------
  |  |  788|  10.1k|#define SCTP_LOC_20 0x00000014
  ------------------
  912|  10.1k|	}
  913|  20.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, inp, stcb, NULL,
  ------------------
  |  |  541|  20.3k|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  914|  20.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_21);
  ------------------
  |  |  760|  20.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_21);
  ------------------
  |  |  789|  20.3k|#define SCTP_LOC_21 0x00000015
  ------------------
  915|  20.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL,
  ------------------
  |  |  543|  20.3k|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  916|  20.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_22);
  ------------------
  |  |  760|  20.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_22);
  ------------------
  |  |  790|  20.3k|#define SCTP_LOC_22 0x00000016
  ------------------
  917|  20.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWNGUARD, inp, stcb, NULL,
  ------------------
  |  |  542|  20.3k|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
  918|  20.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_23);
  ------------------
  |  |  760|  20.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_23);
  ------------------
  |  |  791|  20.3k|#define SCTP_LOC_23 0x00000017
  ------------------
  919|       |	/* Mobility adaptation */
  920|  20.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_PRIM_DELETED, inp, stcb, NULL,
  ------------------
  |  |  548|  20.3k|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  921|  20.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_24);
  ------------------
  |  |  760|  20.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_24);
  ------------------
  |  |  792|  20.3k|#define SCTP_LOC_24 0x00000018
  ------------------
  922|  30.7k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (922:2): [True: 30.7k, False: 20.3k]
  ------------------
  923|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_SEND, inp, stcb, net,
  ------------------
  |  |  532|  30.7k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  924|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_25);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_25);
  ------------------
  |  |  793|  30.7k|#define SCTP_LOC_25 0x00000019
  ------------------
  925|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_INIT, inp, stcb, net,
  ------------------
  |  |  533|  30.7k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  926|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_26);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_26);
  ------------------
  |  |  794|  30.7k|#define SCTP_LOC_26 0x0000001a
  ------------------
  927|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWN, inp, stcb, net,
  ------------------
  |  |  535|  30.7k|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  928|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_27);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_27);
  ------------------
  |  |  795|  30.7k|#define SCTP_LOC_27 0x0000001b
  ------------------
  929|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_COOKIE, inp, stcb, net,
  ------------------
  |  |  537|  30.7k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  930|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_28);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_28);
  ------------------
  |  |  796|  30.7k|#define SCTP_LOC_28 0x0000001c
  ------------------
  931|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWNACK, inp, stcb, net,
  ------------------
  |  |  540|  30.7k|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  932|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_29);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_29);
  ------------------
  |  |  797|  30.7k|#define SCTP_LOC_29 0x0000001d
  ------------------
  933|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|  30.7k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  934|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_30);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_30);
  ------------------
  |  |  798|  30.7k|#define SCTP_LOC_30 0x0000001e
  ------------------
  935|  30.7k|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|  30.7k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  936|  30.7k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_31);
  ------------------
  |  |  760|  30.7k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_31);
  ------------------
  |  |  799|  30.7k|#define SCTP_LOC_31 0x0000001f
  ------------------
  937|  30.7k|	}
  938|  20.3k|}
sctp_fill_random_store:
 1015|  35.8k|{
 1016|       |	/*
 1017|       |	 * Here we use the MD5/SHA-1 to hash with our good randomNumbers and
 1018|       |	 * our counter. The result becomes our good random numbers and we
 1019|       |	 * then setup to give these out. Note that we do no locking to
 1020|       |	 * protect this. This is ok, since if competing folks call this we
 1021|       |	 * will get more gobbled gook in the random store which is what we
 1022|       |	 * want. There is a danger that two guys will use the same random
 1023|       |	 * numbers, but thats ok too since that is random as well :->
 1024|       |	 */
 1025|  35.8k|	m->store_at = 0;
 1026|  35.8k|#if defined(__Userspace__) && defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
 1027|   752k|	for (int i = 0; i < (int) (sizeof(m->random_store) / sizeof(m->random_store[0])); i++) {
  ------------------
  |  Branch (1027:18): [True: 716k, False: 35.8k]
  ------------------
 1028|   716k|		m->random_store[i] = (uint8_t) rand();
 1029|   716k|	}
 1030|       |#else
 1031|       |	(void)sctp_hmac(SCTP_HMAC, (uint8_t *)m->random_numbers,
 1032|       |	    sizeof(m->random_numbers), (uint8_t *)&m->random_counter,
 1033|       |	    sizeof(m->random_counter), (uint8_t *)m->random_store);
 1034|       |#endif
 1035|  35.8k|	m->random_counter++;
 1036|  35.8k|}
sctp_select_initial_TSN:
 1040|   158k|{
 1041|       |	/*
 1042|       |	 * A true implementation should use random selection process to get
 1043|       |	 * the initial stream sequence number, using RFC1750 as a good
 1044|       |	 * guideline
 1045|       |	 */
 1046|   158k|	uint32_t x, *xp;
 1047|   158k|	uint8_t *p;
 1048|   158k|	int store_at, new_store;
 1049|       |
 1050|   158k|	if (inp->initial_sequence_debug != 0) {
  ------------------
  |  Branch (1050:6): [True: 0, False: 158k]
  ------------------
 1051|      0|		uint32_t ret;
 1052|       |
 1053|      0|		ret = inp->initial_sequence_debug;
 1054|      0|		inp->initial_sequence_debug++;
 1055|      0|		return (ret);
 1056|      0|	}
 1057|   158k| retry:
 1058|   158k|	store_at = inp->store_at;
 1059|   158k|	new_store = store_at + sizeof(uint32_t);
 1060|   158k|	if (new_store >= (SCTP_SIGNATURE_SIZE-3)) {
  ------------------
  |  |  300|   158k|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|   158k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
  |  Branch (1060:6): [True: 25.6k, False: 132k]
  ------------------
 1061|  25.6k|		new_store = 0;
 1062|  25.6k|	}
 1063|   158k|	if (!atomic_cmpset_int(&inp->store_at, store_at, new_store)) {
  ------------------
  |  |  113|   158k|#define atomic_cmpset_int(dst, exp, src) __sync_bool_compare_and_swap(dst, exp, src)
  ------------------
  |  Branch (1063:6): [True: 0, False: 158k]
  ------------------
 1064|      0|		goto retry;
 1065|      0|	}
 1066|   158k|	if (new_store == 0) {
  ------------------
  |  Branch (1066:6): [True: 25.6k, False: 132k]
  ------------------
 1067|       |		/* Refill the random store */
 1068|  25.6k|		sctp_fill_random_store(inp);
 1069|  25.6k|	}
 1070|   158k|	p = &inp->random_store[store_at];
 1071|   158k|	xp = (uint32_t *)p;
 1072|   158k|	x = *xp;
 1073|   158k|	return (x);
 1074|   158k|}
sctp_select_a_tag:
 1078|  47.7k|{
 1079|  47.7k|	uint32_t x;
 1080|  47.7k|	struct timeval now;
 1081|       |
 1082|  47.7k|	if (check) {
  ------------------
  |  Branch (1082:6): [True: 27.4k, False: 20.3k]
  ------------------
 1083|  27.4k|		(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  27.4k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1084|  27.4k|	}
 1085|  47.7k|	for (;;) {
 1086|  47.7k|		x = sctp_select_initial_TSN(&inp->sctp_ep);
 1087|  47.7k|		if (x == 0) {
  ------------------
  |  Branch (1087:7): [True: 0, False: 47.7k]
  ------------------
 1088|       |			/* we never use 0 */
 1089|      0|			continue;
 1090|      0|		}
 1091|  47.7k|		if (!check || sctp_is_vtag_good(x, lport, rport, &now)) {
  ------------------
  |  Branch (1091:7): [True: 20.3k, False: 27.4k]
  |  Branch (1091:17): [True: 27.4k, False: 0]
  ------------------
 1092|  47.7k|			break;
 1093|  47.7k|		}
 1094|  47.7k|	}
 1095|  47.7k|	return (x);
 1096|  47.7k|}
sctp_init_asoc:
 1145|  10.1k|{
 1146|  10.1k|	struct sctp_association *asoc;
 1147|       |	/*
 1148|       |	 * Anything set to zero is taken care of by the allocation routine's
 1149|       |	 * bzero
 1150|       |	 */
 1151|       |
 1152|       |	/*
 1153|       |	 * Up front select what scoping to apply on addresses I tell my peer
 1154|       |	 * Not sure what to do with these right now, we will need to come up
 1155|       |	 * with a way to set them. We may need to pass them through from the
 1156|       |	 * caller in the sctp_aloc_assoc() function.
 1157|       |	 */
 1158|  10.1k|	int i;
 1159|       |#if defined(SCTP_DETAILED_STR_STATS)
 1160|       |	int j;
 1161|       |#endif
 1162|       |
 1163|  10.1k|	asoc = &stcb->asoc;
 1164|       |	/* init all variables to a known value. */
 1165|  10.1k|	SCTP_SET_STATE(stcb, SCTP_STATE_INUSE);
  ------------------
  |  |  474|  10.1k|	sctp_set_state(_stcb, _state)
  ------------------
 1166|  10.1k|	asoc->max_burst = inp->sctp_ep.max_burst;
 1167|  10.1k|	asoc->fr_max_burst = inp->sctp_ep.fr_max_burst;
 1168|  10.1k|	asoc->heart_beat_delay = sctp_ticks_to_msecs(inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT]);
  ------------------
  |  |  520|  10.1k|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
 1169|  10.1k|	asoc->cookie_life = inp->sctp_ep.def_cookie_life;
 1170|  10.1k|	asoc->sctp_cmt_on_off = inp->sctp_cmt_on_off;
 1171|  10.1k|	asoc->ecn_supported = inp->ecn_supported;
 1172|  10.1k|	asoc->prsctp_supported = inp->prsctp_supported;
 1173|  10.1k|	asoc->auth_supported = inp->auth_supported;
 1174|  10.1k|	asoc->asconf_supported = inp->asconf_supported;
 1175|  10.1k|	asoc->reconfig_supported = inp->reconfig_supported;
 1176|  10.1k|	asoc->nrsack_supported = inp->nrsack_supported;
 1177|  10.1k|	asoc->pktdrop_supported = inp->pktdrop_supported;
 1178|  10.1k|	asoc->idata_supported = inp->idata_supported;
 1179|  10.1k|	asoc->rcv_edmid = inp->rcv_edmid;
 1180|  10.1k|	asoc->snd_edmid = SCTP_EDMID_NONE;
  ------------------
  |  |  809|  10.1k|#define SCTP_EDMID_NONE             0
  ------------------
 1181|  10.1k|	asoc->sctp_cmt_pf = (uint8_t)0;
 1182|  10.1k|	asoc->sctp_frag_point = inp->sctp_frag_point;
 1183|  10.1k|	asoc->sctp_features = inp->sctp_features;
 1184|  10.1k|	asoc->default_dscp = inp->sctp_ep.default_dscp;
 1185|  10.1k|	asoc->max_cwnd = inp->max_cwnd;
 1186|  10.1k|#ifdef INET6
 1187|  10.1k|	if (inp->sctp_ep.default_flowlabel) {
  ------------------
  |  Branch (1187:6): [True: 0, False: 10.1k]
  ------------------
 1188|      0|		asoc->default_flowlabel = inp->sctp_ep.default_flowlabel;
 1189|  10.1k|	} else {
 1190|  10.1k|		if (inp->ip_inp.inp.inp_flags & IN6P_AUTOFLOWLABEL) {
  ------------------
  |  |  299|  10.1k|#define	IN6P_AUTOFLOWLABEL	0x800000 /* attach flowlabel automatically */
  ------------------
  |  Branch (1190:7): [True: 0, False: 10.1k]
  ------------------
 1191|      0|			asoc->default_flowlabel = sctp_select_initial_TSN(&inp->sctp_ep);
 1192|      0|			asoc->default_flowlabel &= 0x000fffff;
 1193|      0|			asoc->default_flowlabel |= 0x80000000;
 1194|  10.1k|		} else {
 1195|  10.1k|			asoc->default_flowlabel = 0;
 1196|  10.1k|		}
 1197|  10.1k|	}
 1198|  10.1k|#endif
 1199|  10.1k|	asoc->sb_send_resv = 0;
 1200|  10.1k|	if (override_tag) {
  ------------------
  |  Branch (1200:6): [True: 0, False: 10.1k]
  ------------------
 1201|      0|		asoc->my_vtag = override_tag;
 1202|  10.1k|	} else {
 1203|  10.1k|		asoc->my_vtag = sctp_select_a_tag(inp, stcb->sctp_ep->sctp_lport, stcb->rport,  1);
  ------------------
  |  |  426|  10.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  10.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  10.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1204|  10.1k|	}
 1205|       |	/* Get the nonce tags */
 1206|  10.1k|	asoc->my_vtag_nonce = sctp_select_a_tag(inp, stcb->sctp_ep->sctp_lport, stcb->rport, 0);
  ------------------
  |  |  426|  10.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  10.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  10.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1207|  10.1k|	asoc->peer_vtag_nonce = sctp_select_a_tag(inp, stcb->sctp_ep->sctp_lport, stcb->rport, 0);
  ------------------
  |  |  426|  10.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  10.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  10.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1208|  10.1k|	asoc->vrf_id = vrf_id;
 1209|       |
 1210|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 1211|       |	asoc->tsn_in_at = 0;
 1212|       |	asoc->tsn_out_at = 0;
 1213|       |	asoc->tsn_in_wrapped = 0;
 1214|       |	asoc->tsn_out_wrapped = 0;
 1215|       |	asoc->cumack_log_at = 0;
 1216|       |	asoc->cumack_log_atsnt = 0;
 1217|       |#endif
 1218|       |#ifdef SCTP_FS_SPEC_LOG
 1219|       |	asoc->fs_index = 0;
 1220|       |#endif
 1221|  10.1k|	asoc->refcnt = 0;
 1222|  10.1k|	asoc->assoc_up_sent = 0;
 1223|  10.1k|	if (override_tag) {
  ------------------
  |  Branch (1223:6): [True: 0, False: 10.1k]
  ------------------
 1224|      0|		asoc->init_seq_number = initial_tsn;
 1225|  10.1k|	} else {
 1226|  10.1k|		asoc->init_seq_number = sctp_select_initial_TSN(&inp->sctp_ep);
 1227|  10.1k|	}
 1228|  10.1k|	asoc->asconf_seq_out = asoc->init_seq_number;
 1229|  10.1k|	asoc->str_reset_seq_out = asoc->init_seq_number;
 1230|  10.1k|	asoc->sending_seq = asoc->init_seq_number;
 1231|  10.1k|	asoc->asconf_seq_out_acked = asoc->init_seq_number - 1;
 1232|       |	/* we are optimistic here */
 1233|  10.1k|	asoc->peer_supports_nat = 0;
 1234|  10.1k|	asoc->sent_queue_retran_cnt = 0;
 1235|       |
 1236|       |	/* for CMT */
 1237|  10.1k|	asoc->last_net_cmt_send_started = NULL;
 1238|       |
 1239|  10.1k|	asoc->last_acked_seq = asoc->init_seq_number - 1;
 1240|  10.1k|	asoc->advanced_peer_ack_point = asoc->init_seq_number - 1;
 1241|  10.1k|	asoc->asconf_seq_in = asoc->init_seq_number - 1;
 1242|       |
 1243|       |	/* here we are different, we hold the next one we expect */
 1244|  10.1k|	asoc->str_reset_seq_in = asoc->init_seq_number;
 1245|       |
 1246|  10.1k|	asoc->initial_init_rto_max = inp->sctp_ep.initial_init_rto_max;
 1247|  10.1k|	asoc->initial_rto = inp->sctp_ep.initial_rto;
 1248|       |
 1249|  10.1k|	asoc->default_mtu = inp->sctp_ep.default_mtu;
 1250|  10.1k|	asoc->max_init_times = inp->sctp_ep.max_init_times;
 1251|  10.1k|	asoc->max_send_times = inp->sctp_ep.max_send_times;
 1252|  10.1k|	asoc->def_net_failure = inp->sctp_ep.def_net_failure;
 1253|  10.1k|	asoc->def_net_pf_threshold = inp->sctp_ep.def_net_pf_threshold;
 1254|  10.1k|	asoc->free_chunk_cnt = 0;
 1255|       |
 1256|  10.1k|	asoc->iam_blocking = 0;
 1257|  10.1k|	asoc->context = inp->sctp_context;
 1258|  10.1k|	asoc->local_strreset_support = inp->local_strreset_support;
 1259|  10.1k|	asoc->def_send = inp->def_send;
 1260|  10.1k|	asoc->delayed_ack = sctp_ticks_to_msecs(inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_RECV]);
  ------------------
  |  |  518|  10.1k|#define SCTP_TIMER_RECV 	1
  ------------------
 1261|  10.1k|	asoc->sack_freq = inp->sctp_ep.sctp_sack_freq;
 1262|  10.1k|	asoc->pr_sctp_cnt = 0;
 1263|  10.1k|	asoc->total_output_queue_size = 0;
 1264|       |
 1265|  10.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|  10.1k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (1265:6): [True: 0, False: 10.1k]
  ------------------
 1266|      0|		asoc->scope.ipv6_addr_legal = 1;
 1267|      0|		if (SCTP_IPV6_V6ONLY(inp) == 0) {
  ------------------
  |  |  954|      0|#define SCTP_IPV6_V6ONLY(sctp_inpcb)	((sctp_inpcb)->ip_inp.inp.inp_flags & IN6P_IPV6_V6ONLY)
  |  |  ------------------
  |  |  |  |  290|      0|#define IN6P_IPV6_V6ONLY	0x008000 /* restrict AF_INET6 socket for v6 */
  |  |  ------------------
  ------------------
  |  Branch (1267:7): [True: 0, False: 0]
  ------------------
 1268|      0|			asoc->scope.ipv4_addr_legal = 1;
 1269|      0|		} else {
 1270|      0|			asoc->scope.ipv4_addr_legal = 0;
 1271|      0|		}
 1272|      0|#if defined(__Userspace__)
 1273|      0|			asoc->scope.conn_addr_legal = 0;
 1274|      0|#endif
 1275|  10.1k|	} else {
 1276|  10.1k|		asoc->scope.ipv6_addr_legal = 0;
 1277|  10.1k|#if defined(__Userspace__)
 1278|  10.1k|		if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) {
  ------------------
  |  |  550|  10.1k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (1278:7): [True: 10.1k, False: 0]
  ------------------
 1279|  10.1k|			asoc->scope.conn_addr_legal = 1;
 1280|  10.1k|			asoc->scope.ipv4_addr_legal = 0;
 1281|  10.1k|		} else {
 1282|      0|			asoc->scope.conn_addr_legal = 0;
 1283|      0|			asoc->scope.ipv4_addr_legal = 1;
 1284|      0|		}
 1285|       |#else
 1286|       |		asoc->scope.ipv4_addr_legal = 1;
 1287|       |#endif
 1288|  10.1k|	}
 1289|       |
 1290|  10.1k|	asoc->my_rwnd = max(SCTP_SB_LIMIT_RCV(inp->sctp_socket), SCTP_MINIMAL_RWND);
  ------------------
  |  |   67|  10.1k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 10.1k, False: 0]
  |  |  ------------------
  ------------------
 1291|  10.1k|	asoc->peers_rwnd = SCTP_SB_LIMIT_RCV(inp->sctp_socket);
  ------------------
  |  |  983|  10.1k|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
 1292|       |
 1293|  10.1k|	asoc->smallest_mtu = 0;
 1294|  10.1k|	asoc->minrto = inp->sctp_ep.sctp_minrto;
 1295|  10.1k|	asoc->maxrto = inp->sctp_ep.sctp_maxrto;
 1296|       |
 1297|  10.1k|	asoc->stream_locked_on = 0;
 1298|  10.1k|	asoc->ecn_echo_cnt_onq = 0;
 1299|  10.1k|	asoc->stream_locked = 0;
 1300|       |
 1301|  10.1k|	asoc->send_sack = 1;
 1302|       |
 1303|  10.1k|	LIST_INIT(&asoc->sctp_restricted_addrs);
  ------------------
  |  Branch (1303:2): [Folded, False: 10.1k]
  ------------------
 1304|       |
 1305|  10.1k|	TAILQ_INIT(&asoc->nets);
  ------------------
  |  Branch (1305:2): [Folded, False: 10.1k]
  ------------------
 1306|  10.1k|	TAILQ_INIT(&asoc->pending_reply_queue);
  ------------------
  |  Branch (1306:2): [Folded, False: 10.1k]
  ------------------
 1307|  10.1k|	TAILQ_INIT(&asoc->asconf_ack_sent);
  ------------------
  |  Branch (1307:2): [Folded, False: 10.1k]
  ------------------
 1308|       |	/* Setup to fill the hb random cache at first HB */
 1309|  10.1k|	asoc->hb_random_idx = 4;
 1310|       |
 1311|  10.1k|	asoc->sctp_autoclose_ticks = inp->sctp_ep.auto_close_time;
 1312|       |
 1313|  10.1k|	stcb->asoc.congestion_control_module = inp->sctp_ep.sctp_default_cc_module;
 1314|  10.1k|	stcb->asoc.cc_functions = sctp_cc_functions[inp->sctp_ep.sctp_default_cc_module];
 1315|       |
 1316|  10.1k|	stcb->asoc.stream_scheduling_module = inp->sctp_ep.sctp_default_ss_module;
 1317|  10.1k|	stcb->asoc.ss_functions = sctp_ss_functions[inp->sctp_ep.sctp_default_ss_module];
 1318|       |
 1319|       |	/*
 1320|       |	 * Now the stream parameters, here we allocate space for all streams
 1321|       |	 * that we request by default.
 1322|       |	 */
 1323|  10.1k|	asoc->strm_realoutsize = asoc->streamoutcnt = asoc->pre_open_streams =
 1324|  10.1k|	    o_strms;
 1325|  10.1k|	SCTP_MALLOC(asoc->strmout, struct sctp_stream_out *,
  ------------------
  |  |  675|  10.1k|	do {								\
  |  |  676|  10.1k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  10.1k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  10.1k|    do {								\
  |  |  |  |  198|  10.1k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  20.3k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  10.1k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 1326|  10.1k|		    asoc->streamoutcnt * sizeof(struct sctp_stream_out),
 1327|  10.1k|		    SCTP_M_STRMO);
 1328|  10.1k|	if (asoc->strmout == NULL) {
  ------------------
  |  Branch (1328:6): [True: 0, False: 10.1k]
  ------------------
 1329|       |		/* big trouble no memory */
 1330|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ENOMEM);
 1331|      0|		return (ENOMEM);
 1332|      0|	}
 1333|  10.1k|	SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  10.1k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1334|  2.62M|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (1334:14): [True: 2.61M, False: 10.1k]
  ------------------
 1335|       |		/*
 1336|       |		 * inbound side must be set to 0xffff, also NOTE when we get
 1337|       |		 * the INIT-ACK back (for INIT sender) we MUST reduce the
 1338|       |		 * count (streamoutcnt) but first check if we sent to any of
 1339|       |		 * the upper streams that were dropped (if some were). Those
 1340|       |		 * that were dropped must be notified to the upper layer as
 1341|       |		 * failed to send.
 1342|       |		 */
 1343|  2.61M|		TAILQ_INIT(&asoc->strmout[i].outqueue);
  ------------------
  |  Branch (1343:3): [Folded, False: 2.61M]
  ------------------
 1344|  2.61M|		asoc->ss_functions.sctp_ss_init_stream(stcb, &asoc->strmout[i], NULL);
 1345|  2.61M|		asoc->strmout[i].chunks_on_queues = 0;
 1346|       |#if defined(SCTP_DETAILED_STR_STATS)
 1347|       |		for (j = 0; j < SCTP_PR_SCTP_MAX + 1; j++) {
 1348|       |			asoc->strmout[i].abandoned_sent[j] = 0;
 1349|       |			asoc->strmout[i].abandoned_unsent[j] = 0;
 1350|       |		}
 1351|       |#else
 1352|  2.61M|		asoc->strmout[i].abandoned_sent[0] = 0;
 1353|  2.61M|		asoc->strmout[i].abandoned_unsent[0] = 0;
 1354|  2.61M|#endif
 1355|  2.61M|		asoc->strmout[i].next_mid_ordered = 0;
 1356|  2.61M|		asoc->strmout[i].next_mid_unordered = 0;
 1357|  2.61M|		asoc->strmout[i].sid = i;
 1358|  2.61M|		asoc->strmout[i].last_msg_incomplete = 0;
 1359|  2.61M|		asoc->strmout[i].state = SCTP_STREAM_OPENING;
  ------------------
  |  |  669|  2.61M|#define SCTP_STREAM_OPENING          0x01
  ------------------
 1360|  2.61M|	}
 1361|  10.1k|	asoc->ss_functions.sctp_ss_init(stcb, asoc);
 1362|  10.1k|	SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  10.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1363|       |
 1364|       |	/* Now the mapping array */
 1365|  10.1k|	asoc->mapping_array_size = SCTP_INITIAL_MAPPING_ARRAY;
  ------------------
  |  |  509|  10.1k|#define SCTP_INITIAL_MAPPING_ARRAY  16
  ------------------
 1366|  10.1k|	SCTP_MALLOC(asoc->mapping_array, uint8_t *, asoc->mapping_array_size,
  ------------------
  |  |  675|  10.1k|	do {								\
  |  |  676|  10.1k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  10.1k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  10.1k|    do {								\
  |  |  |  |  198|  10.1k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  20.3k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  10.1k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 1367|  10.1k|		    SCTP_M_MAP);
 1368|  10.1k|	if (asoc->mapping_array == NULL) {
  ------------------
  |  Branch (1368:6): [True: 0, False: 10.1k]
  ------------------
 1369|      0|		SCTP_FREE(asoc->strmout, SCTP_M_STRMO);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1370|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ENOMEM);
 1371|      0|		return (ENOMEM);
 1372|      0|	}
 1373|  10.1k|	memset(asoc->mapping_array, 0, asoc->mapping_array_size);
 1374|  10.1k|	SCTP_MALLOC(asoc->nr_mapping_array, uint8_t *, asoc->mapping_array_size,
  ------------------
  |  |  675|  10.1k|	do {								\
  |  |  676|  10.1k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  10.1k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  10.1k|    do {								\
  |  |  |  |  198|  10.1k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  20.3k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  10.1k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 1375|  10.1k|	    SCTP_M_MAP);
 1376|  10.1k|	if (asoc->nr_mapping_array == NULL) {
  ------------------
  |  Branch (1376:6): [True: 0, False: 10.1k]
  ------------------
 1377|      0|		SCTP_FREE(asoc->strmout, SCTP_M_STRMO);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1378|      0|		SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1379|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ENOMEM);
 1380|      0|		return (ENOMEM);
 1381|      0|	}
 1382|  10.1k|	memset(asoc->nr_mapping_array, 0, asoc->mapping_array_size);
 1383|       |
 1384|       |	/* Now the init of the other outqueues */
 1385|  10.1k|	TAILQ_INIT(&asoc->free_chunks);
  ------------------
  |  Branch (1385:2): [Folded, False: 10.1k]
  ------------------
 1386|  10.1k|	TAILQ_INIT(&asoc->control_send_queue);
  ------------------
  |  Branch (1386:2): [Folded, False: 10.1k]
  ------------------
 1387|  10.1k|	TAILQ_INIT(&asoc->asconf_send_queue);
  ------------------
  |  Branch (1387:2): [Folded, False: 10.1k]
  ------------------
 1388|  10.1k|	TAILQ_INIT(&asoc->send_queue);
  ------------------
  |  Branch (1388:2): [Folded, False: 10.1k]
  ------------------
 1389|  10.1k|	TAILQ_INIT(&asoc->sent_queue);
  ------------------
  |  Branch (1389:2): [Folded, False: 10.1k]
  ------------------
 1390|  10.1k|	TAILQ_INIT(&asoc->resetHead);
  ------------------
  |  Branch (1390:2): [Folded, False: 10.1k]
  ------------------
 1391|  10.1k|	asoc->max_inbound_streams = inp->sctp_ep.max_open_streams_intome;
 1392|  10.1k|	TAILQ_INIT(&asoc->asconf_queue);
  ------------------
  |  Branch (1392:2): [Folded, False: 10.1k]
  ------------------
 1393|       |	/* authentication fields */
 1394|  10.1k|	asoc->authinfo.random = NULL;
 1395|  10.1k|	asoc->authinfo.active_keyid = 0;
 1396|  10.1k|	asoc->authinfo.assoc_key = NULL;
 1397|  10.1k|	asoc->authinfo.assoc_keyid = 0;
 1398|  10.1k|	asoc->authinfo.recv_key = NULL;
 1399|  10.1k|	asoc->authinfo.recv_keyid = 0;
 1400|  10.1k|	LIST_INIT(&asoc->shared_keys);
  ------------------
  |  Branch (1400:2): [Folded, False: 10.1k]
  ------------------
 1401|  10.1k|	asoc->marked_retrans = 0;
 1402|  10.1k|	asoc->port = inp->sctp_ep.port;
 1403|  10.1k|	asoc->timoinit = 0;
 1404|  10.1k|	asoc->timodata = 0;
 1405|  10.1k|	asoc->timosack = 0;
 1406|  10.1k|	asoc->timoshutdown = 0;
 1407|  10.1k|	asoc->timoheartbeat = 0;
 1408|  10.1k|	asoc->timocookie = 0;
 1409|  10.1k|	asoc->timoshutdownack = 0;
 1410|  10.1k|	(void)SCTP_GETTIME_TIMEVAL(&asoc->start_time);
  ------------------
  |  |  991|  10.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1411|  10.1k|	asoc->discontinuity_time = asoc->start_time;
 1412|  50.8k|	for (i = 0; i < SCTP_PR_SCTP_MAX + 1; i++) {
  ------------------
  |  |  277|  50.8k|#define SCTP_PR_SCTP_MAX  SCTP_PR_SCTP_RTX
  |  |  ------------------
  |  |  |  |  276|  50.8k|#define SCTP_PR_SCTP_RTX  0x0003 /* Number of retransmissions based PR-SCTP */
  |  |  ------------------
  ------------------
  |  Branch (1412:14): [True: 40.6k, False: 10.1k]
  ------------------
 1413|  40.6k|		asoc->abandoned_unsent[i] = 0;
 1414|  40.6k|		asoc->abandoned_sent[i] = 0;
 1415|  40.6k|	}
 1416|       |	/* sa_ignore MEMLEAK {memory is put in the assoc mapping array and freed later when
 1417|       |	 * the association is freed.
 1418|       |	 */
 1419|  10.1k|	return (0);
 1420|  10.1k|}
sctp_expand_mapping_array:
 1459|  2.04k|{
 1460|       |	/* mapping array needs to grow */
 1461|  2.04k|	uint8_t *new_array1, *new_array2;
 1462|  2.04k|	uint32_t new_size;
 1463|       |
 1464|  2.04k|	new_size = asoc->mapping_array_size + ((needed+7)/8 + SCTP_MAPPING_ARRAY_INCR);
  ------------------
  |  |  511|  2.04k|#define SCTP_MAPPING_ARRAY_INCR     32
  ------------------
 1465|  2.04k|	SCTP_MALLOC(new_array1, uint8_t *, new_size, SCTP_M_MAP);
  ------------------
  |  |  675|  2.04k|	do {								\
  |  |  676|  2.04k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  2.04k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  2.04k|    do {								\
  |  |  |  |  198|  2.04k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.08k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 2.04k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  2.04k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 2.04k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  2.04k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 2.04k]
  |  |  ------------------
  ------------------
 1466|  2.04k|	SCTP_MALLOC(new_array2, uint8_t *, new_size, SCTP_M_MAP);
  ------------------
  |  |  675|  2.04k|	do {								\
  |  |  676|  2.04k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  2.04k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  2.04k|    do {								\
  |  |  |  |  198|  2.04k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.08k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 2.04k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  2.04k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 2.04k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  2.04k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 2.04k]
  |  |  ------------------
  ------------------
 1467|  2.04k|	if ((new_array1 == NULL) || (new_array2 == NULL)) {
  ------------------
  |  Branch (1467:6): [True: 0, False: 2.04k]
  |  Branch (1467:30): [True: 0, False: 2.04k]
  ------------------
 1468|       |		/* can't get more, forget it */
 1469|      0|		SCTP_PRINTF("No memory for expansion of SCTP mapping array %d\n", new_size);
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 1470|      0|		if (new_array1) {
  ------------------
  |  Branch (1470:7): [True: 0, False: 0]
  ------------------
 1471|      0|			SCTP_FREE(new_array1, SCTP_M_MAP);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1472|      0|		}
 1473|      0|		if (new_array2) {
  ------------------
  |  Branch (1473:7): [True: 0, False: 0]
  ------------------
 1474|      0|			SCTP_FREE(new_array2, SCTP_M_MAP);
  ------------------
  |  |  679|      0|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|      0|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1475|      0|		}
 1476|      0|		return (-1);
 1477|      0|	}
 1478|  2.04k|	memset(new_array1, 0, new_size);
 1479|  2.04k|	memset(new_array2, 0, new_size);
 1480|  2.04k|	memcpy(new_array1, asoc->mapping_array, asoc->mapping_array_size);
 1481|  2.04k|	memcpy(new_array2, asoc->nr_mapping_array, asoc->mapping_array_size);
 1482|  2.04k|	SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  2.04k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  2.04k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1483|  2.04k|	SCTP_FREE(asoc->nr_mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  2.04k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  2.04k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1484|  2.04k|	asoc->mapping_array = new_array1;
 1485|  2.04k|	asoc->nr_mapping_array = new_array2;
 1486|  2.04k|	asoc->mapping_array_size = new_size;
 1487|  2.04k|	return (0);
 1488|  2.04k|}
sctp_timeout_handler:
 1779|  2.44k|{
 1780|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1781|       |	struct epoch_tracker et;
 1782|       |#endif
 1783|  2.44k|	struct timeval tv;
 1784|  2.44k|	struct sctp_inpcb *inp;
 1785|  2.44k|	struct sctp_tcb *stcb;
 1786|  2.44k|	struct sctp_nets *net;
 1787|  2.44k|	struct sctp_timer *tmr;
 1788|  2.44k|	struct mbuf *op_err;
 1789|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1790|       |	struct socket *so;
 1791|       |#endif
 1792|  2.44k|#if defined(__Userspace__)
 1793|  2.44k|	struct socket *upcall_socket = NULL;
 1794|  2.44k|#endif
 1795|  2.44k|	int type;
 1796|  2.44k|	int i, secret;
 1797|  2.44k|	bool did_output, released_asoc_reference;
 1798|       |
 1799|       |	/*
 1800|       |	 * If inp, stcb or net are not NULL, then references to these were
 1801|       |	 * added when the timer was started, and must be released before this
 1802|       |	 * function returns.
 1803|       |	 */
 1804|  2.44k|	tmr = (struct sctp_timer *)t;
 1805|  2.44k|	inp = (struct sctp_inpcb *)tmr->ep;
 1806|  2.44k|	stcb = (struct sctp_tcb *)tmr->tcb;
 1807|  2.44k|	net = (struct sctp_nets *)tmr->net;
 1808|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1809|       |	CURVNET_SET((struct vnet *)tmr->vnet);
 1810|       |	NET_EPOCH_ENTER(et);
 1811|       |#endif
 1812|  2.44k|	released_asoc_reference = false;
 1813|       |
 1814|       |#ifdef SCTP_AUDITING_ENABLED
 1815|       |	sctp_audit_log(0xF0, (uint8_t) tmr->type);
 1816|       |	sctp_auditing(3, inp, stcb, net);
 1817|       |#endif
 1818|       |
 1819|       |	/* sanity checks... */
 1820|  2.44k|	KASSERT(tmr->self == NULL || tmr->self == tmr,
  ------------------
  |  |  112|  2.44k|	do {                         \
  |  |  113|  4.89k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 2.44k]
  |  |  |  Branch (113:9): [True: 2.44k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  2.44k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.44k]
  |  |  ------------------
  ------------------
 1821|  2.44k|	        ("sctp_timeout_handler: tmr->self corrupted"));
 1822|  2.44k|	KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type),
  ------------------
  |  |  112|  2.44k|	do {                         \
  |  |  113|  4.89k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.44k, False: 0]
  |  |  |  Branch (113:9): [True: 2.44k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  2.44k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.44k]
  |  |  ------------------
  ------------------
 1823|  2.44k|	        ("sctp_timeout_handler: invalid timer type %d", tmr->type));
 1824|  2.44k|	type = tmr->type;
 1825|  2.44k|	KASSERT(stcb == NULL || stcb->sctp_ep == inp,
  ------------------
  |  |  112|  2.44k|	do {                         \
  |  |  113|  4.87k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 23, False: 2.42k]
  |  |  |  Branch (113:9): [True: 2.42k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  2.44k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.44k]
  |  |  ------------------
  ------------------
 1826|  2.44k|	        ("sctp_timeout_handler of type %d: inp = %p, stcb->sctp_ep %p",
 1827|  2.44k|	         type, stcb, stcb->sctp_ep));
 1828|  2.44k|	tmr->stopped_from = 0xa001;
 1829|  2.44k|	if ((stcb != NULL) && (stcb->asoc.state == SCTP_STATE_EMPTY)) {
  ------------------
  |  |  455|  2.42k|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (1829:6): [True: 2.42k, False: 23]
  |  Branch (1829:24): [True: 0, False: 2.42k]
  ------------------
 1830|      0|		SCTPDBG(SCTP_DEBUG_TIMER2,
 1831|      0|		        "Timer type %d handler exiting due to CLOSED association.\n",
 1832|      0|		        type);
 1833|      0|		goto out_decr;
 1834|      0|	}
 1835|  2.44k|	tmr->stopped_from = 0xa002;
 1836|  2.44k|	SCTPDBG(SCTP_DEBUG_TIMER2, "Timer type %d goes off.\n", type);
 1837|  2.44k|	if (!SCTP_OS_TIMER_ACTIVE(&tmr->timer)) {
  ------------------
  |  |  103|  2.44k|#define	SCTP_OS_TIMER_ACTIVE(tmr) ((tmr)->c_flags & SCTP_CALLOUT_ACTIVE)
  |  |  ------------------
  |  |  |  |   82|  2.44k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  |  |  ------------------
  ------------------
  |  Branch (1837:6): [True: 0, False: 2.44k]
  ------------------
 1838|      0|		SCTPDBG(SCTP_DEBUG_TIMER2,
 1839|      0|			"Timer type %d handler exiting due to not being active.\n",
 1840|      0|			type);
 1841|      0|		goto out_decr;
 1842|      0|	}
 1843|       |
 1844|  2.44k|	tmr->stopped_from = 0xa003;
 1845|  2.44k|	if (stcb) {
  ------------------
  |  Branch (1845:6): [True: 2.42k, False: 23]
  ------------------
 1846|  2.42k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  2.42k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.42k|	do {                         \
  |  |  |  |  113|  2.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.42k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  2.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1847|       |		/*
 1848|       |		 * Release reference so that association can be freed if
 1849|       |		 * necessary below.
 1850|       |		 * This is safe now that we have acquired the lock.
 1851|       |		 */
 1852|  2.42k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  2.42k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1853|  2.42k|		released_asoc_reference = true;
 1854|  2.42k|		if ((type != SCTP_TIMER_TYPE_ASOCKILL) &&
  ------------------
  |  |  546|  2.42k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (1854:7): [True: 25, False: 2.40k]
  ------------------
 1855|     25|		    ((stcb->asoc.state == SCTP_STATE_EMPTY) ||
  ------------------
  |  |  455|     25|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (1855:8): [True: 0, False: 25]
  ------------------
 1856|     25|		     (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED))) {
  ------------------
  |  |  465|     25|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (1856:8): [True: 25, False: 0]
  ------------------
 1857|     25|			SCTPDBG(SCTP_DEBUG_TIMER2,
 1858|     25|			        "Timer type %d handler exiting due to CLOSED association.\n",
 1859|     25|			        type);
 1860|     25|			goto out;
 1861|     25|		}
 1862|  2.42k|	} else if (inp != NULL) {
  ------------------
  |  Branch (1862:13): [True: 23, False: 0]
  ------------------
 1863|     23|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|     23|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     23|	do {                         \
  |  |  |  |  113|     23|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     23|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1864|     23|	} else {
 1865|      0|		SCTP_WQ_ADDR_LOCK();
  ------------------
  |  |  277|      0|	KASSERT(pthread_mutex_lock(&SCTP_BASE_INFO(wq_addr_mtx)) == 0, ("%s:%d: wq_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1866|      0|	}
 1867|       |
 1868|       |	/* Record in stopped_from which timeout occurred. */
 1869|  2.42k|	tmr->stopped_from = type;
 1870|       |	/* mark as being serviced now */
 1871|  2.42k|	if (SCTP_OS_TIMER_PENDING(&tmr->timer)) {
  ------------------
  |  |  102|  2.42k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  2.42k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 2.42k]
  |  |  ------------------
  ------------------
 1872|       |		/*
 1873|       |		 * Callout has been rescheduled.
 1874|       |		 */
 1875|      0|		goto out;
 1876|      0|	}
 1877|  2.42k|	if (!SCTP_OS_TIMER_ACTIVE(&tmr->timer)) {
  ------------------
  |  |  103|  2.42k|#define	SCTP_OS_TIMER_ACTIVE(tmr) ((tmr)->c_flags & SCTP_CALLOUT_ACTIVE)
  |  |  ------------------
  |  |  |  |   82|  2.42k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  |  |  ------------------
  ------------------
  |  Branch (1877:6): [True: 0, False: 2.42k]
  ------------------
 1878|       |		/*
 1879|       |		 * Not active, so no action.
 1880|       |		 */
 1881|      0|		goto out;
 1882|      0|	}
 1883|  2.42k|	SCTP_OS_TIMER_DEACTIVATE(&tmr->timer);
  ------------------
  |  |  104|  2.42k|#define	SCTP_OS_TIMER_DEACTIVATE(tmr) ((tmr)->c_flags &= ~SCTP_CALLOUT_ACTIVE)
  |  |  ------------------
  |  |  |  |   82|  2.42k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  |  |  ------------------
  ------------------
 1884|       |
 1885|  2.42k|#if defined(__Userspace__)
 1886|  2.42k|	if ((stcb != NULL) &&
  ------------------
  |  Branch (1886:6): [True: 2.40k, False: 23]
  ------------------
 1887|  2.40k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) &&
  ------------------
  |  |  546|  2.40k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (1887:6): [True: 0, False: 2.40k]
  ------------------
 1888|      0|	    (stcb->sctp_socket != NULL)) {
  ------------------
  |  Branch (1888:6): [True: 0, False: 0]
  ------------------
 1889|      0|		upcall_socket = stcb->sctp_socket;
 1890|      0|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|      0|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1891|      0|		soref(upcall_socket);
  ------------------
  |  |  404|      0|#define	soref(so) do {							\
  |  |  405|      0|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|      0|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  406|      0|	++(so)->so_count;						\
  |  |  407|      0|	SCTPDBG(SCTP_DEBUG_USR, "soref(%p) -> %d, %s:%s:%d\n",		\
  |  |  408|      0|		(so), (so)->so_count,					\
  |  |  409|      0|		__func__, __FILE__, __LINE__)				\
  |  |  410|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (410:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1892|      0|		SOCK_UNLOCK(upcall_socket);
  ------------------
  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1893|      0|	}
 1894|  2.42k|#endif
 1895|       |	/* call the handler for the appropriate timer type */
 1896|  2.42k|	switch (type) {
 1897|      0|	case SCTP_TIMER_TYPE_SEND:
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (1897:2): [True: 0, False: 2.42k]
  ------------------
 1898|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1899|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 1900|      0|		         type, inp, stcb, net));
 1901|      0|		SCTP_STAT_INCR(sctps_timodata);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1902|      0|		stcb->asoc.timodata++;
 1903|      0|		stcb->asoc.num_send_timers_up--;
 1904|      0|		if (stcb->asoc.num_send_timers_up < 0) {
  ------------------
  |  Branch (1904:7): [True: 0, False: 0]
  ------------------
 1905|      0|			stcb->asoc.num_send_timers_up = 0;
 1906|      0|		}
 1907|      0|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1908|      0|		if (sctp_t3rxt_timer(inp, stcb, net)) {
  ------------------
  |  Branch (1908:7): [True: 0, False: 0]
  ------------------
 1909|       |			/* no need to unlock on tcb its gone */
 1910|       |
 1911|      0|			goto out_decr;
 1912|      0|		}
 1913|      0|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|      0|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1914|       |#ifdef SCTP_AUDITING_ENABLED
 1915|       |		sctp_auditing(4, inp, stcb, net);
 1916|       |#endif
 1917|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  362|      0|#define SCTP_OUTPUT_FROM_T3       	1
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1918|      0|		did_output = true;
 1919|      0|		if ((stcb->asoc.num_send_timers_up == 0) &&
  ------------------
  |  Branch (1919:7): [True: 0, False: 0]
  ------------------
 1920|      0|		    (stcb->asoc.sent_queue_cnt > 0)) {
  ------------------
  |  Branch (1920:7): [True: 0, False: 0]
  ------------------
 1921|      0|			struct sctp_tmit_chunk *chk;
 1922|       |
 1923|       |			/*
 1924|       |			 * Safeguard. If there on some on the sent queue
 1925|       |			 * somewhere but no timers running something is
 1926|       |			 * wrong... so we start a timer on the first chunk
 1927|       |			 * on the send queue on whatever net it is sent to.
 1928|       |			 */
 1929|      0|			TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (1929:4): [True: 0, False: 0]
  ------------------
 1930|      0|				if (chk->whoTo != NULL) {
  ------------------
  |  Branch (1930:9): [True: 0, False: 0]
  ------------------
 1931|      0|					break;
 1932|      0|				}
 1933|      0|			}
 1934|      0|			if (chk != NULL) {
  ------------------
  |  Branch (1934:8): [True: 0, False: 0]
  ------------------
 1935|      0|				sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 1936|      0|			}
 1937|      0|		}
 1938|      0|		break;
 1939|      0|	case SCTP_TIMER_TYPE_INIT:
  ------------------
  |  |  533|      0|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (1939:2): [True: 0, False: 2.42k]
  ------------------
 1940|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1941|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 1942|      0|		         type, inp, stcb, net));
 1943|      0|		SCTP_STAT_INCR(sctps_timoinit);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1944|      0|		stcb->asoc.timoinit++;
 1945|      0|		if (sctp_t1init_timer(inp, stcb, net)) {
  ------------------
  |  Branch (1945:7): [True: 0, False: 0]
  ------------------
 1946|       |			/* no need to unlock on tcb its gone */
 1947|      0|			goto out_decr;
 1948|      0|		}
 1949|      0|		did_output = false;
 1950|      0|		break;
 1951|      0|	case SCTP_TIMER_TYPE_RECV:
  ------------------
  |  |  534|      0|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  |  Branch (1951:2): [True: 0, False: 2.42k]
  ------------------
 1952|      0|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1953|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 1954|      0|		         type, inp, stcb, net));
 1955|      0|		SCTP_STAT_INCR(sctps_timosack);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1956|      0|		stcb->asoc.timosack++;
 1957|      0|		sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1958|       |#ifdef SCTP_AUDITING_ENABLED
 1959|       |		sctp_auditing(4, inp, stcb, NULL);
 1960|       |#endif
 1961|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SACK_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  365|      0|#define SCTP_OUTPUT_FROM_SACK_TMR       4
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SACK_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1962|      0|		did_output = true;
 1963|      0|		break;
 1964|      0|	case SCTP_TIMER_TYPE_SHUTDOWN:
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  |  Branch (1964:2): [True: 0, False: 2.42k]
  ------------------
 1965|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1966|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 1967|      0|		         type, inp, stcb, net));
 1968|      0|		SCTP_STAT_INCR(sctps_timoshutdown);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1969|      0|		stcb->asoc.timoshutdown++;
 1970|      0|		if (sctp_shutdown_timer(inp, stcb, net)) {
  ------------------
  |  Branch (1970:7): [True: 0, False: 0]
  ------------------
 1971|       |			/* no need to unlock on tcb its gone */
 1972|      0|			goto out_decr;
 1973|      0|		}
 1974|       |#ifdef SCTP_AUDITING_ENABLED
 1975|       |		sctp_auditing(4, inp, stcb, net);
 1976|       |#endif
 1977|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SHUT_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  366|      0|#define SCTP_OUTPUT_FROM_SHUT_TMR       5
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SHUT_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1978|      0|		did_output = true;
 1979|      0|		break;
 1980|      0|	case SCTP_TIMER_TYPE_HEARTBEAT:
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  |  Branch (1980:2): [True: 0, False: 2.42k]
  ------------------
 1981|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1982|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 1983|      0|		         type, inp, stcb, net));
 1984|      0|		SCTP_STAT_INCR(sctps_timoheartbeat);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1985|      0|		stcb->asoc.timoheartbeat++;
 1986|      0|		if (sctp_heartbeat_timer(inp, stcb, net)) {
  ------------------
  |  Branch (1986:7): [True: 0, False: 0]
  ------------------
 1987|       |			/* no need to unlock on tcb its gone */
 1988|      0|			goto out_decr;
 1989|      0|		}
 1990|       |#ifdef SCTP_AUDITING_ENABLED
 1991|       |		sctp_auditing(4, inp, stcb, net);
 1992|       |#endif
 1993|      0|		if ((net->dest_state & SCTP_ADDR_NOHB) == 0) {
  ------------------
  |  |  483|      0|#define SCTP_ADDR_NOHB			0x004
  ------------------
  |  Branch (1993:7): [True: 0, False: 0]
  ------------------
 1994|      0|			sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net);
  ------------------
  |  |  536|      0|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 1995|      0|			sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_HB_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  367|      0|#define SCTP_OUTPUT_FROM_HB_TMR         6
  ------------------
              			sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_HB_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1996|      0|			did_output = true;
 1997|      0|		} else {
 1998|      0|			did_output = false;
 1999|      0|		}
 2000|      0|		break;
 2001|      0|	case SCTP_TIMER_TYPE_COOKIE:
  ------------------
  |  |  537|      0|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (2001:2): [True: 0, False: 2.42k]
  ------------------
 2002|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2003|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2004|      0|		         type, inp, stcb, net));
 2005|      0|		SCTP_STAT_INCR(sctps_timocookie);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2006|      0|		stcb->asoc.timocookie++;
 2007|      0|		if (sctp_cookie_timer(inp, stcb, net)) {
  ------------------
  |  Branch (2007:7): [True: 0, False: 0]
  ------------------
 2008|       |			/* no need to unlock on tcb its gone */
 2009|      0|			goto out_decr;
 2010|      0|		}
 2011|       |#ifdef SCTP_AUDITING_ENABLED
 2012|       |		sctp_auditing(4, inp, stcb, net);
 2013|       |#endif
 2014|       |		/*
 2015|       |		 * We consider T3 and Cookie timer pretty much the same with
 2016|       |		 * respect to where from in chunk_output.
 2017|       |		 */
 2018|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  362|      0|#define SCTP_OUTPUT_FROM_T3       	1
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2019|      0|		did_output = true;
 2020|      0|		break;
 2021|      0|	case SCTP_TIMER_TYPE_NEWCOOKIE:
  ------------------
  |  |  538|      0|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
  |  Branch (2021:2): [True: 0, False: 2.42k]
  ------------------
 2022|      0|		KASSERT(inp != NULL && stcb == NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2023|      0|			("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2024|      0|			 type, inp, stcb, net));
 2025|      0|		SCTP_STAT_INCR(sctps_timosecret);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2026|      0|		(void)SCTP_GETTIME_TIMEVAL(&tv);
  ------------------
  |  |  991|      0|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 2027|      0|		inp->sctp_ep.time_of_secret_change = tv.tv_sec;
 2028|      0|		inp->sctp_ep.last_secret_number =
 2029|      0|		    inp->sctp_ep.current_secret_number;
 2030|      0|		inp->sctp_ep.current_secret_number++;
 2031|      0|		if (inp->sctp_ep.current_secret_number >=
  ------------------
  |  Branch (2031:7): [True: 0, False: 0]
  ------------------
 2032|      0|		    SCTP_HOW_MANY_SECRETS) {
  ------------------
  |  |  695|      0|#define SCTP_HOW_MANY_SECRETS	2	/* how many secrets I keep */
  ------------------
 2033|      0|			inp->sctp_ep.current_secret_number = 0;
 2034|      0|		}
 2035|      0|		secret = (int)inp->sctp_ep.current_secret_number;
 2036|      0|		for (i = 0; i < SCTP_NUMBER_OF_SECRETS; i++) {
  ------------------
  |  |  697|      0|#define SCTP_NUMBER_OF_SECRETS	8	/* or 8 * 4 = 32 octets */
  ------------------
  |  Branch (2036:15): [True: 0, False: 0]
  ------------------
 2037|      0|			inp->sctp_ep.secret_key[secret][i] =
 2038|      0|			    sctp_select_initial_TSN(&inp->sctp_ep);
 2039|      0|		}
 2040|      0|		sctp_timer_start(SCTP_TIMER_TYPE_NEWCOOKIE, inp, NULL, NULL);
  ------------------
  |  |  538|      0|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 2041|      0|		did_output = false;
 2042|      0|		break;
 2043|      0|	case SCTP_TIMER_TYPE_PATHMTURAISE:
  ------------------
  |  |  539|      0|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  |  Branch (2043:2): [True: 0, False: 2.42k]
  ------------------
 2044|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2045|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2046|      0|		         type, inp, stcb, net));
 2047|      0|		SCTP_STAT_INCR(sctps_timopathmtu);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2048|      0|		sctp_pathmtu_timer(inp, stcb, net);
 2049|      0|		did_output = false;
 2050|      0|		break;
 2051|      0|	case SCTP_TIMER_TYPE_SHUTDOWNACK:
  ------------------
  |  |  540|      0|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  |  Branch (2051:2): [True: 0, False: 2.42k]
  ------------------
 2052|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2053|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2054|      0|		         type, inp, stcb, net));
 2055|      0|		if (sctp_shutdownack_timer(inp, stcb, net)) {
  ------------------
  |  Branch (2055:7): [True: 0, False: 0]
  ------------------
 2056|       |			/* no need to unlock on tcb its gone */
 2057|      0|			goto out_decr;
 2058|      0|		}
 2059|      0|		SCTP_STAT_INCR(sctps_timoshutdownack);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2060|      0|		stcb->asoc.timoshutdownack++;
 2061|       |#ifdef SCTP_AUDITING_ENABLED
 2062|       |		sctp_auditing(4, inp, stcb, net);
 2063|       |#endif
 2064|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SHUT_ACK_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  368|      0|#define SCTP_OUTPUT_FROM_SHUT_ACK_TMR   7
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_SHUT_ACK_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2065|      0|		did_output = true;
 2066|      0|		break;
 2067|      0|	case SCTP_TIMER_TYPE_ASCONF:
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  |  Branch (2067:2): [True: 0, False: 2.42k]
  ------------------
 2068|      0|		KASSERT(inp != NULL && stcb != NULL && net != NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2069|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2070|      0|		         type, inp, stcb, net));
 2071|      0|		SCTP_STAT_INCR(sctps_timoasconf);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2072|      0|		if (sctp_asconf_timer(inp, stcb, net)) {
  ------------------
  |  Branch (2072:7): [True: 0, False: 0]
  ------------------
 2073|       |			/* no need to unlock on tcb its gone */
 2074|      0|			goto out_decr;
 2075|      0|		}
 2076|       |#ifdef SCTP_AUDITING_ENABLED
 2077|       |		sctp_auditing(4, inp, stcb, net);
 2078|       |#endif
 2079|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_ASCONF_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  369|      0|#define SCTP_OUTPUT_FROM_ASCONF_TMR     8
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_ASCONF_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2080|      0|		did_output = true;
 2081|      0|		break;
 2082|      0|	case SCTP_TIMER_TYPE_SHUTDOWNGUARD:
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
  |  Branch (2082:2): [True: 0, False: 2.42k]
  ------------------
 2083|      0|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2084|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2085|      0|		         type, inp, stcb, net));
 2086|      0|		SCTP_STAT_INCR(sctps_timoshutdownguard);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2087|      0|		op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2088|      0|		                             "Shutdown guard timer expired");
 2089|      0|		sctp_abort_an_association(inp, stcb, op_err, true, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2090|       |		/* no need to unlock on tcb its gone */
 2091|      0|		goto out_decr;
 2092|      0|	case SCTP_TIMER_TYPE_AUTOCLOSE:
  ------------------
  |  |  543|      0|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  |  Branch (2092:2): [True: 0, False: 2.42k]
  ------------------
 2093|      0|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2094|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2095|      0|		         type, inp, stcb, net));
 2096|      0|		SCTP_STAT_INCR(sctps_timoautoclose);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2097|      0|		sctp_autoclose_timer(inp, stcb);
 2098|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_AUTOCLOSE_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  371|      0|#define SCTP_OUTPUT_FROM_AUTOCLOSE_TMR  10
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_AUTOCLOSE_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2099|      0|		did_output = true;
 2100|      0|		break;
 2101|      0|	case SCTP_TIMER_TYPE_STRRESET:
  ------------------
  |  |  544|      0|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2101:2): [True: 0, False: 2.42k]
  ------------------
 2102|      0|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2103|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2104|      0|		         type, inp, stcb, net));
 2105|      0|		SCTP_STAT_INCR(sctps_timostrmrst);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2106|      0|		if (sctp_strreset_timer(inp, stcb)) {
  ------------------
  |  Branch (2106:7): [True: 0, False: 0]
  ------------------
 2107|       |			/* no need to unlock on tcb its gone */
 2108|      0|			goto out_decr;
 2109|      0|		}
 2110|      0|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  370|      0|#define SCTP_OUTPUT_FROM_STRRST_TMR     9
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_TMR, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      0|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2111|      0|		did_output = true;
 2112|      0|		break;
 2113|     23|	case SCTP_TIMER_TYPE_INPKILL:
  ------------------
  |  |  545|     23|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
  |  Branch (2113:2): [True: 23, False: 2.40k]
  ------------------
 2114|     23|		KASSERT(inp != NULL && stcb == NULL && net == NULL,
  ------------------
  |  |  112|     23|	do {                         \
  |  |  113|     92|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 23, False: 0]
  |  |  |  Branch (113:9): [True: 23, False: 0]
  |  |  |  Branch (113:9): [True: 23, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|     23|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 23]
  |  |  ------------------
  ------------------
 2115|     23|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2116|     23|		         type, inp, stcb, net));
 2117|     23|		SCTP_STAT_INCR(sctps_timoinpkill);
  ------------------
  |  | 1112|     23|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     23|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     23|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2118|       |		/*
 2119|       |		 * special case, take away our increment since WE are the
 2120|       |		 * killer
 2121|       |		 */
 2122|     23|		sctp_timer_stop(SCTP_TIMER_TYPE_INPKILL, inp, NULL, NULL,
  ------------------
  |  |  545|     23|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
 2123|     23|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_3);
  ------------------
  |  |  760|     23|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_3);
  ------------------
  |  |  771|     23|#define SCTP_LOC_3  0x00000003
  ------------------
 2124|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2125|       |		SCTP_SOCKET_LOCK(SCTP_INP_SO(inp), 1);
 2126|       |#endif
 2127|     23|		SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|     23|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|     23|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 2128|     23|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|     23|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     23|	do {                         \
  |  |  |  |  113|     23|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 23]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     23|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 23]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2129|     23|		sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_ABORT,
  ------------------
  |  |  869|     23|#define SCTP_FREE_SHOULD_USE_ABORT          1
  ------------------
 2130|     23|		                SCTP_CALLED_FROM_INPKILL_TIMER);
  ------------------
  |  |  867|     23|#define SCTP_CALLED_FROM_INPKILL_TIMER    2
  ------------------
 2131|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2132|       |		SCTP_SOCKET_UNLOCK(SCTP_INP_SO(inp), 1);
 2133|       |#endif
 2134|     23|		inp = NULL;
 2135|     23|		goto out_decr;
 2136|  2.40k|	case SCTP_TIMER_TYPE_ASOCKILL:
  ------------------
  |  |  546|  2.40k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2136:2): [True: 2.40k, False: 23]
  ------------------
 2137|  2.40k|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|  2.40k|	do {                         \
  |  |  113|  9.60k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.40k, False: 0]
  |  |  |  Branch (113:9): [True: 2.40k, False: 0]
  |  |  |  Branch (113:9): [True: 2.40k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  2.40k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.40k]
  |  |  ------------------
  ------------------
 2138|  2.40k|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2139|  2.40k|		         type, inp, stcb, net));
 2140|  2.40k|		SCTP_STAT_INCR(sctps_timoassockill);
  ------------------
  |  | 1112|  2.40k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.40k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.40k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2141|       |		/* Can we free it yet? */
 2142|  2.40k|		sctp_timer_stop(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL,
  ------------------
  |  |  546|  2.40k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 2143|  2.40k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_1);
  ------------------
  |  |  760|  2.40k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_1);
  ------------------
  |  |  769|  2.40k|#define SCTP_LOC_1  0x00000001
  ------------------
 2144|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2145|       |		so = SCTP_INP_SO(inp);
 2146|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 2147|       |		SCTP_TCB_UNLOCK(stcb);
 2148|       |		SCTP_SOCKET_LOCK(so, 1);
 2149|       |		SCTP_TCB_LOCK(stcb);
 2150|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 2151|       |#endif
 2152|  2.40k|		(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|  2.40k|#define SCTP_NORMAL_PROC      0
  ------------------
 2153|  2.40k|		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_2);
  ------------------
  |  |  760|  2.40k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_2);
  ------------------
  |  |  770|  2.40k|#define SCTP_LOC_2  0x00000002
  ------------------
 2154|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2155|       |		SCTP_SOCKET_UNLOCK(so, 1);
 2156|       |#endif
 2157|       |		/*
 2158|       |		 * free asoc, always unlocks (or destroy's) so prevent
 2159|       |		 * duplicate unlock or unlock of a free mtx :-0
 2160|       |		 */
 2161|  2.40k|		stcb = NULL;
 2162|  2.40k|		goto out_decr;
 2163|      0|	case SCTP_TIMER_TYPE_ADDR_WQ:
  ------------------
  |  |  547|      0|#define SCTP_TIMER_TYPE_ADDR_WQ		16
  ------------------
  |  Branch (2163:2): [True: 0, False: 2.42k]
  ------------------
 2164|      0|		KASSERT(inp == NULL && stcb == NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2165|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2166|      0|		         type, inp, stcb, net));
 2167|      0|		sctp_handle_addr_wq();
 2168|      0|		did_output = true;
 2169|      0|		break;
 2170|      0|	case SCTP_TIMER_TYPE_PRIM_DELETED:
  ------------------
  |  |  548|      0|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  |  Branch (2170:2): [True: 0, False: 2.42k]
  ------------------
 2171|      0|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2172|      0|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2173|      0|		         type, inp, stcb, net));
 2174|      0|		SCTP_STAT_INCR(sctps_timodelprim);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2175|      0|		sctp_delete_prim_timer(inp, stcb);
 2176|      0|		did_output = false;
 2177|      0|		break;
 2178|      0|	default:
  ------------------
  |  Branch (2178:2): [True: 0, False: 2.42k]
  ------------------
 2179|      0|#ifdef INVARIANTS
 2180|      0|		panic("Unknown timer type %d", type);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2181|       |#else
 2182|       |		goto out;
 2183|       |#endif
 2184|  2.42k|	}
 2185|       |#ifdef SCTP_AUDITING_ENABLED
 2186|       |	sctp_audit_log(0xF1, (uint8_t) type);
 2187|       |	if (inp != NULL)
 2188|       |		sctp_auditing(5, inp, stcb, net);
 2189|       |#endif
 2190|      0|	if (did_output && (stcb != NULL)) {
  ------------------
  |  Branch (2190:6): [True: 0, False: 0]
  |  Branch (2190:20): [True: 0, False: 0]
  ------------------
 2191|       |		/*
 2192|       |		 * Now we need to clean up the control chunk chain if an
 2193|       |		 * ECNE is on it. It must be marked as UNSENT again so next
 2194|       |		 * call will continue to send it until such time that we get
 2195|       |		 * a CWR, to remove it. It is, however, less likely that we
 2196|       |		 * will find a ecn echo on the chain though.
 2197|       |		 */
 2198|      0|		sctp_fix_ecn_echo(&stcb->asoc);
 2199|      0|	}
 2200|     25|out:
 2201|     25|	if (stcb != NULL) {
  ------------------
  |  Branch (2201:6): [True: 25, False: 0]
  ------------------
 2202|     25|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     25|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     25|	do {                         \
  |  |  |  |  113|     25|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 25]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     25|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 25]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2203|     25|	} else if (inp != NULL) {
  ------------------
  |  Branch (2203:13): [True: 0, False: 0]
  ------------------
 2204|      0|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2205|      0|	} else {
 2206|      0|		SCTP_WQ_ADDR_UNLOCK();
  ------------------
  |  |  279|      0|	KASSERT(pthread_mutex_unlock(&SCTP_BASE_INFO(wq_addr_mtx)) == 0, ("%s:%d: wq_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2207|      0|	}
 2208|       |
 2209|  2.44k|out_decr:
 2210|  2.44k|#if defined(__Userspace__)
 2211|  2.44k|	if (upcall_socket != NULL) {
  ------------------
  |  Branch (2211:6): [True: 0, False: 2.44k]
  ------------------
 2212|      0|		if ((upcall_socket->so_upcall != NULL) &&
  ------------------
  |  Branch (2212:7): [True: 0, False: 0]
  ------------------
 2213|      0|		    (upcall_socket->so_error != 0)) {
  ------------------
  |  Branch (2213:7): [True: 0, False: 0]
  ------------------
 2214|      0|			(*upcall_socket->so_upcall)(upcall_socket, upcall_socket->so_upcallarg, M_NOWAIT);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2215|      0|		}
 2216|      0|		ACCEPT_LOCK();
  ------------------
  |  |  256|      0|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2217|      0|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|      0|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2218|      0|		sorele(upcall_socket);
  ------------------
  |  |  412|      0|#define	sorele(so) do {							\
  |  |  413|      0|	ACCEPT_LOCK_ASSERT();						\
  |  |  ------------------
  |  |  |  |  263|      0|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  414|      0|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|      0|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  415|      0|	KASSERT((so)->so_count > 0, ("sorele"));			\
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  416|      0|	if (--(so)->so_count == 0) {					\
  |  |  ------------------
  |  |  |  Branch (416:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  417|      0|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  418|      0|			(so), (so)->so_count,				\
  |  |  419|      0|			__func__, __FILE__, __LINE__)			\
  |  |  420|      0|		sofree(so);						\
  |  |  421|      0|	}								\
  |  |  422|      0|	else {								\
  |  |  423|      0|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  424|      0|			(so), (so)->so_count,				\
  |  |  425|      0|			__func__, __FILE__, __LINE__)			\
  |  |  426|      0|		SOCK_UNLOCK(so);					\
  |  |  ------------------
  |  |  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  427|      0|		ACCEPT_UNLOCK();					\
  |  |  ------------------
  |  |  |  |  257|      0|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  428|      0|	}								\
  |  |  429|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (429:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2219|      0|	}
 2220|  2.44k|#endif
 2221|       |	/* These reference counts were incremented in sctp_timer_start(). */
 2222|  2.44k|	if (inp != NULL) {
  ------------------
  |  Branch (2222:6): [True: 2.42k, False: 23]
  ------------------
 2223|  2.42k|		SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  2.42k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  2.42k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 2224|  2.42k|	}
 2225|  2.44k|	if ((stcb != NULL) && !released_asoc_reference) {
  ------------------
  |  Branch (2225:6): [True: 25, False: 2.42k]
  |  Branch (2225:24): [True: 0, False: 25]
  ------------------
 2226|      0|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 2227|      0|	}
 2228|  2.44k|	if (net != NULL) {
  ------------------
  |  Branch (2228:6): [True: 25, False: 2.42k]
  ------------------
 2229|     25|		sctp_free_remote_addr(net);
  ------------------
  |  |  228|     25|#define sctp_free_remote_addr(__net) { \
  |  |  229|     25|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 25, False: 0]
  |  |  ------------------
  |  |  230|     25|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|     25|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|     25|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 11, False: 14]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|     11|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 11, False: 0]
  |  |  ------------------
  |  |  232|     11|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|     11|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|     11|		RT_LOCK(_rt);					\
  |  |  |  |  128|     11|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|     11|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|     11|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 11, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|     11|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|     11|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|     11|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|     11|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|     11|		_rt = NULL;					\
  |  |  |  |  |  |  125|     11|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 11]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|     11|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|     11|				(__net)->ro.ro_rt = NULL; \
  |  |  234|     11|			} \
  |  |  235|     11|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 11]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|     11|			(__net)->src_addr_selected = 0; \
  |  |  240|     11|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|     11|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|     11|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|     11|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     11|	free(element);  \
  |  |  |  |  709|     11|}
  |  |  ------------------
  |  |  242|     11|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|     11|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     11|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|     11|		} \
  |  |  244|     25|	} \
  |  |  245|     25|}
  ------------------
 2230|     25|	}
 2231|  2.44k|	SCTPDBG(SCTP_DEBUG_TIMER2, "Timer type %d handler finished.\n", type);
 2232|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2233|       |	CURVNET_RESTORE();
 2234|       |	NET_EPOCH_EXIT(et);
 2235|       |#endif
 2236|  2.44k|}
sctp_timer_start:
 2268|   157k|{
 2269|   157k|	struct sctp_timer *tmr;
 2270|   157k|	uint32_t to_ticks;
 2271|   157k|	uint32_t rndval, jitter;
 2272|       |
 2273|   157k|	KASSERT(stcb == NULL || stcb->sctp_ep == inp,
  ------------------
  |  |  112|   157k|	do {                         \
  |  |  113|   305k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 10.1k, False: 147k]
  |  |  |  Branch (113:9): [True: 147k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   157k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 157k]
  |  |  ------------------
  ------------------
 2274|   157k|	        ("sctp_timer_start of type %d: inp = %p, stcb->sctp_ep %p",
 2275|   157k|	         t_type, stcb, stcb->sctp_ep));
 2276|   157k|	tmr = NULL;
 2277|   157k|	if (stcb != NULL) {
  ------------------
  |  Branch (2277:6): [True: 147k, False: 10.1k]
  ------------------
 2278|   147k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   147k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   147k|	do {                         \
  |  |  |  |  113|   147k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 147k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   147k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 147k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2279|   147k|	} else if (inp != NULL) {
  ------------------
  |  Branch (2279:13): [True: 10.1k, False: 0]
  ------------------
 2280|  10.1k|		SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  10.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2281|  10.1k|	} else {
 2282|      0|		SCTP_WQ_ADDR_LOCK_ASSERT();
  ------------------
  |  |  287|      0|	KASSERT(pthread_mutex_trylock(&SCTP_BASE_INFO(wq_addr_mtx)) == EBUSY, ("%s:%d: wq_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2283|      0|	}
 2284|   157k|	if (stcb != NULL) {
  ------------------
  |  Branch (2284:6): [True: 147k, False: 10.1k]
  ------------------
 2285|       |		/* Don't restart timer on association that's about to be killed. */
 2286|   147k|		if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) &&
  ------------------
  |  |  465|   147k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (2286:7): [True: 2.40k, False: 145k]
  ------------------
 2287|  2.40k|		    (t_type != SCTP_TIMER_TYPE_ASOCKILL)) {
  ------------------
  |  |  546|  2.40k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2287:7): [True: 0, False: 2.40k]
  ------------------
 2288|      0|			SCTPDBG(SCTP_DEBUG_TIMER2,
 2289|      0|				"Timer type %d not started: inp=%p, stcb=%p, net=%p (stcb deleted).\n",
 2290|      0|				t_type, inp, stcb, net);
 2291|      0|			return;
 2292|      0|		}
 2293|       |		/* Don't restart timer on net that's been removed. */
 2294|   147k|		if (net != NULL && (net->dest_state & SCTP_ADDR_BEING_DELETED)) {
  ------------------
  |  |  484|   145k|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (2294:7): [True: 145k, False: 2.49k]
  |  Branch (2294:22): [True: 0, False: 145k]
  ------------------
 2295|      0|			SCTPDBG(SCTP_DEBUG_TIMER2,
 2296|      0|				"Timer type %d not started: inp=%p, stcb=%p, net=%p (net deleted).\n",
 2297|      0|				t_type, inp, stcb, net);
 2298|      0|			return;
 2299|      0|		}
 2300|   147k|	}
 2301|   157k|	switch (t_type) {
 2302|  6.59k|	case SCTP_TIMER_TYPE_SEND:
  ------------------
  |  |  532|  6.59k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2302:2): [True: 6.59k, False: 151k]
  ------------------
 2303|       |		/* Here we use the RTO timer. */
 2304|  6.59k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2304:7): [True: 0, False: 6.59k]
  |  Branch (2304:24): [True: 0, False: 6.59k]
  |  Branch (2304:42): [True: 0, False: 6.59k]
  ------------------
 2305|      0|#ifdef INVARIANTS
 2306|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2307|      0|			      t_type, inp, stcb, net);
 2308|       |#else
 2309|       |			return;
 2310|       |#endif
 2311|      0|		}
 2312|  6.59k|		tmr = &net->rxt_timer;
 2313|  6.59k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2313:7): [True: 140, False: 6.45k]
  ------------------
 2314|    140|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2315|  6.45k|		} else {
 2316|  6.45k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2317|  6.45k|		}
 2318|  6.59k|		break;
 2319|  19.2k|	case SCTP_TIMER_TYPE_INIT:
  ------------------
  |  |  533|  19.2k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (2319:2): [True: 19.2k, False: 138k]
  ------------------
 2320|       |		/*
 2321|       |		 * Here we use the INIT timer default usually about 1
 2322|       |		 * second.
 2323|       |		 */
 2324|  19.2k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2324:7): [True: 0, False: 19.2k]
  |  Branch (2324:24): [True: 0, False: 19.2k]
  |  Branch (2324:42): [True: 0, False: 19.2k]
  ------------------
 2325|      0|#ifdef INVARIANTS
 2326|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2327|      0|			      t_type, inp, stcb, net);
 2328|       |#else
 2329|       |			return;
 2330|       |#endif
 2331|      0|		}
 2332|  19.2k|		tmr = &net->rxt_timer;
 2333|  19.2k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2333:7): [True: 17.1k, False: 2.11k]
  ------------------
 2334|  17.1k|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2335|  17.1k|		} else {
 2336|  2.11k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2337|  2.11k|		}
 2338|  19.2k|		break;
 2339|     96|	case SCTP_TIMER_TYPE_RECV:
  ------------------
  |  |  534|     96|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  |  Branch (2339:2): [True: 96, False: 157k]
  ------------------
 2340|       |		/*
 2341|       |		 * Here we use the Delayed-Ack timer value from the inp,
 2342|       |		 * usually about 200ms.
 2343|       |		 */
 2344|     96|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2344:7): [True: 0, False: 96]
  |  Branch (2344:24): [True: 0, False: 96]
  |  Branch (2344:42): [True: 0, False: 96]
  ------------------
 2345|      0|#ifdef INVARIANTS
 2346|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2347|      0|			      t_type, inp, stcb, net);
 2348|       |#else
 2349|       |			return;
 2350|       |#endif
 2351|      0|		}
 2352|     96|		tmr = &stcb->asoc.dack_timer;
 2353|     96|		to_ticks = sctp_msecs_to_ticks(stcb->asoc.delayed_ack);
 2354|     96|		break;
 2355|      0|	case SCTP_TIMER_TYPE_SHUTDOWN:
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  |  Branch (2355:2): [True: 0, False: 157k]
  ------------------
 2356|       |		/* Here we use the RTO of the destination. */
 2357|      0|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2357:7): [True: 0, False: 0]
  |  Branch (2357:24): [True: 0, False: 0]
  |  Branch (2357:42): [True: 0, False: 0]
  ------------------
 2358|      0|#ifdef INVARIANTS
 2359|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2360|      0|			      t_type, inp, stcb, net);
 2361|       |#else
 2362|       |			return;
 2363|       |#endif
 2364|      0|		}
 2365|      0|		tmr = &net->rxt_timer;
 2366|      0|		if (net->RTO == 0) {
  ------------------
  |  Branch (2366:7): [True: 0, False: 0]
  ------------------
 2367|      0|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2368|      0|		} else {
 2369|      0|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2370|      0|		}
 2371|      0|		break;
 2372|  53.1k|	case SCTP_TIMER_TYPE_HEARTBEAT:
  ------------------
  |  |  536|  53.1k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  |  Branch (2372:2): [True: 53.1k, False: 104k]
  ------------------
 2373|       |		/*
 2374|       |		 * The net is used here so that we can add in the RTO. Even
 2375|       |		 * though we use a different timer. We also add the HB timer
 2376|       |		 * PLUS a random jitter.
 2377|       |		 */
 2378|  53.1k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2378:7): [True: 0, False: 53.1k]
  |  Branch (2378:24): [True: 0, False: 53.1k]
  |  Branch (2378:42): [True: 0, False: 53.1k]
  ------------------
 2379|      0|#ifdef INVARIANTS
 2380|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2381|      0|			      t_type, inp, stcb, net);
 2382|       |#else
 2383|       |			return;
 2384|       |#endif
 2385|      0|		}
 2386|  53.1k|		if ((net->dest_state & SCTP_ADDR_NOHB) &&
  ------------------
  |  |  483|  53.1k|#define SCTP_ADDR_NOHB			0x004
  ------------------
  |  Branch (2386:7): [True: 0, False: 53.1k]
  ------------------
 2387|      0|		    ((net->dest_state & SCTP_ADDR_UNCONFIRMED) == 0)) {
  ------------------
  |  |  487|      0|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (2387:7): [True: 0, False: 0]
  ------------------
 2388|      0|			SCTPDBG(SCTP_DEBUG_TIMER2,
 2389|      0|			        "Timer type %d not started: inp=%p, stcb=%p, net=%p.\n",
 2390|      0|			        t_type, inp, stcb, net);
 2391|      0|			return;
 2392|      0|		}
 2393|  53.1k|		tmr = &net->hb_timer;
 2394|  53.1k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2394:7): [True: 42.8k, False: 10.3k]
  ------------------
 2395|  42.8k|			to_ticks = stcb->asoc.initial_rto;
 2396|  42.8k|		} else {
 2397|  10.3k|			to_ticks = net->RTO;
 2398|  10.3k|		}
 2399|  53.1k|		if (!((net->dest_state & SCTP_ADDR_UNCONFIRMED) &&
  ------------------
  |  |  487|  53.1k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (2399:9): [True: 40.1k, False: 13.0k]
  ------------------
 2400|  40.1k|		      (net->dest_state & SCTP_ADDR_REACHABLE)) &&
  ------------------
  |  |  481|  40.1k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (2400:9): [True: 40.1k, False: 0]
  ------------------
 2401|  13.0k|		    ((net->dest_state & SCTP_ADDR_PF) == 0)) {
  ------------------
  |  |  490|  13.0k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (2401:7): [True: 13.0k, False: 0]
  ------------------
 2402|  13.0k|			if (to_ticks > 1) {
  ------------------
  |  Branch (2402:8): [True: 13.0k, False: 0]
  ------------------
 2403|  13.0k|				rndval = sctp_select_initial_TSN(&inp->sctp_ep);
 2404|  13.0k|				jitter = rndval % to_ticks;
 2405|  13.0k|				to_ticks >>= 1;
 2406|  13.0k|				if (jitter < (UINT32_MAX - to_ticks)) {
  ------------------
  |  Branch (2406:9): [True: 13.0k, False: 0]
  ------------------
 2407|  13.0k|					to_ticks += jitter;
 2408|  13.0k|				} else {
 2409|      0|					to_ticks = UINT32_MAX;
 2410|      0|				}
 2411|  13.0k|			}
 2412|  13.0k|			if (net->heart_beat_delay < (UINT32_MAX - to_ticks)) {
  ------------------
  |  Branch (2412:8): [True: 13.0k, False: 0]
  ------------------
 2413|  13.0k|				to_ticks += net->heart_beat_delay;
 2414|  13.0k|			} else {
 2415|      0|				to_ticks = UINT32_MAX;
 2416|      0|			}
 2417|  13.0k|		}
 2418|       |		/*
 2419|       |		 * Now we must convert the to_ticks that are now in
 2420|       |		 * ms to ticks.
 2421|       |		 */
 2422|  53.1k|		to_ticks = sctp_msecs_to_ticks(to_ticks);
 2423|  53.1k|		break;
 2424|  15.7k|	case SCTP_TIMER_TYPE_COOKIE:
  ------------------
  |  |  537|  15.7k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (2424:2): [True: 15.7k, False: 142k]
  ------------------
 2425|       |		/*
 2426|       |		 * Here we can use the RTO timer from the network since one
 2427|       |		 * RTT was complete. If a retransmission happened then we will
 2428|       |		 * be using the RTO initial value.
 2429|       |		 */
 2430|  15.7k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2430:7): [True: 0, False: 15.7k]
  |  Branch (2430:24): [True: 0, False: 15.7k]
  |  Branch (2430:42): [True: 0, False: 15.7k]
  ------------------
 2431|      0|#ifdef INVARIANTS
 2432|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2433|      0|			      t_type, inp, stcb, net);
 2434|       |#else
 2435|       |			return;
 2436|       |#endif
 2437|      0|		}
 2438|  15.7k|		tmr = &net->rxt_timer;
 2439|  15.7k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2439:7): [True: 0, False: 15.7k]
  ------------------
 2440|      0|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2441|  15.7k|		} else {
 2442|  15.7k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2443|  15.7k|		}
 2444|  15.7k|		break;
 2445|  10.1k|	case SCTP_TIMER_TYPE_NEWCOOKIE:
  ------------------
  |  |  538|  10.1k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
  |  Branch (2445:2): [True: 10.1k, False: 147k]
  ------------------
 2446|       |		/*
 2447|       |		 * Nothing needed but the endpoint here usually about 60
 2448|       |		 * minutes.
 2449|       |		 */
 2450|  10.1k|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2450:7): [True: 0, False: 10.1k]
  |  Branch (2450:24): [True: 0, False: 10.1k]
  |  Branch (2450:42): [True: 0, False: 10.1k]
  ------------------
 2451|      0|#ifdef INVARIANTS
 2452|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2453|      0|			      t_type, inp, stcb, net);
 2454|       |#else
 2455|       |			return;
 2456|       |#endif
 2457|      0|		}
 2458|  10.1k|		tmr = &inp->sctp_ep.signature_change;
 2459|  10.1k|		to_ticks = inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_SIGNATURE];
  ------------------
  |  |  523|  10.1k|#define SCTP_TIMER_SIGNATURE	6
  ------------------
 2460|  10.1k|		break;
 2461|  47.9k|	case SCTP_TIMER_TYPE_PATHMTURAISE:
  ------------------
  |  |  539|  47.9k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  |  Branch (2461:2): [True: 47.9k, False: 109k]
  ------------------
 2462|       |		/*
 2463|       |		 * Here we use the value found in the EP for PMTUD, usually
 2464|       |		 * about 10 minutes.
 2465|       |		 */
 2466|  47.9k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2466:7): [True: 0, False: 47.9k]
  |  Branch (2466:24): [True: 0, False: 47.9k]
  |  Branch (2466:42): [True: 0, False: 47.9k]
  ------------------
 2467|      0|#ifdef INVARIANTS
 2468|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2469|      0|			      t_type, inp, stcb, net);
 2470|       |#else
 2471|       |			return;
 2472|       |#endif
 2473|      0|		}
 2474|  47.9k|		if (net->dest_state & SCTP_ADDR_NO_PMTUD) {
  ------------------
  |  |  482|  47.9k|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
  |  Branch (2474:7): [True: 0, False: 47.9k]
  ------------------
 2475|      0|			SCTPDBG(SCTP_DEBUG_TIMER2,
 2476|      0|			        "Timer type %d not started: inp=%p, stcb=%p, net=%p.\n",
 2477|      0|			        t_type, inp, stcb, net);
 2478|      0|			return;
 2479|      0|		}
 2480|  47.9k|		tmr = &net->pmtu_timer;
 2481|  47.9k|		to_ticks = inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_PMTU];
  ------------------
  |  |  521|  47.9k|#define SCTP_TIMER_PMTU		4
  ------------------
 2482|  47.9k|		break;
 2483|     53|	case SCTP_TIMER_TYPE_SHUTDOWNACK:
  ------------------
  |  |  540|     53|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  |  Branch (2483:2): [True: 53, False: 157k]
  ------------------
 2484|       |		/* Here we use the RTO of the destination. */
 2485|     53|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2485:7): [True: 0, False: 53]
  |  Branch (2485:24): [True: 0, False: 53]
  |  Branch (2485:42): [True: 0, False: 53]
  ------------------
 2486|      0|#ifdef INVARIANTS
 2487|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2488|      0|			      t_type, inp, stcb, net);
 2489|       |#else
 2490|       |			return;
 2491|       |#endif
 2492|      0|		}
 2493|     53|		tmr = &net->rxt_timer;
 2494|     53|		if (net->RTO == 0) {
  ------------------
  |  Branch (2494:7): [True: 0, False: 53]
  ------------------
 2495|      0|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2496|     53|		} else {
 2497|     53|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2498|     53|		}
 2499|     53|		break;
 2500|      0|	case SCTP_TIMER_TYPE_ASCONF:
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  |  Branch (2500:2): [True: 0, False: 157k]
  ------------------
 2501|       |		/*
 2502|       |		 * Here the timer comes from the stcb but its value is from
 2503|       |		 * the net's RTO.
 2504|       |		 */
 2505|      0|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2505:7): [True: 0, False: 0]
  |  Branch (2505:24): [True: 0, False: 0]
  |  Branch (2505:42): [True: 0, False: 0]
  ------------------
 2506|      0|#ifdef INVARIANTS
 2507|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2508|      0|			      t_type, inp, stcb, net);
 2509|       |#else
 2510|       |			return;
 2511|       |#endif
 2512|      0|		}
 2513|      0|		tmr = &stcb->asoc.asconf_timer;
 2514|      0|		if (net->RTO == 0) {
  ------------------
  |  Branch (2514:7): [True: 0, False: 0]
  ------------------
 2515|      0|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2516|      0|		} else {
 2517|      0|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2518|      0|		}
 2519|      0|		break;
 2520|      0|	case SCTP_TIMER_TYPE_SHUTDOWNGUARD:
  ------------------
  |  |  542|      0|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
  |  Branch (2520:2): [True: 0, False: 157k]
  ------------------
 2521|       |		/*
 2522|       |		 * Here we use the endpoints shutdown guard timer usually
 2523|       |		 * about 3 minutes.
 2524|       |		 */
 2525|      0|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2525:7): [True: 0, False: 0]
  |  Branch (2525:24): [True: 0, False: 0]
  |  Branch (2525:42): [True: 0, False: 0]
  ------------------
 2526|      0|#ifdef INVARIANTS
 2527|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2528|      0|			      t_type, inp, stcb, net);
 2529|       |#else
 2530|       |			return;
 2531|       |#endif
 2532|      0|		}
 2533|      0|		tmr = &stcb->asoc.shut_guard_timer;
 2534|      0|		if (inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_MAXSHUTDOWN] == 0) {
  ------------------
  |  |  522|      0|#define SCTP_TIMER_MAXSHUTDOWN	5
  ------------------
  |  Branch (2534:7): [True: 0, False: 0]
  ------------------
 2535|      0|			if (stcb->asoc.maxrto < UINT32_MAX / 5) {
  ------------------
  |  Branch (2535:8): [True: 0, False: 0]
  ------------------
 2536|      0|				to_ticks = sctp_msecs_to_ticks(5 * stcb->asoc.maxrto);
 2537|      0|			} else {
 2538|      0|				to_ticks = sctp_msecs_to_ticks(UINT32_MAX);
 2539|      0|			}
 2540|      0|		} else {
 2541|      0|			to_ticks = inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_MAXSHUTDOWN];
  ------------------
  |  |  522|      0|#define SCTP_TIMER_MAXSHUTDOWN	5
  ------------------
 2542|      0|		}
 2543|      0|		break;
 2544|      0|	case SCTP_TIMER_TYPE_AUTOCLOSE:
  ------------------
  |  |  543|      0|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  |  Branch (2544:2): [True: 0, False: 157k]
  ------------------
 2545|      0|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2545:7): [True: 0, False: 0]
  |  Branch (2545:24): [True: 0, False: 0]
  |  Branch (2545:42): [True: 0, False: 0]
  ------------------
 2546|      0|#ifdef INVARIANTS
 2547|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2548|      0|			      t_type, inp, stcb, net);
 2549|       |#else
 2550|       |			return;
 2551|       |#endif
 2552|      0|		}
 2553|      0|		tmr = &stcb->asoc.autoclose_timer;
 2554|      0|		to_ticks = stcb->asoc.sctp_autoclose_ticks;
 2555|      0|		break;
 2556|  2.43k|	case SCTP_TIMER_TYPE_STRRESET:
  ------------------
  |  |  544|  2.43k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2556:2): [True: 2.43k, False: 155k]
  ------------------
 2557|       |		/*
 2558|       |		 * Here the timer comes from the stcb but its value is from
 2559|       |		 * the net's RTO.
 2560|       |		 */
 2561|  2.43k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2561:7): [True: 0, False: 2.43k]
  |  Branch (2561:24): [True: 0, False: 2.43k]
  |  Branch (2561:42): [True: 0, False: 2.43k]
  ------------------
 2562|      0|#ifdef INVARIANTS
 2563|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2564|      0|			      t_type, inp, stcb, net);
 2565|       |#else
 2566|       |			return;
 2567|       |#endif
 2568|      0|		}
 2569|  2.43k|		tmr = &stcb->asoc.strreset_timer;
 2570|  2.43k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2570:7): [True: 11, False: 2.42k]
  ------------------
 2571|     11|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2572|  2.42k|		} else {
 2573|  2.42k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2574|  2.42k|		}
 2575|  2.43k|		break;
 2576|     24|	case SCTP_TIMER_TYPE_INPKILL:
  ------------------
  |  |  545|     24|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
  |  Branch (2576:2): [True: 24, False: 157k]
  ------------------
 2577|       |		/*
 2578|       |		 * The inp is setup to die. We re-use the signature_change
 2579|       |		 * timer since that has stopped and we are in the GONE
 2580|       |		 * state.
 2581|       |		 */
 2582|     24|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2582:7): [True: 0, False: 24]
  |  Branch (2582:24): [True: 0, False: 24]
  |  Branch (2582:42): [True: 0, False: 24]
  ------------------
 2583|      0|#ifdef INVARIANTS
 2584|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2585|      0|			      t_type, inp, stcb, net);
 2586|       |#else
 2587|       |			return;
 2588|       |#endif
 2589|      0|		}
 2590|     24|		tmr = &inp->sctp_ep.signature_change;
 2591|     24|		to_ticks = sctp_msecs_to_ticks(SCTP_INP_KILL_TIMEOUT);
  ------------------
  |  |  610|     24|#define SCTP_INP_KILL_TIMEOUT 20	/* number of ms to retry kill of inpcb */
  ------------------
 2592|     24|		break;
 2593|  2.40k|	case SCTP_TIMER_TYPE_ASOCKILL:
  ------------------
  |  |  546|  2.40k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2593:2): [True: 2.40k, False: 155k]
  ------------------
 2594|  2.40k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2594:7): [True: 0, False: 2.40k]
  |  Branch (2594:24): [True: 0, False: 2.40k]
  |  Branch (2594:42): [True: 0, False: 2.40k]
  ------------------
 2595|      0|#ifdef INVARIANTS
 2596|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2597|      0|			      t_type, inp, stcb, net);
 2598|       |#else
 2599|       |			return;
 2600|       |#endif
 2601|      0|		}
 2602|  2.40k|		tmr = &stcb->asoc.strreset_timer;
 2603|  2.40k|		to_ticks = sctp_msecs_to_ticks(SCTP_ASOC_KILL_TIMEOUT);
  ------------------
  |  |  611|  2.40k|#define SCTP_ASOC_KILL_TIMEOUT 10	/* number of ms to retry kill of inpcb */
  ------------------
 2604|  2.40k|		break;
 2605|      0|	case SCTP_TIMER_TYPE_ADDR_WQ:
  ------------------
  |  |  547|      0|#define SCTP_TIMER_TYPE_ADDR_WQ		16
  ------------------
  |  Branch (2605:2): [True: 0, False: 157k]
  ------------------
 2606|      0|		if ((inp != NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2606:7): [True: 0, False: 0]
  |  Branch (2606:24): [True: 0, False: 0]
  |  Branch (2606:42): [True: 0, False: 0]
  ------------------
 2607|      0|#ifdef INVARIANTS
 2608|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2609|      0|			      t_type, inp, stcb, net);
 2610|       |#else
 2611|       |			return;
 2612|       |#endif
 2613|      0|		}
 2614|       |		/* Only 1 tick away :-) */
 2615|      0|		tmr = &SCTP_BASE_INFO(addr_wq_timer);
  ------------------
  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 2616|      0|		to_ticks = SCTP_ADDRESS_TICK_DELAY;
  ------------------
  |  |   84|      0|#define SCTP_ADDRESS_TICK_DELAY 2
  ------------------
 2617|      0|		break;
 2618|      0|	case SCTP_TIMER_TYPE_PRIM_DELETED:
  ------------------
  |  |  548|      0|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  |  Branch (2618:2): [True: 0, False: 157k]
  ------------------
 2619|      0|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2619:7): [True: 0, False: 0]
  |  Branch (2619:24): [True: 0, False: 0]
  |  Branch (2619:42): [True: 0, False: 0]
  ------------------
 2620|      0|#ifdef INVARIANTS
 2621|      0|			panic("sctp_timer_start of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2622|      0|			      t_type, inp, stcb, net);
 2623|       |#else
 2624|       |			return;
 2625|       |#endif
 2626|      0|		}
 2627|      0|		tmr = &stcb->asoc.delete_prim_timer;
 2628|      0|		to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2629|      0|		break;
 2630|      0|	default:
  ------------------
  |  Branch (2630:2): [True: 0, False: 157k]
  ------------------
 2631|      0|#ifdef INVARIANTS
 2632|      0|		panic("Unknown timer type %d", t_type);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2633|       |#else
 2634|       |		return;
 2635|       |#endif
 2636|   157k|	}
 2637|   157k|	KASSERT(tmr != NULL, ("tmr is NULL for timer type %d", t_type));
  ------------------
  |  |  112|   157k|	do {                         \
  |  |  113|   157k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 157k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   157k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 157k]
  |  |  ------------------
  ------------------
 2638|   157k|	KASSERT(to_ticks > 0, ("to_ticks == 0 for timer type %d", t_type));
  ------------------
  |  |  112|   157k|	do {                         \
  |  |  113|   157k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 157k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   157k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 157k]
  |  |  ------------------
  ------------------
 2639|   157k|	if (SCTP_OS_TIMER_PENDING(&tmr->timer)) {
  ------------------
  |  |  102|   157k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|   157k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 21.3k, False: 136k]
  |  |  ------------------
  ------------------
 2640|       |		/*
 2641|       |		 * We do NOT allow you to have it already running. If it is,
 2642|       |		 * we leave the current one up unchanged.
 2643|       |		 */
 2644|  21.3k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2645|  21.3k|		        "Timer type %d already running: inp=%p, stcb=%p, net=%p.\n",
 2646|  21.3k|		         t_type, inp, stcb, net);
 2647|  21.3k|		return;
 2648|  21.3k|	}
 2649|       |	/* At this point we can proceed. */
 2650|   136k|	if (t_type == SCTP_TIMER_TYPE_SEND) {
  ------------------
  |  |  532|   136k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2650:6): [True: 2.82k, False: 133k]
  ------------------
 2651|  2.82k|		stcb->asoc.num_send_timers_up++;
 2652|  2.82k|	}
 2653|   136k|	tmr->stopped_from = 0;
 2654|   136k|	tmr->type = t_type;
 2655|   136k|	tmr->ep = (void *)inp;
 2656|   136k|	tmr->tcb = (void *)stcb;
 2657|   136k|	if (t_type == SCTP_TIMER_TYPE_STRRESET) {
  ------------------
  |  |  544|   136k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2657:6): [True: 2.38k, False: 134k]
  ------------------
 2658|  2.38k|		tmr->net = NULL;
 2659|   134k|	} else {
 2660|   134k|		tmr->net = (void *)net;
 2661|   134k|	}
 2662|   136k|	tmr->self = (void *)tmr;
 2663|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2664|       |	tmr->vnet = (void *)curvnet;
 2665|       |#endif
 2666|   136k|	tmr->ticks = sctp_get_tick_count();
 2667|   136k|	if (SCTP_OS_TIMER_START(&tmr->timer, to_ticks, sctp_timeout_handler, tmr) == 0) {
  ------------------
  |  |   98|   136k|#define SCTP_OS_TIMER_START	sctp_os_timer_start
  ------------------
  |  Branch (2667:6): [True: 136k, False: 18.4E]
  ------------------
 2668|   136k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2669|   136k|		        "Timer type %d started: ticks=%u, inp=%p, stcb=%p, net=%p.\n",
 2670|   136k|		         t_type, to_ticks, inp, stcb, net);
 2671|       |		/*
 2672|       |		 * If this is a newly scheduled callout, as opposed to a
 2673|       |		 * rescheduled one, increment relevant reference counts.
 2674|       |		 */
 2675|   136k|		if (tmr->ep != NULL) {
  ------------------
  |  Branch (2675:7): [True: 136k, False: 0]
  ------------------
 2676|   136k|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|   136k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|   136k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 2677|   136k|		}
 2678|   136k|		if (tmr->tcb != NULL) {
  ------------------
  |  Branch (2678:7): [True: 126k, False: 10.1k]
  ------------------
 2679|   126k|			atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|   126k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2680|   126k|		}
 2681|   136k|		if (tmr->net != NULL) {
  ------------------
  |  Branch (2681:7): [True: 121k, False: 15.0k]
  ------------------
 2682|   121k|			atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|   121k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2683|   121k|		}
 2684|  18.4E|	} else {
 2685|       |		/*
 2686|       |		 * This should not happen, since we checked for pending
 2687|       |		 * above.
 2688|       |		 */
 2689|  18.4E|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2690|  18.4E|		        "Timer type %d restarted: ticks=%u, inp=%p, stcb=%p, net=%p.\n",
 2691|  18.4E|		         t_type, to_ticks, inp, stcb, net);
 2692|  18.4E|	}
 2693|   136k|	return;
 2694|   157k|}
sctp_timer_stop:
 2726|   468k|{
 2727|   468k|	struct sctp_timer *tmr;
 2728|       |
 2729|   468k|	KASSERT(stcb == NULL || stcb->sctp_ep == inp,
  ------------------
  |  |  112|   468k|	do {                         \
  |  |  113|   926k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 10.2k, False: 458k]
  |  |  |  Branch (113:9): [True: 458k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   468k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 468k]
  |  |  ------------------
  ------------------
 2730|   468k|	        ("sctp_timer_stop of type %d: inp = %p, stcb->sctp_ep %p",
 2731|   468k|	         t_type, stcb, stcb->sctp_ep));
 2732|   468k|	if (stcb != NULL) {
  ------------------
  |  Branch (2732:6): [True: 458k, False: 10.2k]
  ------------------
 2733|   458k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   458k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   458k|	do {                         \
  |  |  |  |  113|   458k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 458k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   458k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 458k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2734|   458k|	} else if (inp != NULL) {
  ------------------
  |  Branch (2734:13): [True: 10.2k, False: 1]
  ------------------
 2735|  10.2k|		SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  10.2k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.2k|	do {                         \
  |  |  |  |  113|  10.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2736|  10.2k|	} else {
 2737|      1|		SCTP_WQ_ADDR_LOCK_ASSERT();
  ------------------
  |  |  287|      1|	KASSERT(pthread_mutex_trylock(&SCTP_BASE_INFO(wq_addr_mtx)) == EBUSY, ("%s:%d: wq_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      1|	do {                         \
  |  |  |  |  113|      1|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      1|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2738|      1|	}
 2739|   468k|	tmr = NULL;
 2740|   468k|	switch (t_type) {
 2741|  30.7k|	case SCTP_TIMER_TYPE_SEND:
  ------------------
  |  |  532|  30.7k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2741:2): [True: 30.7k, False: 437k]
  ------------------
 2742|  30.7k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2742:7): [True: 0, False: 30.7k]
  |  Branch (2742:24): [True: 0, False: 30.7k]
  |  Branch (2742:42): [True: 0, False: 30.7k]
  ------------------
 2743|      0|#ifdef INVARIANTS
 2744|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2745|      0|			      t_type, inp, stcb, net);
 2746|       |#else
 2747|       |			return;
 2748|       |#endif
 2749|      0|		}
 2750|  30.7k|		tmr = &net->rxt_timer;
 2751|  30.7k|		break;
 2752|  51.4k|	case SCTP_TIMER_TYPE_INIT:
  ------------------
  |  |  533|  51.4k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (2752:2): [True: 51.4k, False: 416k]
  ------------------
 2753|  51.4k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2753:7): [True: 0, False: 51.4k]
  |  Branch (2753:24): [True: 0, False: 51.4k]
  |  Branch (2753:42): [True: 0, False: 51.4k]
  ------------------
 2754|      0|#ifdef INVARIANTS
 2755|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2756|      0|			      t_type, inp, stcb, net);
 2757|       |#else
 2758|       |			return;
 2759|       |#endif
 2760|      0|		}
 2761|  51.4k|		tmr = &net->rxt_timer;
 2762|  51.4k|		break;
 2763|  26.5k|	case SCTP_TIMER_TYPE_RECV:
  ------------------
  |  |  534|  26.5k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  |  Branch (2763:2): [True: 26.5k, False: 441k]
  ------------------
 2764|  26.5k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2764:7): [True: 0, False: 26.5k]
  |  Branch (2764:24): [True: 0, False: 26.5k]
  |  Branch (2764:42): [True: 0, False: 26.5k]
  ------------------
 2765|      0|#ifdef INVARIANTS
 2766|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2767|      0|			      t_type, inp, stcb, net);
 2768|       |#else
 2769|       |			return;
 2770|       |#endif
 2771|      0|		}
 2772|  26.5k|		tmr = &stcb->asoc.dack_timer;
 2773|  26.5k|		break;
 2774|  30.7k|	case SCTP_TIMER_TYPE_SHUTDOWN:
  ------------------
  |  |  535|  30.7k|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  |  Branch (2774:2): [True: 30.7k, False: 437k]
  ------------------
 2775|  30.7k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2775:7): [True: 0, False: 30.7k]
  |  Branch (2775:24): [True: 0, False: 30.7k]
  |  Branch (2775:42): [True: 0, False: 30.7k]
  ------------------
 2776|      0|#ifdef INVARIANTS
 2777|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2778|      0|			      t_type, inp, stcb, net);
 2779|       |#else
 2780|       |			return;
 2781|       |#endif
 2782|      0|		}
 2783|  30.7k|		tmr = &net->rxt_timer;
 2784|  30.7k|		break;
 2785|  66.3k|	case SCTP_TIMER_TYPE_HEARTBEAT:
  ------------------
  |  |  536|  66.3k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  |  Branch (2785:2): [True: 66.3k, False: 402k]
  ------------------
 2786|  66.3k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2786:7): [True: 0, False: 66.3k]
  |  Branch (2786:24): [True: 0, False: 66.3k]
  |  Branch (2786:42): [True: 0, False: 66.3k]
  ------------------
 2787|      0|#ifdef INVARIANTS
 2788|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2789|      0|			      t_type, inp, stcb, net);
 2790|       |#else
 2791|       |			return;
 2792|       |#endif
 2793|      0|		}
 2794|  66.3k|		tmr = &net->hb_timer;
 2795|  66.3k|		break;
 2796|  40.3k|	case SCTP_TIMER_TYPE_COOKIE:
  ------------------
  |  |  537|  40.3k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (2796:2): [True: 40.3k, False: 427k]
  ------------------
 2797|  40.3k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2797:7): [True: 0, False: 40.3k]
  |  Branch (2797:24): [True: 0, False: 40.3k]
  |  Branch (2797:42): [True: 0, False: 40.3k]
  ------------------
 2798|      0|#ifdef INVARIANTS
 2799|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2800|      0|			      t_type, inp, stcb, net);
 2801|       |#else
 2802|       |			return;
 2803|       |#endif
 2804|      0|		}
 2805|  40.3k|		tmr = &net->rxt_timer;
 2806|  40.3k|		break;
 2807|  10.2k|	case SCTP_TIMER_TYPE_NEWCOOKIE:
  ------------------
  |  |  538|  10.2k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
  |  Branch (2807:2): [True: 10.2k, False: 458k]
  ------------------
 2808|  10.2k|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2808:7): [True: 0, False: 10.2k]
  |  Branch (2808:24): [True: 0, False: 10.2k]
  |  Branch (2808:42): [True: 0, False: 10.2k]
  ------------------
 2809|      0|#ifdef INVARIANTS
 2810|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2811|      0|			      t_type, inp, stcb, net);
 2812|       |#else
 2813|       |			return;
 2814|       |#endif
 2815|      0|		}
 2816|  10.2k|		tmr = &inp->sctp_ep.signature_change;
 2817|  10.2k|		break;
 2818|  66.2k|	case SCTP_TIMER_TYPE_PATHMTURAISE:
  ------------------
  |  |  539|  66.2k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  |  Branch (2818:2): [True: 66.2k, False: 402k]
  ------------------
 2819|  66.2k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2819:7): [True: 0, False: 66.2k]
  |  Branch (2819:24): [True: 0, False: 66.2k]
  |  Branch (2819:42): [True: 0, False: 66.2k]
  ------------------
 2820|      0|#ifdef INVARIANTS
 2821|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2822|      0|			      t_type, inp, stcb, net);
 2823|       |#else
 2824|       |			return;
 2825|       |#endif
 2826|      0|		}
 2827|  66.2k|		tmr = &net->pmtu_timer;
 2828|  66.2k|		break;
 2829|  30.7k|	case SCTP_TIMER_TYPE_SHUTDOWNACK:
  ------------------
  |  |  540|  30.7k|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  |  Branch (2829:2): [True: 30.7k, False: 437k]
  ------------------
 2830|  30.7k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2830:7): [True: 0, False: 30.7k]
  |  Branch (2830:24): [True: 0, False: 30.7k]
  |  Branch (2830:42): [True: 0, False: 30.7k]
  ------------------
 2831|      0|#ifdef INVARIANTS
 2832|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2833|      0|			      t_type, inp, stcb, net);
 2834|       |#else
 2835|       |			return;
 2836|       |#endif
 2837|      0|		}
 2838|  30.7k|		tmr = &net->rxt_timer;
 2839|  30.7k|		break;
 2840|  20.8k|	case SCTP_TIMER_TYPE_ASCONF:
  ------------------
  |  |  541|  20.8k|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  |  Branch (2840:2): [True: 20.8k, False: 447k]
  ------------------
 2841|  20.8k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2841:7): [True: 0, False: 20.8k]
  |  Branch (2841:24): [True: 0, False: 20.8k]
  |  Branch (2841:42): [True: 0, False: 20.8k]
  ------------------
 2842|      0|#ifdef INVARIANTS
 2843|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2844|      0|			      t_type, inp, stcb, net);
 2845|       |#else
 2846|       |			return;
 2847|       |#endif
 2848|      0|		}
 2849|  20.8k|		tmr = &stcb->asoc.asconf_timer;
 2850|  20.8k|		break;
 2851|  20.3k|	case SCTP_TIMER_TYPE_SHUTDOWNGUARD:
  ------------------
  |  |  542|  20.3k|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
  |  Branch (2851:2): [True: 20.3k, False: 447k]
  ------------------
 2852|  20.3k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2852:7): [True: 0, False: 20.3k]
  |  Branch (2852:24): [True: 0, False: 20.3k]
  |  Branch (2852:42): [True: 0, False: 20.3k]
  ------------------
 2853|      0|#ifdef INVARIANTS
 2854|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2855|      0|			      t_type, inp, stcb, net);
 2856|       |#else
 2857|       |			return;
 2858|       |#endif
 2859|      0|		}
 2860|  20.3k|		tmr = &stcb->asoc.shut_guard_timer;
 2861|  20.3k|		break;
 2862|  20.4k|	case SCTP_TIMER_TYPE_AUTOCLOSE:
  ------------------
  |  |  543|  20.4k|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  |  Branch (2862:2): [True: 20.4k, False: 447k]
  ------------------
 2863|  20.4k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2863:7): [True: 0, False: 20.4k]
  |  Branch (2863:24): [True: 0, False: 20.4k]
  |  Branch (2863:42): [True: 0, False: 20.4k]
  ------------------
 2864|      0|#ifdef INVARIANTS
 2865|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2866|      0|			      t_type, inp, stcb, net);
 2867|       |#else
 2868|       |			return;
 2869|       |#endif
 2870|      0|		}
 2871|  20.4k|		tmr = &stcb->asoc.autoclose_timer;
 2872|  20.4k|		break;
 2873|  20.4k|	case SCTP_TIMER_TYPE_STRRESET:
  ------------------
  |  |  544|  20.4k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2873:2): [True: 20.4k, False: 447k]
  ------------------
 2874|  20.4k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2874:7): [True: 0, False: 20.4k]
  |  Branch (2874:24): [True: 0, False: 20.4k]
  |  Branch (2874:42): [True: 0, False: 20.4k]
  ------------------
 2875|      0|#ifdef INVARIANTS
 2876|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2877|      0|			      t_type, inp, stcb, net);
 2878|       |#else
 2879|       |			return;
 2880|       |#endif
 2881|      0|		}
 2882|  20.4k|		tmr = &stcb->asoc.strreset_timer;
 2883|  20.4k|		break;
 2884|     23|	case SCTP_TIMER_TYPE_INPKILL:
  ------------------
  |  |  545|     23|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
  |  Branch (2884:2): [True: 23, False: 468k]
  ------------------
 2885|       |		/*
 2886|       |		 * The inp is setup to die. We re-use the signature_change
 2887|       |		 * timer since that has stopped and we are in the GONE
 2888|       |		 * state.
 2889|       |		 */
 2890|     23|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2890:7): [True: 0, False: 23]
  |  Branch (2890:24): [True: 0, False: 23]
  |  Branch (2890:42): [True: 0, False: 23]
  ------------------
 2891|      0|#ifdef INVARIANTS
 2892|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2893|      0|			      t_type, inp, stcb, net);
 2894|       |#else
 2895|       |			return;
 2896|       |#endif
 2897|      0|		}
 2898|     23|		tmr = &inp->sctp_ep.signature_change;
 2899|     23|		break;
 2900|  12.5k|	case SCTP_TIMER_TYPE_ASOCKILL:
  ------------------
  |  |  546|  12.5k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2900:2): [True: 12.5k, False: 455k]
  ------------------
 2901|  12.5k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2901:7): [True: 0, False: 12.5k]
  |  Branch (2901:24): [True: 0, False: 12.5k]
  |  Branch (2901:42): [True: 0, False: 12.5k]
  ------------------
 2902|      0|#ifdef INVARIANTS
 2903|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2904|      0|			      t_type, inp, stcb, net);
 2905|       |#else
 2906|       |			return;
 2907|       |#endif
 2908|      0|		}
 2909|  12.5k|		tmr = &stcb->asoc.strreset_timer;
 2910|  12.5k|		break;
 2911|      0|	case SCTP_TIMER_TYPE_ADDR_WQ:
  ------------------
  |  |  547|      0|#define SCTP_TIMER_TYPE_ADDR_WQ		16
  ------------------
  |  Branch (2911:2): [True: 0, False: 468k]
  ------------------
 2912|      0|		if ((inp != NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2912:7): [True: 0, False: 0]
  |  Branch (2912:24): [True: 0, False: 0]
  |  Branch (2912:42): [True: 0, False: 0]
  ------------------
 2913|      0|#ifdef INVARIANTS
 2914|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2915|      0|			      t_type, inp, stcb, net);
 2916|       |#else
 2917|       |			return;
 2918|       |#endif
 2919|      0|		}
 2920|      0|		tmr = &SCTP_BASE_INFO(addr_wq_timer);
  ------------------
  |  |  587|      0|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
 2921|      0|		break;
 2922|  20.3k|	case SCTP_TIMER_TYPE_PRIM_DELETED:
  ------------------
  |  |  548|  20.3k|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  |  Branch (2922:2): [True: 20.3k, False: 447k]
  ------------------
 2923|  20.3k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2923:7): [True: 0, False: 20.3k]
  |  Branch (2923:24): [True: 0, False: 20.3k]
  |  Branch (2923:42): [True: 0, False: 20.3k]
  ------------------
 2924|      0|#ifdef INVARIANTS
 2925|      0|			panic("sctp_timer_stop of type %d: inp = %p, stcb = %p, net = %p",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2926|      0|			      t_type, inp, stcb, net);
 2927|       |#else
 2928|       |			return;
 2929|       |#endif
 2930|      0|		}
 2931|  20.3k|		tmr = &stcb->asoc.delete_prim_timer;
 2932|  20.3k|		break;
 2933|      0|	default:
  ------------------
  |  Branch (2933:2): [True: 0, False: 468k]
  ------------------
 2934|      0|#ifdef INVARIANTS
 2935|      0|		panic("Unknown timer type %d", t_type);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2936|       |#else
 2937|       |		return;
 2938|       |#endif
 2939|   468k|	}
 2940|   468k|	KASSERT(tmr != NULL, ("tmr is NULL for timer type %d", t_type));
  ------------------
  |  |  112|   468k|	do {                         \
  |  |  113|   468k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 468k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   468k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 468k]
  |  |  ------------------
  ------------------
 2941|   468k|	if ((tmr->type != SCTP_TIMER_TYPE_NONE) &&
  ------------------
  |  |  531|   468k|#define SCTP_TIMER_TYPE_NONE		0
  ------------------
  |  Branch (2941:6): [True: 267k, False: 201k]
  ------------------
 2942|   267k|	    (tmr->type != t_type)) {
  ------------------
  |  Branch (2942:6): [True: 85.6k, False: 181k]
  ------------------
 2943|       |		/*
 2944|       |		 * Ok we have a timer that is under joint use. Cookie timer
 2945|       |		 * per chance with the SEND timer. We therefore are NOT
 2946|       |		 * running the timer that the caller wants stopped.  So just
 2947|       |		 * return.
 2948|       |		 */
 2949|  85.6k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2950|  85.6k|		        "Shared timer type %d not running: inp=%p, stcb=%p, net=%p.\n",
 2951|  85.6k|		         t_type, inp, stcb, net);
 2952|  85.6k|		return;
 2953|  85.6k|	}
 2954|   382k|	if ((t_type == SCTP_TIMER_TYPE_SEND) && (stcb != NULL)) {
  ------------------
  |  |  532|   382k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2954:6): [True: 15.5k, False: 367k]
  |  Branch (2954:42): [True: 15.5k, False: 0]
  ------------------
 2955|  15.5k|		stcb->asoc.num_send_timers_up--;
 2956|  15.5k|		if (stcb->asoc.num_send_timers_up < 0) {
  ------------------
  |  Branch (2956:7): [True: 12.7k, False: 2.81k]
  ------------------
 2957|  12.7k|			stcb->asoc.num_send_timers_up = 0;
 2958|  12.7k|		}
 2959|  15.5k|	}
 2960|   382k|	tmr->self = NULL;
 2961|   382k|	tmr->stopped_from = from;
 2962|   382k|	if (SCTP_OS_TIMER_STOP(&tmr->timer) == 1) {
  ------------------
  |  |   99|   382k|#define SCTP_OS_TIMER_STOP	sctp_os_timer_stop
  ------------------
  |  Branch (2962:6): [True: 134k, False: 248k]
  ------------------
 2963|   134k|		KASSERT(tmr->ep == inp,
  ------------------
  |  |  112|   134k|	do {                         \
  |  |  113|   134k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 134k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   134k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 134k]
  |  |  ------------------
  ------------------
 2964|   134k|		        ("sctp_timer_stop of type %d: inp = %p, tmr->inp = %p",
 2965|   134k|		         t_type, inp, tmr->ep));
 2966|   134k|		KASSERT(tmr->tcb == stcb,
  ------------------
  |  |  112|   134k|	do {                         \
  |  |  113|   134k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 134k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   134k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 134k]
  |  |  ------------------
  ------------------
 2967|   134k|		        ("sctp_timer_stop of type %d: stcb = %p, tmr->stcb = %p",
 2968|   134k|		         t_type, stcb, tmr->tcb));
 2969|   134k|		KASSERT(((t_type == SCTP_TIMER_TYPE_ASCONF) && (tmr->net != NULL)) ||
  ------------------
  |  |  112|   134k|	do {                         \
  |  |  113|   671k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 134k]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 134k, False: 0]
  |  |  |  Branch (113:9): [True: 134k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   134k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 134k]
  |  |  ------------------
  ------------------
 2970|   134k|		        ((t_type != SCTP_TIMER_TYPE_ASCONF) && (tmr->net == net)),
 2971|   134k|		        ("sctp_timer_stop of type %d: net = %p, tmr->net = %p",
 2972|   134k|		         t_type, net, tmr->net));
 2973|   134k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2974|   134k|		        "Timer type %d stopped: inp=%p, stcb=%p, net=%p.\n",
 2975|   134k|		        t_type, inp, stcb, net);
 2976|       |		/*
 2977|       |		 * If the timer was actually stopped, decrement reference counts
 2978|       |		 * that were incremented in sctp_timer_start().
 2979|       |		 */
 2980|   134k|		if (tmr->ep != NULL) {
  ------------------
  |  Branch (2980:7): [True: 134k, False: 0]
  ------------------
 2981|   134k|			tmr->ep = NULL;
 2982|   134k|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|   134k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|   134k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 2983|   134k|		}
 2984|   134k|		if (tmr->tcb != NULL) {
  ------------------
  |  Branch (2984:7): [True: 124k, False: 10.1k]
  ------------------
 2985|   124k|			tmr->tcb = NULL;
 2986|   124k|			atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|   124k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 2987|   124k|		}
 2988|   134k|		if (tmr->net != NULL) {
  ------------------
  |  Branch (2988:7): [True: 121k, False: 12.6k]
  ------------------
 2989|   121k|			struct sctp_nets *tmr_net;
 2990|       |
 2991|       |			/*
 2992|       |			 * Can't use net, since it doesn't work for
 2993|       |			 * SCTP_TIMER_TYPE_ASCONF.
 2994|       |			 */
 2995|   121k|			tmr_net = tmr->net;
 2996|   121k|			tmr->net = NULL;
 2997|   121k|			sctp_free_remote_addr(tmr_net);
  ------------------
  |  |  228|   121k|#define sctp_free_remote_addr(__net) { \
  |  |  229|   121k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 121k, False: 0]
  |  |  ------------------
  |  |  230|   121k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|   121k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   121k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 121k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|   121k|	} \
  |  |  245|   121k|}
  ------------------
 2998|   121k|		}
 2999|   248k|	} else {
 3000|   248k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 3001|   248k|		        "Timer type %d not stopped: inp=%p, stcb=%p, net=%p.\n",
 3002|   248k|		         t_type, inp, stcb, net);
 3003|   248k|	}
 3004|   382k|	return;
 3005|   382k|}
sctp_calculate_len:
 3009|  50.2k|{
 3010|  50.2k|	struct mbuf *at;
 3011|  50.2k|	uint32_t tlen;
 3012|       |
 3013|  50.2k|	tlen = 0;
 3014|   231k|	for (at = m; at != NULL; at = SCTP_BUF_NEXT(at)) {
  ------------------
  |  |  802|   181k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   181k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (3014:15): [True: 181k, False: 50.2k]
  ------------------
 3015|   181k|		tlen += SCTP_BUF_LEN(at);
  ------------------
  |  |  801|   181k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   181k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3016|   181k|	}
 3017|  50.2k|	return (tlen);
 3018|  50.2k|}
sctp_calculate_rto:
 3033|  15.0k|{
 3034|  15.0k|	struct timeval now;
 3035|  15.0k|	uint64_t rtt_us;	/* RTT in us */
 3036|  15.0k|	int32_t rtt;		/* RTT in ms */
 3037|  15.0k|	uint32_t new_rto;
 3038|  15.0k|	int first_measure = 0;
 3039|       |
 3040|       |	/************************/
 3041|       |	/* 1. calculate new RTT */
 3042|       |	/************************/
 3043|       |	/* get the current time */
 3044|  15.0k|	if (stcb->asoc.use_precise_time) {
  ------------------
  |  Branch (3044:6): [True: 0, False: 15.0k]
  ------------------
 3045|      0|		(void)SCTP_GETPTIME_TIMEVAL(&now);
  ------------------
  |  |  992|      0|#define SCTP_GETPTIME_TIMEVAL(x) gettimeofday(x, NULL)
  ------------------
 3046|  15.0k|	} else {
 3047|  15.0k|		(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  15.0k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 3048|  15.0k|	}
 3049|  15.0k|	if ((old->tv_sec > now.tv_sec) ||
  ------------------
  |  Branch (3049:6): [True: 297, False: 14.7k]
  ------------------
 3050|  14.7k|	    ((old->tv_sec == now.tv_sec) && (old->tv_usec > now.tv_usec))) {
  ------------------
  |  Branch (3050:7): [True: 13.1k, False: 1.68k]
  |  Branch (3050:38): [True: 0, False: 13.1k]
  ------------------
 3051|       |		/* The starting point is in the future. */
 3052|    297|		return (0);
 3053|    297|	}
 3054|  14.7k|	timevalsub(&now, old);
  ------------------
  |  | 1116|  14.7k|	do {                                       \
  |  | 1117|  14.7k|		(tp1)->tv_sec -= (tp2)->tv_sec;    \
  |  | 1118|  14.7k|		(tp1)->tv_usec -= (tp2)->tv_usec;  \
  |  | 1119|  14.7k|		if ((tp1)->tv_usec < 0) {          \
  |  |  ------------------
  |  |  |  Branch (1119:7): [True: 1.06k, False: 13.7k]
  |  |  ------------------
  |  | 1120|  1.06k|			(tp1)->tv_sec--;           \
  |  | 1121|  1.06k|			(tp1)->tv_usec += 1000000; \
  |  | 1122|  1.06k|		}                                  \
  |  | 1123|  14.7k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (1123:11): [Folded, False: 14.7k]
  |  |  ------------------
  ------------------
 3055|  14.7k|	rtt_us = (uint64_t)1000000 * (uint64_t)now.tv_sec + (uint64_t)now.tv_usec;
 3056|  14.7k|	if (rtt_us > SCTP_RTO_UPPER_BOUND * 1000) {
  ------------------
  |  |  606|  14.7k|#define SCTP_RTO_UPPER_BOUND	(60000)	/* 60 sec in ms */
  ------------------
  |  Branch (3056:6): [True: 1.68k, False: 13.1k]
  ------------------
 3057|       |		/* The RTT is larger than a sane value. */
 3058|  1.68k|		return (0);
 3059|  1.68k|	}
 3060|       |	/* store the current RTT in us */
 3061|  13.1k|	net->rtt = rtt_us;
 3062|       |	/* compute rtt in ms */
 3063|  13.1k|	rtt = (int32_t)(net->rtt / 1000);
 3064|  13.1k|	if ((asoc->cc_functions.sctp_rtt_calculated) && (rtt_from_sack == SCTP_RTT_FROM_DATA)) {
  ------------------
  |  |  341|      0|#define SCTP_RTT_FROM_DATA     1
  ------------------
  |  Branch (3064:6): [True: 0, False: 13.1k]
  |  Branch (3064:50): [True: 0, False: 0]
  ------------------
 3065|       |		/* Tell the CC module that a new update has just occurred from a sack */
 3066|      0|		(*asoc->cc_functions.sctp_rtt_calculated)(stcb, net, &now);
 3067|      0|	}
 3068|       |	/* Do we need to determine the lan? We do this only
 3069|       |	 * on sacks i.e. RTT being determined from data not
 3070|       |	 * non-data (HB/INIT->INITACK).
 3071|       |	 */
 3072|  13.1k|	if ((rtt_from_sack == SCTP_RTT_FROM_DATA) &&
  ------------------
  |  |  341|  13.1k|#define SCTP_RTT_FROM_DATA     1
  ------------------
  |  Branch (3072:6): [True: 0, False: 13.1k]
  ------------------
 3073|      0|	    (net->lan_type == SCTP_LAN_UNKNOWN)) {
  ------------------
  |  |  938|      0|#define SCTP_LAN_UNKNOWN  0
  ------------------
  |  Branch (3073:6): [True: 0, False: 0]
  ------------------
 3074|      0|		if (net->rtt > SCTP_LOCAL_LAN_RTT) {
  ------------------
  |  |  937|      0|#define SCTP_LOCAL_LAN_RTT 900
  ------------------
  |  Branch (3074:7): [True: 0, False: 0]
  ------------------
 3075|      0|			net->lan_type = SCTP_LAN_INTERNET;
  ------------------
  |  |  940|      0|#define SCTP_LAN_INTERNET 2
  ------------------
 3076|      0|		} else {
 3077|      0|			net->lan_type = SCTP_LAN_LOCAL;
  ------------------
  |  |  939|      0|#define SCTP_LAN_LOCAL    1
  ------------------
 3078|      0|		}
 3079|      0|	}
 3080|       |
 3081|       |	/***************************/
 3082|       |	/* 2. update RTTVAR & SRTT */
 3083|       |	/***************************/
 3084|       |	/*-
 3085|       |	 * Compute the scaled average lastsa and the
 3086|       |	 * scaled variance lastsv as described in van Jacobson
 3087|       |	 * Paper "Congestion Avoidance and Control", Annex A.
 3088|       |	 *
 3089|       |	 * (net->lastsa >> SCTP_RTT_SHIFT) is the srtt
 3090|       |	 * (net->lastsv >> SCTP_RTT_VAR_SHIFT) is the rttvar
 3091|       |	 */
 3092|  13.1k|	if (net->RTO_measured) {
  ------------------
  |  Branch (3092:6): [True: 5.23k, False: 7.88k]
  ------------------
 3093|  5.23k|		rtt -= (net->lastsa >> SCTP_RTT_SHIFT);
  ------------------
  |  |   40|  5.23k|#define SCTP_RTT_SHIFT 3
  ------------------
 3094|  5.23k|		net->lastsa += rtt;
 3095|  5.23k|		if (rtt < 0) {
  ------------------
  |  Branch (3095:7): [True: 0, False: 5.23k]
  ------------------
 3096|      0|			rtt = -rtt;
 3097|      0|		}
 3098|  5.23k|		rtt -= (net->lastsv >> SCTP_RTT_VAR_SHIFT);
  ------------------
  |  |   41|  5.23k|#define SCTP_RTT_VAR_SHIFT 2
  ------------------
 3099|  5.23k|		net->lastsv += rtt;
 3100|  5.23k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.23k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  654|  5.23k|#define SCTP_RTTVAR_LOGGING_ENABLE			0x00002000
  ------------------
  |  Branch (3100:7): [True: 0, False: 5.23k]
  ------------------
 3101|      0|			rto_logging(net, SCTP_LOG_RTTVAR);
  ------------------
  |  |  156|      0|#define SCTP_LOG_RTTVAR             52
  ------------------
 3102|      0|		}
 3103|  7.88k|	} else {
 3104|       |		/* First RTO measurement */
 3105|  7.88k|		net->RTO_measured = 1;
 3106|  7.88k|		first_measure = 1;
 3107|  7.88k|		net->lastsa = rtt << SCTP_RTT_SHIFT;
  ------------------
  |  |   40|  7.88k|#define SCTP_RTT_SHIFT 3
  ------------------
 3108|  7.88k|		net->lastsv = (rtt / 2) << SCTP_RTT_VAR_SHIFT;
  ------------------
  |  |   41|  7.88k|#define SCTP_RTT_VAR_SHIFT 2
  ------------------
 3109|  7.88k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  590|  7.88k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  654|  7.88k|#define SCTP_RTTVAR_LOGGING_ENABLE			0x00002000
  ------------------
  |  Branch (3109:7): [True: 0, False: 7.88k]
  ------------------
 3110|      0|			rto_logging(net, SCTP_LOG_INITIAL_RTT);
  ------------------
  |  |  155|      0|#define SCTP_LOG_INITIAL_RTT        51
  ------------------
 3111|      0|		}
 3112|  7.88k|	}
 3113|  13.1k|	if (net->lastsv == 0) {
  ------------------
  |  Branch (3113:6): [True: 7.88k, False: 5.23k]
  ------------------
 3114|  7.88k|		net->lastsv = SCTP_CLOCK_GRANULARITY;
  ------------------
  |  |  856|  7.88k|#define SCTP_CLOCK_GRANULARITY	10
  ------------------
 3115|  7.88k|	}
 3116|  13.1k|	new_rto = (net->lastsa >> SCTP_RTT_SHIFT) + net->lastsv;
  ------------------
  |  |   40|  13.1k|#define SCTP_RTT_SHIFT 3
  ------------------
 3117|  13.1k|	if ((new_rto > SCTP_SAT_NETWORK_MIN) &&
  ------------------
  |  |  504|  13.1k|#define SCTP_SAT_NETWORK_MIN	400	/* min ms for RTT to set satellite
  ------------------
  |  Branch (3117:6): [True: 0, False: 13.1k]
  ------------------
 3118|      0|	    (stcb->asoc.sat_network_lockout == 0)) {
  ------------------
  |  Branch (3118:6): [True: 0, False: 0]
  ------------------
 3119|      0|		stcb->asoc.sat_network = 1;
 3120|  13.1k|	} else if ((!first_measure) && stcb->asoc.sat_network) {
  ------------------
  |  Branch (3120:13): [True: 5.23k, False: 7.88k]
  |  Branch (3120:33): [True: 0, False: 5.23k]
  ------------------
 3121|      0|		stcb->asoc.sat_network = 0;
 3122|      0|		stcb->asoc.sat_network_lockout = 1;
 3123|      0|	}
 3124|       |	/* bound it, per C6/C7 in Section 5.3.1 */
 3125|  13.1k|	if (new_rto < stcb->asoc.minrto) {
  ------------------
  |  Branch (3125:6): [True: 13.1k, False: 0]
  ------------------
 3126|  13.1k|		new_rto = stcb->asoc.minrto;
 3127|  13.1k|	}
 3128|  13.1k|	if (new_rto > stcb->asoc.maxrto) {
  ------------------
  |  Branch (3128:6): [True: 0, False: 13.1k]
  ------------------
 3129|      0|		new_rto = stcb->asoc.maxrto;
 3130|      0|	}
 3131|  13.1k|	net->RTO = new_rto;
 3132|  13.1k|	return (1);
 3133|  14.7k|}
sctp_m_getptr:
 3143|  2.18M|{
 3144|  2.18M|	uint32_t count;
 3145|  2.18M|	uint8_t *ptr;
 3146|       |
 3147|  2.18M|	ptr = in_ptr;
 3148|  2.18M|	if ((off < 0) || (len <= 0))
  ------------------
  |  Branch (3148:6): [True: 0, False: 2.18M]
  |  Branch (3148:19): [True: 0, False: 2.18M]
  ------------------
 3149|      0|		return (NULL);
 3150|       |
 3151|       |	/* find the desired start location */
 3152|  12.9M|	while ((m != NULL) && (off > 0)) {
  ------------------
  |  Branch (3152:9): [True: 12.9M, False: 8.90k]
  |  Branch (3152:24): [True: 12.9M, False: 5.16k]
  ------------------
 3153|  12.9M|		if (off < SCTP_BUF_LEN(m))
  ------------------
  |  |  801|  12.9M|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  12.9M|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3153:7): [True: 2.17M, False: 10.8M]
  ------------------
 3154|  2.17M|			break;
 3155|  10.8M|		off -= SCTP_BUF_LEN(m);
  ------------------
  |  |  801|  10.8M|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  10.8M|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3156|  10.8M|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  10.8M|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  10.8M|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3157|  10.8M|	}
 3158|  2.18M|	if (m == NULL)
  ------------------
  |  Branch (3158:6): [True: 8.90k, False: 2.17M]
  ------------------
 3159|  8.90k|		return (NULL);
 3160|       |
 3161|       |	/* is the current mbuf large enough (eg. contiguous)? */
 3162|  2.17M|	if ((SCTP_BUF_LEN(m) - off) >= len) {
  ------------------
  |  |  801|  2.17M|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.17M|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3162:6): [True: 2.17M, False: 5.91k]
  ------------------
 3163|  2.17M|		return (mtod(m, caddr_t) + off);
  ------------------
  |  |   96|  2.17M|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.17M|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3164|  2.17M|	} else {
 3165|       |		/* else, it spans more than one mbuf, so save a temp copy... */
 3166|  16.4k|		while ((m != NULL) && (len > 0)) {
  ------------------
  |  Branch (3166:10): [True: 13.4k, False: 3.03k]
  |  Branch (3166:25): [True: 10.5k, False: 2.88k]
  ------------------
 3167|  10.5k|			count = min(SCTP_BUF_LEN(m) - off, len);
  ------------------
  |  |   66|  10.5k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 4.14k, False: 6.38k]
  |  |  ------------------
  ------------------
 3168|  10.5k|			memcpy(ptr, mtod(m, caddr_t) + off, count);
  ------------------
  |  |   96|  10.5k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  10.5k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3169|  10.5k|			len -= count;
 3170|  10.5k|			ptr += count;
 3171|  10.5k|			off = 0;
 3172|  10.5k|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  10.5k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  10.5k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3173|  10.5k|		}
 3174|  5.91k|		if ((m == NULL) && (len > 0))
  ------------------
  |  Branch (3174:7): [True: 3.03k, False: 2.88k]
  |  Branch (3174:22): [True: 1.59k, False: 1.43k]
  ------------------
 3175|  1.59k|			return (NULL);
 3176|  4.31k|		else
 3177|  4.31k|			return ((caddr_t)in_ptr);
 3178|  5.91k|	}
 3179|  2.17M|}
sctp_get_next_param:
 3186|   374k|{
 3187|       |	/* This just provides a typed signature to Peter's Pull routine */
 3188|   374k|	return ((struct sctp_paramhdr *)sctp_m_getptr(m, offset, pull_limit,
 3189|   374k|	    (uint8_t *) pull));
 3190|   374k|}
sctp_add_pad_tombuf:
 3194|  31.7k|{
 3195|  31.7k|	struct mbuf *m_last;
 3196|  31.7k|	caddr_t dp;
 3197|       |
 3198|  31.7k|	if (padlen > 3) {
  ------------------
  |  Branch (3198:6): [True: 0, False: 31.7k]
  ------------------
 3199|      0|		return (NULL);
 3200|      0|	}
 3201|  31.7k|	if (padlen <= M_TRAILINGSPACE(m)) {
  ------------------
  |  |  355|  31.7k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  31.7k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  31.7k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 24.9k, False: 6.88k]
  |  |  ------------------
  |  |  356|  31.7k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  24.9k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  24.9k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  24.9k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 24.9k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  24.9k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  24.9k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  24.9k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 24.9k]
  |  |  |  |  ------------------
  |  |  |  |  328|  24.9k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  24.9k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 19.2k, False: 5.69k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  19.2k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  19.2k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  19.2k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  19.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  19.2k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  31.7k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  6.88k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  6.88k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.88k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  6.88k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  6.88k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3201:6): [True: 26.0k, False: 5.69k]
  ------------------
 3202|       |		/*
 3203|       |		 * The easy way. We hope the majority of the time we hit
 3204|       |		 * here :)
 3205|       |		 */
 3206|  26.0k|		m_last = m;
 3207|  26.0k|	} else {
 3208|       |		/* Hard way we must grow the mbuf chain */
 3209|  5.69k|		m_last = sctp_get_mbuf_for_msg(padlen, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  5.69k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m_last = sctp_get_mbuf_for_msg(padlen, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  5.69k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3210|  5.69k|		if (m_last == NULL) {
  ------------------
  |  Branch (3210:7): [True: 0, False: 5.69k]
  ------------------
 3211|      0|			return (NULL);
 3212|      0|		}
 3213|  5.69k|		SCTP_BUF_LEN(m_last) = 0;
  ------------------
  |  |  801|  5.69k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.69k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3214|  5.69k|		SCTP_BUF_NEXT(m_last) = NULL;
  ------------------
  |  |  802|  5.69k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  5.69k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3215|  5.69k|		SCTP_BUF_NEXT(m) = m_last;
  ------------------
  |  |  802|  5.69k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  5.69k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3216|  5.69k|	}
 3217|  31.7k|	dp = mtod(m_last, caddr_t) + SCTP_BUF_LEN(m_last);
  ------------------
  |  |   96|  31.7k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  31.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              	dp = mtod(m_last, caddr_t) + SCTP_BUF_LEN(m_last);
  ------------------
  |  |  801|  31.7k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  31.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3218|  31.7k|	SCTP_BUF_LEN(m_last) += padlen;
  ------------------
  |  |  801|  31.7k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  31.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3219|  31.7k|	memset(dp, 0, padlen);
 3220|  31.7k|	return (m_last);
 3221|  31.7k|}
sctp_pad_lastmbuf:
 3225|  7.56k|{
 3226|       |	/* find the last mbuf in chain and pad it */
 3227|  7.56k|	struct mbuf *m_at;
 3228|       |
 3229|  7.56k|	if (last_mbuf != NULL) {
  ------------------
  |  Branch (3229:6): [True: 4.76k, False: 2.79k]
  ------------------
 3230|  4.76k|		return (sctp_add_pad_tombuf(last_mbuf, padval));
 3231|  4.76k|	} else {
 3232|  2.97k|		for (m_at = m; m_at; m_at = SCTP_BUF_NEXT(m_at)) {
  ------------------
  |  |  802|    176|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    176|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (3232:18): [True: 2.97k, False: 0]
  ------------------
 3233|  2.97k|			if (SCTP_BUF_NEXT(m_at) == NULL) {
  ------------------
  |  |  802|  2.97k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.97k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (3233:8): [True: 2.79k, False: 176]
  ------------------
 3234|  2.79k|				return (sctp_add_pad_tombuf(m_at, padval));
 3235|  2.79k|			}
 3236|  2.97k|		}
 3237|  2.79k|	}
 3238|      0|	return (NULL);
 3239|  7.56k|}
sctp_ulp_notify:
 4257|   491k|{
 4258|   491k|	struct sctp_inpcb *inp;
 4259|   491k|	struct sctp_nets *net;
 4260|       |
 4261|   491k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|   491k|	do {                         \
  |  |  113|   491k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 491k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   491k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 491k]
  |  |  ------------------
  ------------------
 4262|   491k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   491k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   491k|	do {                         \
  |  |  |  |  113|   491k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 491k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   491k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 491k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4263|       |
 4264|   491k|	inp = stcb->sctp_ep;
 4265|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4266|       |	if (so_locked) {
 4267|       |		sctp_lock_assert(SCTP_INP_SO(inp));
 4268|       |	} else {
 4269|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
 4270|       |	}
 4271|       |#endif
 4272|   491k|	if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
  ------------------
  |  |  464|   491k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (4272:6): [True: 0, False: 491k]
  ------------------
 4273|      0|		return;
 4274|      0|	}
 4275|   491k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|   491k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   491k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|   491k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4275:6): [True: 30.7k, False: 460k]
  ------------------
 4276|   460k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|   460k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   460k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|   460k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4276:6): [True: 98.6k, False: 362k]
  ------------------
 4277|   129k|		if ((notification == SCTP_NOTIFY_INTERFACE_DOWN) ||
  ------------------
  |  |  705|   129k|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
  |  Branch (4277:7): [True: 0, False: 129k]
  ------------------
 4278|   129k|		    (notification == SCTP_NOTIFY_INTERFACE_UP) ||
  ------------------
  |  |  706|   129k|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
  |  Branch (4278:7): [True: 0, False: 129k]
  ------------------
 4279|   129k|		    (notification == SCTP_NOTIFY_INTERFACE_CONFIRMED)) {
  ------------------
  |  |  718|   129k|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
  |  Branch (4279:7): [True: 30, False: 129k]
  ------------------
 4280|       |			/* Don't report these in front states */
 4281|     30|			return;
 4282|     30|		}
 4283|   129k|	}
 4284|   491k|	if (notification != SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION) {
  ------------------
  |  |  717|   491k|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
  |  Branch (4284:6): [True: 490k, False: 1.26k]
  ------------------
 4285|   490k|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|   490k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   490k|	do {                         \
  |  |  |  |  113|   490k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 490k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   490k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 490k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4286|   490k|	}
 4287|   491k|	SCTP_INP_READ_LOCK_ASSERT(inp);
  ------------------
  |  |  356|   491k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   491k|	do {                         \
  |  |  |  |  113|   491k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 491k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   491k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 491k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4288|       |
 4289|   491k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|   491k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4289:6): [True: 0, False: 491k]
  ------------------
 4290|   491k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|   491k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4290:6): [True: 0, False: 491k]
  ------------------
 4291|   491k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ)) {
  ------------------
  |  |  548|   491k|#define SCTP_PCB_FLAGS_SOCKET_CANT_READ	0x40000000
  ------------------
  |  Branch (4291:6): [True: 0, False: 491k]
  ------------------
 4292|      0|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4293|      0|		return;
 4294|      0|	}
 4295|       |
 4296|   491k|	switch (notification) {
 4297|  5.17k|	case SCTP_NOTIFY_ASSOC_UP:
  ------------------
  |  |  703|  5.17k|#define SCTP_NOTIFY_ASSOC_UP                     1
  ------------------
  |  Branch (4297:2): [True: 5.17k, False: 486k]
  ------------------
 4298|  5.17k|		if (stcb->asoc.assoc_up_sent == 0) {
  ------------------
  |  Branch (4298:7): [True: 5.17k, False: 0]
  ------------------
 4299|  5.17k|			sctp_notify_assoc_change(SCTP_COMM_UP, stcb, error, NULL, false, false, so_locked);
  ------------------
  |  |  327|  5.17k|#define SCTP_COMM_UP            0x0001
  ------------------
 4300|  5.17k|			stcb->asoc.assoc_up_sent = 1;
 4301|  5.17k|		}
 4302|  5.17k|		if (stcb->asoc.adaptation_needed && (stcb->asoc.adaptation_sent == 0)) {
  ------------------
  |  Branch (4302:7): [True: 5.17k, False: 0]
  |  Branch (4302:39): [True: 5.17k, False: 0]
  ------------------
 4303|  5.17k|			sctp_notify_adaptation_layer(stcb, so_locked);
 4304|  5.17k|		}
 4305|  5.17k|		if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (4305:7): [True: 0, False: 5.17k]
  ------------------
 4306|      0|			sctp_notify_authentication(stcb, SCTP_AUTH_NO_AUTH, 0, so_locked);
  ------------------
  |  |  469|      0|#define SCTP_AUTH_NO_AUTH	0x0002
  ------------------
 4307|      0|		}
 4308|  5.17k|		break;
 4309|      2|	case SCTP_NOTIFY_ASSOC_DOWN:
  ------------------
  |  |  704|      2|#define SCTP_NOTIFY_ASSOC_DOWN                   2
  ------------------
  |  Branch (4309:2): [True: 2, False: 491k]
  ------------------
 4310|      2|		sctp_notify_assoc_change(SCTP_SHUTDOWN_COMP, stcb, error, NULL, false, false, so_locked);
  ------------------
  |  |  330|      2|#define SCTP_SHUTDOWN_COMP      0x0004
  ------------------
 4311|      2|#if defined(__Userspace__)
 4312|      2|		if (inp->recv_callback) {
  ------------------
  |  Branch (4312:7): [True: 0, False: 2]
  ------------------
 4313|      0|			if (stcb->sctp_socket) {
  ------------------
  |  Branch (4313:8): [True: 0, False: 0]
  ------------------
 4314|      0|				union sctp_sockstore addr;
 4315|      0|				struct sctp_rcvinfo rcv;
 4316|       |
 4317|      0|				memset(&addr, 0, sizeof(union sctp_sockstore));
 4318|      0|				memset(&rcv, 0, sizeof(struct sctp_rcvinfo));
 4319|      0|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4320|      0|				SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4321|      0|				inp->recv_callback(stcb->sctp_socket, addr, NULL, 0, rcv, 0, inp->ulp_info);
 4322|      0|				SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4323|      0|				atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 4324|      0|			}
 4325|      0|		}
 4326|      2|#endif
 4327|      2|		break;
 4328|      2|	case SCTP_NOTIFY_INTERFACE_DOWN:
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
  |  Branch (4328:2): [True: 0, False: 491k]
  ------------------
 4329|      0|		net = (struct sctp_nets *)data;
 4330|      0|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_UNREACHABLE,
  ------------------
  |  |  356|      0|#define SCTP_ADDR_UNREACHABLE	0x0002
  ------------------
 4331|      0|		                             &net->ro._l_addr.sa, error, so_locked);
 4332|      0|		break;
 4333|      0|	case SCTP_NOTIFY_INTERFACE_UP:
  ------------------
  |  |  706|      0|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
  |  Branch (4333:2): [True: 0, False: 491k]
  ------------------
 4334|      0|		net = (struct sctp_nets *)data;
 4335|      0|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_AVAILABLE,
  ------------------
  |  |  355|      0|#define SCTP_ADDR_AVAILABLE	0x0001
  ------------------
 4336|      0|		                             &net->ro._l_addr.sa, error, so_locked);
 4337|      0|		break;
 4338|      1|	case SCTP_NOTIFY_INTERFACE_CONFIRMED:
  ------------------
  |  |  718|      1|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
  |  Branch (4338:2): [True: 1, False: 491k]
  ------------------
 4339|      1|		net = (struct sctp_nets *)data;
 4340|      1|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_CONFIRMED,
  ------------------
  |  |  360|      1|#define SCTP_ADDR_CONFIRMED	0x0006
  ------------------
 4341|      1|		                             &net->ro._l_addr.sa, error, so_locked);
 4342|      1|		break;
 4343|    560|	case SCTP_NOTIFY_SPECIAL_SP_FAIL:
  ------------------
  |  |  709|    560|#define SCTP_NOTIFY_SPECIAL_SP_FAIL              7
  ------------------
  |  Branch (4343:2): [True: 560, False: 490k]
  ------------------
 4344|    560|		sctp_notify_send_failed2(stcb, error,
 4345|    560|		                         (struct sctp_stream_queue_pending *)data, so_locked);
 4346|    560|		break;
 4347|    539|	case SCTP_NOTIFY_SENT_DG_FAIL:
  ------------------
  |  |  707|    539|#define SCTP_NOTIFY_SENT_DG_FAIL                 5
  ------------------
  |  Branch (4347:2): [True: 539, False: 491k]
  ------------------
 4348|    539|		sctp_notify_send_failed(stcb, 1, error,
 4349|    539|		    (struct sctp_tmit_chunk *)data, so_locked);
 4350|    539|		break;
 4351|     25|	case SCTP_NOTIFY_UNSENT_DG_FAIL:
  ------------------
  |  |  708|     25|#define SCTP_NOTIFY_UNSENT_DG_FAIL               6
  ------------------
  |  Branch (4351:2): [True: 25, False: 491k]
  ------------------
 4352|     25|		sctp_notify_send_failed(stcb, 0, error,
 4353|     25|		                        (struct sctp_tmit_chunk *)data, so_locked);
 4354|     25|		break;
 4355|  1.26k|	case SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION:
  ------------------
  |  |  717|  1.26k|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
  |  Branch (4355:2): [True: 1.26k, False: 490k]
  ------------------
 4356|  1.26k|		sctp_notify_partial_delivery_indication(stcb, error,
 4357|  1.26k|		                                        (struct sctp_queued_to_read *)data,
 4358|  1.26k|		                                        so_locked);
 4359|  1.26k|		break;
 4360|  1.58k|	case SCTP_NOTIFY_ASSOC_LOC_ABORTED:
  ------------------
  |  |  710|  1.58k|#define SCTP_NOTIFY_ASSOC_LOC_ABORTED            8
  ------------------
  |  Branch (4360:2): [True: 1.58k, False: 489k]
  ------------------
 4361|  1.58k|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  1.58k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.58k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  1.58k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4361:7): [True: 588, False: 996]
  ------------------
 4362|    996|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|    996|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    996|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|    996|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4362:7): [True: 27, False: 969]
  ------------------
 4363|    615|			sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, false, false, so_locked);
  ------------------
  |  |  331|    615|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
 4364|    969|		} else {
 4365|    969|			sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, false, false, so_locked);
  ------------------
  |  |  328|    969|#define SCTP_COMM_LOST          0x0002
  ------------------
 4366|    969|		}
 4367|  1.58k|		break;
 4368|     78|	case SCTP_NOTIFY_ASSOC_REM_ABORTED:
  ------------------
  |  |  711|     78|#define SCTP_NOTIFY_ASSOC_REM_ABORTED            9
  ------------------
  |  Branch (4368:2): [True: 78, False: 491k]
  ------------------
 4369|     78|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|     78|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     78|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|     78|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4369:7): [True: 43, False: 35]
  ------------------
 4370|     52|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|     35|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     35|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|     35|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4370:7): [True: 9, False: 26]
  ------------------
 4371|     52|			sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, true, false, so_locked);
  ------------------
  |  |  331|     52|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
 4372|     52|		} else {
 4373|     26|			sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, true, false, so_locked);
  ------------------
  |  |  328|     26|#define SCTP_COMM_LOST          0x0002
  ------------------
 4374|     26|		}
 4375|     78|		break;
 4376|      0|	case SCTP_NOTIFY_ASSOC_TIMEDOUT:
  ------------------
  |  |  732|      0|#define SCTP_NOTIFY_ASSOC_TIMEDOUT              30
  ------------------
  |  Branch (4376:2): [True: 0, False: 491k]
  ------------------
 4377|      0|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|      0|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4377:7): [True: 0, False: 0]
  ------------------
 4378|      0|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|      0|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      0|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|      0|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4378:7): [True: 0, False: 0]
  ------------------
 4379|      0|			sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, false, true, so_locked);
  ------------------
  |  |  331|      0|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
 4380|      0|		} else {
 4381|      0|			sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, false, true, so_locked);
  ------------------
  |  |  328|      0|#define SCTP_COMM_LOST          0x0002
  ------------------
 4382|      0|		}
 4383|      0|		break;
 4384|      0|	case SCTP_NOTIFY_ASSOC_RESTART:
  ------------------
  |  |  712|      0|#define SCTP_NOTIFY_ASSOC_RESTART               10
  ------------------
  |  Branch (4384:2): [True: 0, False: 491k]
  ------------------
 4385|      0|		sctp_notify_assoc_change(SCTP_RESTART, stcb, error, NULL, false, false, so_locked);
  ------------------
  |  |  329|      0|#define SCTP_RESTART            0x0003
  ------------------
 4386|      0|		if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (4386:7): [True: 0, False: 0]
  ------------------
 4387|      0|			sctp_notify_authentication(stcb, SCTP_AUTH_NO_AUTH, 0, so_locked);
  ------------------
  |  |  469|      0|#define SCTP_AUTH_NO_AUTH	0x0002
  ------------------
 4388|      0|		}
 4389|      0|		break;
 4390|     68|	case SCTP_NOTIFY_STR_RESET_SEND:
  ------------------
  |  |  720|     68|#define SCTP_NOTIFY_STR_RESET_SEND              18
  ------------------
  |  Branch (4390:2): [True: 68, False: 491k]
  ------------------
 4391|     68|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data), SCTP_STREAM_RESET_OUTGOING_SSN, so_locked);
  ------------------
  |  |  492|     68|#define SCTP_STREAM_RESET_OUTGOING_SSN  0x0002
  ------------------
 4392|     68|		break;
 4393|    471|	case SCTP_NOTIFY_STR_RESET_RECV:
  ------------------
  |  |  719|    471|#define SCTP_NOTIFY_STR_RESET_RECV              17
  ------------------
  |  Branch (4393:2): [True: 471, False: 491k]
  ------------------
 4394|    471|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data), SCTP_STREAM_RESET_INCOMING, so_locked);
  ------------------
  |  |  185|    471|#define SCTP_STREAM_RESET_INCOMING	0x00000001
  ------------------
 4395|    471|		break;
 4396|      0|	case SCTP_NOTIFY_STR_RESET_FAILED_OUT:
  ------------------
  |  |  721|      0|#define SCTP_NOTIFY_STR_RESET_FAILED_OUT        19
  ------------------
  |  Branch (4396:2): [True: 0, False: 491k]
  ------------------
 4397|      0|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data),
 4398|      0|		                         (SCTP_STREAM_RESET_OUTGOING_SSN|SCTP_STREAM_RESET_FAILED), so_locked);
  ------------------
  |  |  492|      0|#define SCTP_STREAM_RESET_OUTGOING_SSN  0x0002
  ------------------
              		                         (SCTP_STREAM_RESET_OUTGOING_SSN|SCTP_STREAM_RESET_FAILED), so_locked);
  ------------------
  |  |  494|      0|#define SCTP_STREAM_RESET_FAILED        0x0008
  ------------------
 4399|      0|		break;
 4400|      0|	case SCTP_NOTIFY_STR_RESET_DENIED_OUT:
  ------------------
  |  |  723|      0|#define SCTP_NOTIFY_STR_RESET_DENIED_OUT        21
  ------------------
  |  Branch (4400:2): [True: 0, False: 491k]
  ------------------
 4401|      0|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data),
 4402|      0|		                         (SCTP_STREAM_RESET_OUTGOING_SSN|SCTP_STREAM_RESET_DENIED), so_locked);
  ------------------
  |  |  492|      0|#define SCTP_STREAM_RESET_OUTGOING_SSN  0x0002
  ------------------
              		                         (SCTP_STREAM_RESET_OUTGOING_SSN|SCTP_STREAM_RESET_DENIED), so_locked);
  ------------------
  |  |  493|      0|#define SCTP_STREAM_RESET_DENIED        0x0004
  ------------------
 4403|      0|		break;
 4404|      0|	case SCTP_NOTIFY_STR_RESET_FAILED_IN:
  ------------------
  |  |  722|      0|#define SCTP_NOTIFY_STR_RESET_FAILED_IN         20
  ------------------
  |  Branch (4404:2): [True: 0, False: 491k]
  ------------------
 4405|      0|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data),
 4406|      0|		                         (SCTP_STREAM_RESET_INCOMING|SCTP_STREAM_RESET_FAILED), so_locked);
  ------------------
  |  |  185|      0|#define SCTP_STREAM_RESET_INCOMING	0x00000001
  ------------------
              		                         (SCTP_STREAM_RESET_INCOMING|SCTP_STREAM_RESET_FAILED), so_locked);
  ------------------
  |  |  494|      0|#define SCTP_STREAM_RESET_FAILED        0x0008
  ------------------
 4407|      0|		break;
 4408|      0|	case SCTP_NOTIFY_STR_RESET_DENIED_IN:
  ------------------
  |  |  724|      0|#define SCTP_NOTIFY_STR_RESET_DENIED_IN         22
  ------------------
  |  Branch (4408:2): [True: 0, False: 491k]
  ------------------
 4409|      0|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data),
 4410|      0|		                         (SCTP_STREAM_RESET_INCOMING|SCTP_STREAM_RESET_DENIED), so_locked);
  ------------------
  |  |  185|      0|#define SCTP_STREAM_RESET_INCOMING	0x00000001
  ------------------
              		                         (SCTP_STREAM_RESET_INCOMING|SCTP_STREAM_RESET_DENIED), so_locked);
  ------------------
  |  |  493|      0|#define SCTP_STREAM_RESET_DENIED        0x0004
  ------------------
 4411|      0|		break;
 4412|     57|	case SCTP_NOTIFY_STR_RESET_ADD:
  ------------------
  |  |  725|     57|#define SCTP_NOTIFY_STR_RESET_ADD               23
  ------------------
  |  Branch (4412:2): [True: 57, False: 491k]
  ------------------
 4413|     57|		sctp_notify_stream_reset_add(stcb, error, so_locked);
 4414|     57|		break;
 4415|     68|	case SCTP_NOTIFY_STR_RESET_TSN:
  ------------------
  |  |  726|     68|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
  |  Branch (4415:2): [True: 68, False: 491k]
  ------------------
 4416|     68|		sctp_notify_stream_reset_tsn(stcb, error, so_locked);
 4417|     68|		break;
 4418|  40.5k|	case SCTP_NOTIFY_ASCONF_ADD_IP:
  ------------------
  |  |  714|  40.5k|#define SCTP_NOTIFY_ASCONF_ADD_IP               12
  ------------------
  |  Branch (4418:2): [True: 40.5k, False: 450k]
  ------------------
 4419|  40.5k|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_ADDED, data,
  ------------------
  |  |  358|  40.5k|#define SCTP_ADDR_ADDED		0x0004
  ------------------
 4420|  40.5k|		                             error, so_locked);
 4421|  40.5k|		break;
 4422|  41.8k|	case SCTP_NOTIFY_ASCONF_DELETE_IP:
  ------------------
  |  |  715|  41.8k|#define SCTP_NOTIFY_ASCONF_DELETE_IP            13
  ------------------
  |  Branch (4422:2): [True: 41.8k, False: 449k]
  ------------------
 4423|  41.8k|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_REMOVED, data,
  ------------------
  |  |  357|  41.8k|#define SCTP_ADDR_REMOVED	0x0003
  ------------------
 4424|  41.8k|		                             error, so_locked);
 4425|  41.8k|		break;
 4426|  1.74k|	case SCTP_NOTIFY_ASCONF_SET_PRIMARY:
  ------------------
  |  |  716|  1.74k|#define SCTP_NOTIFY_ASCONF_SET_PRIMARY          14
  ------------------
  |  Branch (4426:2): [True: 1.74k, False: 489k]
  ------------------
 4427|  1.74k|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_MADE_PRIM, data,
  ------------------
  |  |  359|  1.74k|#define SCTP_ADDR_MADE_PRIM	0x0005
  ------------------
 4428|  1.74k|		                             error, so_locked);
 4429|  1.74k|		break;
 4430|    103|	case SCTP_NOTIFY_PEER_SHUTDOWN:
  ------------------
  |  |  713|    103|#define SCTP_NOTIFY_PEER_SHUTDOWN               11
  ------------------
  |  Branch (4430:2): [True: 103, False: 491k]
  ------------------
 4431|    103|		sctp_notify_shutdown_event(stcb, so_locked);
 4432|    103|		break;
 4433|      0|	case SCTP_NOTIFY_AUTH_NEW_KEY:
  ------------------
  |  |  727|      0|#define SCTP_NOTIFY_AUTH_NEW_KEY                25
  ------------------
  |  Branch (4433:2): [True: 0, False: 491k]
  ------------------
 4434|      0|		sctp_notify_authentication(stcb, SCTP_AUTH_NEW_KEY,
  ------------------
  |  |  467|      0|#define SCTP_AUTH_NEW_KEY	0x0001
  ------------------
 4435|      0|		                           *(uint16_t *)data, so_locked);
 4436|      0|		break;
 4437|      0|	case SCTP_NOTIFY_AUTH_FREE_KEY:
  ------------------
  |  |  728|      0|#define SCTP_NOTIFY_AUTH_FREE_KEY               26
  ------------------
  |  Branch (4437:2): [True: 0, False: 491k]
  ------------------
 4438|      0|		sctp_notify_authentication(stcb, SCTP_AUTH_FREE_KEY,
  ------------------
  |  |  470|      0|#define SCTP_AUTH_FREE_KEY	0x0003
  ------------------
 4439|      0|		                           *(uint16_t *)data, so_locked);
 4440|      0|		break;
 4441|      0|	case SCTP_NOTIFY_NO_PEER_AUTH:
  ------------------
  |  |  729|      0|#define SCTP_NOTIFY_NO_PEER_AUTH                27
  ------------------
  |  Branch (4441:2): [True: 0, False: 491k]
  ------------------
 4442|      0|		sctp_notify_authentication(stcb, SCTP_AUTH_NO_AUTH,
  ------------------
  |  |  469|      0|#define SCTP_AUTH_NO_AUTH	0x0002
  ------------------
 4443|      0|		                           0, so_locked);
 4444|      0|		break;
 4445|     64|	case SCTP_NOTIFY_SENDER_DRY:
  ------------------
  |  |  730|     64|#define SCTP_NOTIFY_SENDER_DRY                  28
  ------------------
  |  Branch (4445:2): [True: 64, False: 491k]
  ------------------
 4446|     64|		sctp_notify_sender_dry_event(stcb, so_locked);
 4447|     64|		break;
 4448|   397k|	case SCTP_NOTIFY_REMOTE_ERROR:
  ------------------
  |  |  731|   397k|#define SCTP_NOTIFY_REMOTE_ERROR                29
  ------------------
  |  Branch (4448:2): [True: 397k, False: 94.1k]
  ------------------
 4449|   397k|		sctp_notify_remote_error(stcb, error, data, so_locked);
 4450|   397k|		break;
 4451|      0|	default:
  ------------------
  |  Branch (4451:2): [True: 0, False: 491k]
  ------------------
 4452|      0|		SCTPDBG(SCTP_DEBUG_UTIL1, "%s: unknown notification %xh (%u)\n",
 4453|      0|		        __func__, notification, notification);
 4454|      0|		break;
 4455|   491k|	}
 4456|   491k|	if (notification != SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION) {
  ------------------
  |  |  717|   491k|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
  |  Branch (4456:6): [True: 490k, False: 1.26k]
  ------------------
 4457|   490k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|   490k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   490k|	do {                         \
  |  |  |  |  113|   490k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 490k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   490k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 490k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4458|   490k|	}
 4459|   491k|}
sctp_report_all_outbound:
 4463|  1.66k|{
 4464|  1.66k|	struct sctp_association *asoc;
 4465|  1.66k|	struct sctp_stream_out *outs;
 4466|  1.66k|	struct sctp_tmit_chunk *chk, *nchk;
 4467|  1.66k|	struct sctp_stream_queue_pending *sp, *nsp;
 4468|  1.66k|	int i;
 4469|       |
 4470|  1.66k|	if (stcb == NULL) {
  ------------------
  |  Branch (4470:6): [True: 0, False: 1.66k]
  ------------------
 4471|      0|		return;
 4472|      0|	}
 4473|  1.66k|	asoc = &stcb->asoc;
 4474|  1.66k|	if (asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.66k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (4474:6): [True: 0, False: 1.66k]
  ------------------
 4475|       |		/* already being freed */
 4476|      0|		return;
 4477|      0|	}
 4478|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4479|       |	if (so_locked) {
 4480|       |		sctp_lock_assert(SCTP_INP_SO(stcb->sctp_ep));
 4481|       |	} else {
 4482|       |		sctp_unlock_assert(SCTP_INP_SO(stcb->sctp_ep));
 4483|       |	}
 4484|       |#endif
 4485|  1.66k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  1.66k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4485:6): [True: 0, False: 1.66k]
  ------------------
 4486|  1.66k|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  1.66k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4486:6): [True: 0, False: 1.66k]
  ------------------
 4487|  1.66k|	    (asoc->state & SCTP_STATE_CLOSED_SOCKET)) {
  ------------------
  |  |  464|  1.66k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (4487:6): [True: 0, False: 1.66k]
  ------------------
 4488|      0|		return;
 4489|      0|	}
 4490|       |	/* now through all the gunk freeing chunks */
 4491|       |	/* sent queue SHOULD be empty */
 4492|  1.66k|	TAILQ_FOREACH_SAFE(chk, &asoc->sent_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  1.66k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  2.20k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 539, False: 1.66k]
  |  |  |  Branch (1130:24): [True: 539, False: 0]
  |  |  ------------------
  |  | 1131|  1.66k|              (var) = (tvar))
  ------------------
 4493|    539|		TAILQ_REMOVE(&asoc->sent_queue, chk, sctp_next);
  ------------------
  |  Branch (4493:3): [True: 70, False: 469]
  |  Branch (4493:3): [Folded, False: 539]
  ------------------
 4494|    539|		asoc->sent_queue_cnt--;
 4495|    539|		if (chk->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|    539|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (4495:7): [True: 539, False: 0]
  ------------------
 4496|    539|			if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (4496:8): [True: 539, False: 0]
  ------------------
 4497|    539|				asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 4498|    539|#ifdef INVARIANTS
 4499|    539|			} else {
 4500|      0|				panic("No chunks on the queues for sid %u.", chk->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4501|      0|#endif
 4502|      0|			}
 4503|    539|		}
 4504|    539|		if (chk->data != NULL) {
  ------------------
  |  Branch (4504:7): [True: 539, False: 0]
  ------------------
 4505|    539|			sctp_free_bufspace(stcb, asoc, chk, 1);
 4506|    539|			sctp_ulp_notify(SCTP_NOTIFY_SENT_DG_FAIL, stcb,
  ------------------
  |  |  707|    539|#define SCTP_NOTIFY_SENT_DG_FAIL                 5
  ------------------
 4507|    539|			                error, chk, so_locked);
 4508|    539|			if (chk->data) {
  ------------------
  |  Branch (4508:8): [True: 0, False: 539]
  ------------------
 4509|      0|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4510|      0|				chk->data = NULL;
 4511|      0|			}
 4512|    539|		}
 4513|    539|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|    539|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    539|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 539]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    539|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 539, False: 0]
  |  |  ------------------
  |  |  149|    539|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    539|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    539|	do {                         \
  |  |  |  |  |  |  113|    539|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 539]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    539|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 539]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    539|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 539, False: 0]
  |  |  ------------------
  |  |  151|    539|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    539|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    539|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 539, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    539|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    539|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    539|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 539]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|    539|	} \
  |  |  |  |  245|    539|}
  |  |  ------------------
  |  |  152|    539|			(_chk)->whoTo = NULL; \
  |  |  153|    539|		} \
  |  |  154|    539|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    539|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 4, False: 535]
  |  |  ------------------
  |  |  155|    539|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    535|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|    535|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 535]
  |  |  ------------------
  |  |  156|      4|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      4|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      4|	free(element);  \
  |  |  |  |  709|      4|}
  |  |  ------------------
  |  |  157|      4|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      4|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      4|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    535|		} else { \
  |  |  159|    535|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    535|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    535|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    535|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    535|		} \
  |  |  163|    539|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|    539|}
  ------------------
  |  Branch (4513:3): [Folded, False: 535]
  ------------------
 4514|       |		/*sa_ignore FREED_MEMORY*/
 4515|    539|	}
 4516|       |	/* pending send queue SHOULD be empty */
 4517|  1.66k|	TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  1.66k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  1.68k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 25, False: 1.66k]
  |  |  |  Branch (1130:24): [True: 25, False: 0]
  |  |  ------------------
  |  | 1131|  1.66k|              (var) = (tvar))
  ------------------
 4518|     25|		TAILQ_REMOVE(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (4518:3): [True: 0, False: 25]
  |  Branch (4518:3): [Folded, False: 25]
  ------------------
 4519|     25|		asoc->send_queue_cnt--;
 4520|     25|		if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (4520:7): [True: 25, False: 0]
  ------------------
 4521|     25|			asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 4522|     25|#ifdef INVARIANTS
 4523|     25|		} else {
 4524|      0|			panic("No chunks on the queues for sid %u.", chk->rec.data.sid);
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 4525|      0|#endif
 4526|      0|		}
 4527|     25|		if (chk->data != NULL) {
  ------------------
  |  Branch (4527:7): [True: 25, False: 0]
  ------------------
 4528|     25|			sctp_free_bufspace(stcb, asoc, chk, 1);
 4529|     25|			sctp_ulp_notify(SCTP_NOTIFY_UNSENT_DG_FAIL, stcb,
  ------------------
  |  |  708|     25|#define SCTP_NOTIFY_UNSENT_DG_FAIL               6
  ------------------
 4530|     25|			                error, chk, so_locked);
 4531|     25|			if (chk->data) {
  ------------------
  |  Branch (4531:8): [True: 0, False: 25]
  ------------------
 4532|      0|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4533|      0|				chk->data = NULL;
 4534|      0|			}
 4535|     25|		}
 4536|     25|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|     25|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|     25|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 25]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|     25|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 25, False: 0]
  |  |  ------------------
  |  |  149|     25|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|     25|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|	do {                         \
  |  |  |  |  |  |  113|     25|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 25]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|     25|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 25]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|     25|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 25]
  |  |  ------------------
  |  |  151|      0|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|      0|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|      0|			} \
  |  |  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  |  |  709|      0|}
  |  |  |  |  ------------------
  |  |  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|      0|		} \
  |  |  |  |  244|      0|	} \
  |  |  |  |  245|      0|}
  |  |  ------------------
  |  |  152|      0|			(_chk)->whoTo = NULL; \
  |  |  153|      0|		} \
  |  |  154|     25|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|     25|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 2, False: 23]
  |  |  ------------------
  |  |  155|     25|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|     23|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  |  |  ------------------
  |  |               		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  590|     23|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 23]
  |  |  ------------------
  |  |  156|      2|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      2|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      2|	free(element);  \
  |  |  |  |  709|      2|}
  |  |  ------------------
  |  |  157|      2|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      2|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      2|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|     23|		} else { \
  |  |  159|     23|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|     23|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|     23|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|     23|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|     23|		} \
  |  |  163|     25|	} else { \
  |  |  164|      0|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  165|      0|		SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  166|      0|	} \
  |  |  167|     25|}
  ------------------
  |  Branch (4536:3): [Folded, False: 23]
  ------------------
 4537|       |		/*sa_ignore FREED_MEMORY*/
 4538|     25|	}
 4539|   402k|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (4539:14): [True: 400k, False: 1.66k]
  ------------------
 4540|       |		/* For each stream */
 4541|   400k|		outs = &asoc->strmout[i];
 4542|       |		/* clean up any sends there */
 4543|   400k|		TAILQ_FOREACH_SAFE(sp, &outs->outqueue, next, nsp) {
  ------------------
  |  | 1129|   400k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   401k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 560, False: 400k]
  |  |  |  Branch (1130:24): [True: 560, False: 0]
  |  |  ------------------
  |  | 1131|   400k|              (var) = (tvar))
  ------------------
 4544|    560|			atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|    560|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 4545|    560|			TAILQ_REMOVE(&outs->outqueue, sp, next);
  ------------------
  |  Branch (4545:4): [True: 0, False: 560]
  |  Branch (4545:4): [Folded, False: 560]
  ------------------
 4546|    560|			stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, outs, sp);
 4547|    560|			sctp_free_spbufspace(stcb, asoc, sp);
  ------------------
  |  |  270|    560|#define sctp_free_spbufspace(stcb, asoc, sp)  \
  |  |  271|    560|do { \
  |  |  272|    560|	if (sp->data != NULL) { \
  |  |  ------------------
  |  |  |  Branch (272:6): [True: 560, False: 0]
  |  |  ------------------
  |  |  273|    560|		if ((asoc)->total_output_queue_size >= sp->length) { \
  |  |  ------------------
  |  |  |  Branch (273:7): [True: 560, False: 0]
  |  |  ------------------
  |  |  274|    560|			atomic_subtract_int(&(asoc)->total_output_queue_size, sp->length); \
  |  |  ------------------
  |  |  |  |   97|    560|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  275|    560|		} else { \
  |  |  276|      0|			(asoc)->total_output_queue_size = 0; \
  |  |  277|      0|		} \
  |  |  278|    560|		if (stcb->sctp_socket && ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|    560|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (278:7): [True: 560, False: 0]
  |  |  |  Branch (278:29): [True: 560, False: 0]
  |  |  ------------------
  |  |  279|    560|		    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) { \
  |  |  ------------------
  |  |  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  |  |  ------------------
  |  |  |  Branch (279:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  280|    560|			SCTP_SB_DECR(&stcb->sctp_socket->so_snd, sp->length); \
  |  |  ------------------
  |  |  |  |  973|    560|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|    560|{								\
  |  |  |  |  975|    560|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|    560|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|    560|{ \
  |  |  |  |  |  |  119|    560|	int32_t oldval; \
  |  |  |  |  |  |  120|    560|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    560|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|    560|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 560]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|	} \
  |  |  |  |  |  |  124|    560|}
  |  |  |  |  ------------------
  |  |  |  |  976|    560|}
  |  |  ------------------
  |  |  281|    560|		} \
  |  |  282|    560|	} \
  |  |  283|    560|} while (0)
  |  |  ------------------
  |  |  |  Branch (283:10): [Folded, False: 560]
  |  |  ------------------
  ------------------
 4548|    560|			if (sp->data) {
  ------------------
  |  Branch (4548:8): [True: 560, False: 0]
  ------------------
 4549|    560|				sctp_ulp_notify(SCTP_NOTIFY_SPECIAL_SP_FAIL, stcb,
  ------------------
  |  |  709|    560|#define SCTP_NOTIFY_SPECIAL_SP_FAIL              7
  ------------------
 4550|    560|						error, (void *)sp, so_locked);
 4551|    560|				if (sp->data) {
  ------------------
  |  Branch (4551:9): [True: 0, False: 560]
  ------------------
 4552|      0|					sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4553|      0|					sp->data = NULL;
 4554|      0|					sp->tail_mbuf = NULL;
 4555|      0|					sp->length = 0;
 4556|      0|				}
 4557|    560|			}
 4558|    560|			if (sp->net) {
  ------------------
  |  Branch (4558:8): [True: 0, False: 560]
  ------------------
 4559|      0|				sctp_free_remote_addr(sp->net);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 4560|      0|				sp->net = NULL;
 4561|      0|			}
 4562|       |			/* Free the chunk */
 4563|    560|			sctp_free_a_strmoq(stcb, sp, so_locked);
  ------------------
  |  |  125|    560|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|    560|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 560]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|    560|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|    560|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    560|	free(element);  \
  |  |  |  |  709|    560|}
  |  |  ------------------
  |  |  131|    560|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|    560|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    560|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|    560|}
  ------------------
 4564|       |			/*sa_ignore FREED_MEMORY*/
 4565|    560|		}
 4566|   400k|	}
 4567|  1.66k|}
sctp_abort_notification:
 4573|  1.66k|{
 4574|  1.66k|	if (stcb == NULL) {
  ------------------
  |  Branch (4574:6): [True: 0, False: 1.66k]
  ------------------
 4575|      0|		return;
 4576|      0|	}
 4577|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4578|       |	if (so_locked) {
 4579|       |		sctp_lock_assert(SCTP_INP_SO(stcb->sctp_ep));
 4580|       |	} else {
 4581|       |		sctp_unlock_assert(SCTP_INP_SO(stcb->sctp_ep));
 4582|       |	}
 4583|       |#endif
 4584|  1.66k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.66k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.66k|	do {                         \
  |  |  |  |  113|  1.66k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.66k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.66k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.66k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4585|       |
 4586|  1.66k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|  1.66k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4586:6): [True: 0, False: 1.66k]
  ------------------
 4587|  1.66k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  1.66k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4587:7): [True: 1.66k, False: 0]
  ------------------
 4588|  1.66k|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_CONNECTED))) {
  ------------------
  |  |  539|  1.66k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (4588:7): [True: 1.66k, False: 0]
  ------------------
 4589|  1.66k|		sctp_pcb_add_flags(stcb->sctp_ep, SCTP_PCB_FLAGS_WAS_ABORTED);
  ------------------
  |  |  536|  1.66k|#define SCTP_PCB_FLAGS_WAS_ABORTED      0x00100000
  ------------------
 4590|  1.66k|	}
 4591|  1.66k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  1.66k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4591:6): [True: 0, False: 1.66k]
  ------------------
 4592|  1.66k|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  1.66k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4592:6): [True: 0, False: 1.66k]
  ------------------
 4593|  1.66k|	    (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET)) {
  ------------------
  |  |  464|  1.66k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (4593:6): [True: 0, False: 1.66k]
  ------------------
 4594|      0|		return;
 4595|      0|	}
 4596|  1.66k|	SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_WAS_ABORTED);
  ------------------
  |  |  478|  1.66k|	sctp_add_substate(_stcb, _substate)
  ------------------
 4597|       |	/* Tell them we lost the asoc */
 4598|  1.66k|	sctp_report_all_outbound(stcb, error, so_locked);
 4599|  1.66k|	if (from_peer) {
  ------------------
  |  Branch (4599:6): [True: 78, False: 1.58k]
  ------------------
 4600|     78|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_REM_ABORTED, stcb, error, abort, so_locked);
  ------------------
  |  |  711|     78|#define SCTP_NOTIFY_ASSOC_REM_ABORTED            9
  ------------------
 4601|  1.58k|	} else {
 4602|  1.58k|		if (timeout) {
  ------------------
  |  Branch (4602:7): [True: 0, False: 1.58k]
  ------------------
 4603|      0|			sctp_ulp_notify(SCTP_NOTIFY_ASSOC_TIMEDOUT, stcb, error, abort, so_locked);
  ------------------
  |  |  732|      0|#define SCTP_NOTIFY_ASSOC_TIMEDOUT              30
  ------------------
 4604|  1.58k|		} else {
 4605|  1.58k|			sctp_ulp_notify(SCTP_NOTIFY_ASSOC_LOC_ABORTED, stcb, error, abort, so_locked);
  ------------------
  |  |  710|  1.58k|#define SCTP_NOTIFY_ASSOC_LOC_ABORTED            8
  ------------------
 4606|  1.58k|		}
 4607|  1.58k|	}
 4608|  1.66k|}
sctp_abort_association:
 4619|    493|{
 4620|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4621|       |	struct socket *so;
 4622|       |#endif
 4623|    493|	struct sctp_gen_error_cause* cause;
 4624|    493|	uint32_t vtag;
 4625|    493|	uint16_t cause_code;
 4626|       |
 4627|    493|	if (stcb != NULL) {
  ------------------
  |  Branch (4627:6): [True: 493, False: 0]
  ------------------
 4628|    493|		vtag = stcb->asoc.peer_vtag;
 4629|    493|		vrf_id = stcb->asoc.vrf_id;
 4630|    493|		if (op_err != NULL) {
  ------------------
  |  Branch (4630:7): [True: 269, False: 224]
  ------------------
 4631|       |			/* Read the cause code from the error cause. */
 4632|    269|			cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|    269|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    269|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4633|    269|			cause_code = ntohs(cause->code);
 4634|    269|		} else {
 4635|    224|			cause_code = 0;
 4636|    224|		}
 4637|    493|	} else {
 4638|      0|		vtag = 0;
 4639|      0|	}
 4640|    493|	sctp_send_abort(m, iphlen, src, dst, sh, vtag, op_err,
 4641|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4642|       |	                mflowtype, mflowid, inp->fibnum,
 4643|       |#endif
 4644|    493|	                vrf_id, port);
 4645|    493|	if (stcb != NULL) {
  ------------------
  |  Branch (4645:6): [True: 493, False: 0]
  ------------------
 4646|       |		/* We have a TCB to abort, send notification too */
 4647|    493|		sctp_abort_notification(stcb, false, false, cause_code, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    493|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4648|       |		/* Ok, now lets free it */
 4649|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4650|       |		so = SCTP_INP_SO(inp);
 4651|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 4652|       |		SCTP_TCB_UNLOCK(stcb);
 4653|       |		SCTP_SOCKET_LOCK(so, 1);
 4654|       |		SCTP_TCB_LOCK(stcb);
 4655|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 4656|       |#endif
 4657|    493|		SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|    493|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    493|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    493|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    493|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4658|    493|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|    493|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    493|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|    493|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (4658:7): [True: 0, False: 493]
  ------------------
 4659|    493|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|    493|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    493|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|    493|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4659:7): [True: 0, False: 493]
  ------------------
 4660|      0|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|      0|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|      0|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|      0|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4661|      0|		}
 4662|    493|		(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|    493|#define SCTP_NORMAL_PROC      0
  ------------------
 4663|    493|		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_4);
  ------------------
  |  |  760|    493|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_4);
  ------------------
  |  |  772|    493|#define SCTP_LOC_4  0x00000004
  ------------------
 4664|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4665|       |		SCTP_SOCKET_UNLOCK(so, 1);
 4666|       |#endif
 4667|    493|	}
 4668|    493|}
sctp_abort_an_association:
 4734|  1.09k|{
 4735|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4736|       |	struct socket *so;
 4737|       |#endif
 4738|  1.09k|	struct sctp_gen_error_cause* cause;
 4739|  1.09k|	uint16_t cause_code;
 4740|       |
 4741|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4742|       |	so = SCTP_INP_SO(inp);
 4743|       |#endif
 4744|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4745|       |	if (so_locked) {
 4746|       |		sctp_lock_assert(SCTP_INP_SO(inp));
 4747|       |	} else {
 4748|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
 4749|       |	}
 4750|       |#endif
 4751|  1.09k|	if (stcb == NULL) {
  ------------------
  |  Branch (4751:6): [True: 0, False: 1.09k]
  ------------------
 4752|       |		/* Got to have a TCB */
 4753|      0|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4753:7): [True: 0, False: 0]
  ------------------
 4754|      0|			if (LIST_EMPTY(&inp->sctp_asoc_list)) {
  ------------------
  |  Branch (4754:8): [True: 0, False: 0]
  ------------------
 4755|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4756|       |				if (!so_locked) {
 4757|       |					SCTP_SOCKET_LOCK(so, 1);
 4758|       |				}
 4759|       |#endif
 4760|      0|				sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_ABORT,
  ------------------
  |  |  869|      0|#define SCTP_FREE_SHOULD_USE_ABORT          1
  ------------------
 4761|      0|						SCTP_CALLED_DIRECTLY_NOCMPSET);
  ------------------
  |  |  865|      0|#define SCTP_CALLED_DIRECTLY_NOCMPSET     0
  ------------------
 4762|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4763|       |				if (!so_locked) {
 4764|       |					SCTP_SOCKET_UNLOCK(so, 1);
 4765|       |				}
 4766|       |#endif
 4767|      0|			}
 4768|      0|		}
 4769|      0|		return;
 4770|      0|	}
 4771|  1.09k|	if (op_err != NULL) {
  ------------------
  |  Branch (4771:6): [True: 1.09k, False: 0]
  ------------------
 4772|       |		/* Read the cause code from the error cause. */
 4773|  1.09k|		cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|  1.09k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.09k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4774|  1.09k|		cause_code = ntohs(cause->code);
 4775|  1.09k|	} else {
 4776|      0|		cause_code = 0;
 4777|      0|	}
 4778|       |	/* notify the peer */
 4779|  1.09k|	sctp_send_abort_tcb(stcb, op_err, so_locked);
 4780|  1.09k|	SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|  1.09k|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  1.09k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.09k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.09k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4781|  1.09k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|  1.09k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.09k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|  1.09k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (4781:6): [True: 964, False: 127]
  ------------------
 4782|    967|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|    127|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    127|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|    127|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4782:6): [True: 3, False: 124]
  ------------------
 4783|    967|		SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|    967|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|    967|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|    967|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|    967|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4784|    967|	}
 4785|       |	/* notify the ulp */
 4786|  1.09k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) {
  ------------------
  |  |  546|  1.09k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4786:6): [True: 1.09k, False: 0]
  ------------------
 4787|  1.09k|		sctp_abort_notification(stcb, false, timedout, cause_code, NULL, so_locked);
 4788|  1.09k|	}
 4789|       |	/* now free the asoc */
 4790|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 4791|       |	sctp_print_out_track_log(stcb);
 4792|       |#endif
 4793|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4794|       |	if (!so_locked) {
 4795|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 4796|       |		SCTP_TCB_UNLOCK(stcb);
 4797|       |		SCTP_SOCKET_LOCK(so, 1);
 4798|       |		SCTP_TCB_LOCK(stcb);
 4799|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 4800|       |	}
 4801|       |#endif
 4802|  1.09k|	(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|  1.09k|#define SCTP_NORMAL_PROC      0
  ------------------
 4803|  1.09k|	                      SCTP_FROM_SCTPUTIL + SCTP_LOC_5);
  ------------------
  |  |  760|  1.09k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                      SCTP_FROM_SCTPUTIL + SCTP_LOC_5);
  ------------------
  |  |  773|  1.09k|#define SCTP_LOC_5  0x00000005
  ------------------
 4804|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4805|       |	if (!so_locked) {
 4806|       |		SCTP_SOCKET_UNLOCK(so, 1);
 4807|       |	}
 4808|       |#endif
 4809|  1.09k|}
sctp_handle_ootb:
 4820|    313|{
 4821|    313|	struct sctp_chunkhdr *ch, chunk_buf;
 4822|    313|	unsigned int chk_length;
 4823|    313|	int contains_init_chunk;
 4824|       |
 4825|    313|	SCTP_STAT_INCR_COUNTER32(sctps_outoftheblue);
  ------------------
  |  | 1127|    313|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    313|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    313|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    313|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4826|       |	/* Generate a TO address for future reference */
 4827|    313|	if (inp && (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) {
  ------------------
  |  |  546|    313|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4827:6): [True: 313, False: 0]
  |  Branch (4827:13): [True: 0, False: 313]
  ------------------
 4828|      0|		if (LIST_EMPTY(&inp->sctp_asoc_list)) {
  ------------------
  |  Branch (4828:7): [True: 0, False: 0]
  ------------------
 4829|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4830|       |			SCTP_SOCKET_LOCK(SCTP_INP_SO(inp), 1);
 4831|       |#endif
 4832|      0|			sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_ABORT,
  ------------------
  |  |  869|      0|#define SCTP_FREE_SHOULD_USE_ABORT          1
  ------------------
 4833|      0|					SCTP_CALLED_DIRECTLY_NOCMPSET);
  ------------------
  |  |  865|      0|#define SCTP_CALLED_DIRECTLY_NOCMPSET     0
  ------------------
 4834|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4835|       |			SCTP_SOCKET_UNLOCK(SCTP_INP_SO(inp), 1);
 4836|       |#endif
 4837|      0|		}
 4838|      0|	}
 4839|    313|	contains_init_chunk = 0;
 4840|    313|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
 4841|    313|	    sizeof(*ch), (uint8_t *) & chunk_buf);
 4842|  43.5k|	while (ch != NULL) {
  ------------------
  |  Branch (4842:9): [True: 43.3k, False: 256]
  ------------------
 4843|  43.3k|		chk_length = ntohs(ch->chunk_length);
 4844|  43.3k|		if (chk_length < sizeof(*ch)) {
  ------------------
  |  Branch (4844:7): [True: 49, False: 43.2k]
  ------------------
 4845|       |			/* break to abort land */
 4846|     49|			break;
 4847|     49|		}
 4848|  43.2k|		switch (ch->chunk_type) {
 4849|  29.2k|		case SCTP_INIT:
  ------------------
  |  |   92|  29.2k|#define SCTP_INIT	0x0001
  ------------------
  |  Branch (4849:3): [True: 29.2k, False: 14.0k]
  ------------------
 4850|  29.2k|			contains_init_chunk = 1;
 4851|  29.2k|			break;
 4852|      3|		case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|      3|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (4852:3): [True: 3, False: 43.2k]
  ------------------
 4853|       |			/* we don't respond to pkt-dropped */
 4854|      3|			return;
 4855|      1|		case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|      1|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (4855:3): [True: 1, False: 43.2k]
  ------------------
 4856|       |			/* we don't respond with an ABORT to an ABORT */
 4857|      1|			return;
 4858|      1|		case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|      1|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (4858:3): [True: 1, False: 43.2k]
  ------------------
 4859|       |			/*
 4860|       |			 * we ignore it since we are not waiting for it and
 4861|       |			 * peer is gone
 4862|       |			 */
 4863|      1|			return;
 4864|      3|		case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|      3|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (4864:3): [True: 3, False: 43.2k]
  ------------------
 4865|      3|			sctp_send_shutdown_complete2(src, dst, sh,
 4866|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4867|       |			                             mflowtype, mflowid, fibnum,
 4868|       |#endif
 4869|      3|			                             vrf_id, port);
 4870|      3|			return;
 4871|  14.0k|		default:
  ------------------
  |  Branch (4871:3): [True: 14.0k, False: 29.2k]
  ------------------
 4872|  14.0k|			break;
 4873|  43.2k|		}
 4874|  43.2k|		offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|  43.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4875|  43.2k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
 4876|  43.2k|		    sizeof(*ch), (uint8_t *) & chunk_buf);
 4877|  43.2k|	}
 4878|    305|	if ((SCTP_BASE_SYSCTL(sctp_blackhole) == 0) ||
  ------------------
  |  |  590|    305|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (4878:6): [True: 305, False: 0]
  ------------------
 4879|      0|	    ((SCTP_BASE_SYSCTL(sctp_blackhole) == 1) &&
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (4879:7): [True: 0, False: 0]
  ------------------
 4880|    305|	     (contains_init_chunk == 0))) {
  ------------------
  |  Branch (4880:7): [True: 0, False: 0]
  ------------------
 4881|    305|		sctp_send_abort(m, iphlen, src, dst, sh, 0, cause,
 4882|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4883|       |		                mflowtype, mflowid, fibnum,
 4884|       |#endif
 4885|    305|		                vrf_id, port);
 4886|    305|	}
 4887|    305|}
sctp_is_there_an_abort_here:
 4895|    798|{
 4896|    798|	struct sctp_chunkhdr *ch;
 4897|    798|	struct sctp_init_chunk *init_chk, chunk_buf;
 4898|    798|	int offset;
 4899|    798|	unsigned int chk_length;
 4900|       |
 4901|    798|	offset = iphlen + sizeof(struct sctphdr);
 4902|    798|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset, sizeof(*ch),
 4903|    798|	    (uint8_t *) & chunk_buf);
 4904|  80.4k|	while (ch != NULL) {
  ------------------
  |  Branch (4904:9): [True: 79.6k, False: 749]
  ------------------
 4905|  79.6k|		chk_length = ntohs(ch->chunk_length);
 4906|  79.6k|		if (chk_length < sizeof(*ch)) {
  ------------------
  |  Branch (4906:7): [True: 49, False: 79.6k]
  ------------------
 4907|       |			/* packet is probably corrupt */
 4908|     49|			break;
 4909|     49|		}
 4910|       |		/* we seem to be ok, is it an abort? */
 4911|  79.6k|		if (ch->chunk_type == SCTP_ABORT_ASSOCIATION) {
  ------------------
  |  |  460|  79.6k|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (4911:7): [True: 0, False: 79.6k]
  ------------------
 4912|       |			/* yep, tell them */
 4913|      0|			return (1);
 4914|      0|		}
 4915|  79.6k|		if ((ch->chunk_type == SCTP_INITIATION) ||
  ------------------
  |  |  455|  79.6k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4915:7): [True: 29.2k, False: 50.4k]
  ------------------
 4916|  50.4k|		    (ch->chunk_type == SCTP_INITIATION_ACK)) {
  ------------------
  |  |  456|  50.4k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (4916:7): [True: 1.89k, False: 48.5k]
  ------------------
 4917|       |			/* need to update the Vtag */
 4918|  31.0k|			init_chk = (struct sctp_init_chunk *)sctp_m_getptr(m,
 4919|  31.0k|			    offset, sizeof(struct sctp_init_chunk), (uint8_t *) & chunk_buf);
 4920|  31.0k|			if (init_chk != NULL) {
  ------------------
  |  Branch (4920:8): [True: 30.9k, False: 151]
  ------------------
 4921|  30.9k|				*vtag = ntohl(init_chk->init.initiate_tag);
 4922|  30.9k|			}
 4923|  31.0k|		}
 4924|       |		/* Nope, move to the next chunk */
 4925|  79.6k|		offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|  79.6k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4926|  79.6k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
 4927|  79.6k|		    sizeof(*ch), (uint8_t *) & chunk_buf);
 4928|  79.6k|	}
 4929|    798|	return (0);
 4930|    798|}
sctp_cmpaddr:
 5016|   363k|{
 5017|       |
 5018|       |	/* must be valid */
 5019|   363k|	if (sa1 == NULL || sa2 == NULL)
  ------------------
  |  Branch (5019:6): [True: 0, False: 363k]
  |  Branch (5019:21): [True: 0, False: 363k]
  ------------------
 5020|      0|		return (0);
 5021|       |
 5022|       |	/* must be the same family */
 5023|   363k|	if (sa1->sa_family != sa2->sa_family)
  ------------------
  |  Branch (5023:6): [True: 82.9k, False: 280k]
  ------------------
 5024|  82.9k|		return (0);
 5025|       |
 5026|   280k|	switch (sa1->sa_family) {
 5027|      0|#ifdef INET6
 5028|  39.4k|	case AF_INET6:
  ------------------
  |  Branch (5028:2): [True: 39.4k, False: 240k]
  ------------------
 5029|  39.4k|	{
 5030|       |		/* IPv6 addresses */
 5031|  39.4k|		struct sockaddr_in6 *sin6_1, *sin6_2;
 5032|       |
 5033|  39.4k|		sin6_1 = (struct sockaddr_in6 *)sa1;
 5034|  39.4k|		sin6_2 = (struct sockaddr_in6 *)sa2;
 5035|  39.4k|		return (SCTP6_ARE_ADDR_EQUAL(sin6_1,
 5036|  39.4k|		    sin6_2));
 5037|      0|	}
 5038|      0|#endif
 5039|      0|#ifdef INET
 5040|   207k|	case AF_INET:
  ------------------
  |  Branch (5040:2): [True: 207k, False: 72.6k]
  ------------------
 5041|   207k|	{
 5042|       |		/* IPv4 addresses */
 5043|   207k|		struct sockaddr_in *sin_1, *sin_2;
 5044|       |
 5045|   207k|		sin_1 = (struct sockaddr_in *)sa1;
 5046|   207k|		sin_2 = (struct sockaddr_in *)sa2;
 5047|   207k|		return (sin_1->sin_addr.s_addr == sin_2->sin_addr.s_addr);
 5048|      0|	}
 5049|      0|#endif
 5050|      0|#if defined(__Userspace__)
 5051|  33.2k|	case AF_CONN:
  ------------------
  |  | 1014|  33.2k|#define AF_CONN 123
  ------------------
  |  Branch (5051:2): [True: 33.2k, False: 247k]
  ------------------
 5052|  33.2k|	{
 5053|  33.2k|		struct sockaddr_conn *sconn_1, *sconn_2;
 5054|       |
 5055|  33.2k|		sconn_1 = (struct sockaddr_conn *)sa1;
 5056|  33.2k|		sconn_2 = (struct sockaddr_conn *)sa2;
 5057|  33.2k|		return (sconn_1->sconn_addr == sconn_2->sconn_addr);
 5058|      0|	}
 5059|      0|#endif
 5060|      0|	default:
  ------------------
  |  Branch (5060:2): [True: 0, False: 280k]
  ------------------
 5061|       |		/* we don't do these... */
 5062|      0|		return (0);
 5063|   280k|	}
 5064|   280k|}
sctp_wakeup_the_read_socket:
 5236|   496k|{
 5237|   496k|	if ((inp != NULL) &&
  ------------------
  |  Branch (5237:6): [True: 496k, False: 0]
  ------------------
 5238|   496k|	    (inp->sctp_socket != NULL) &&
  ------------------
  |  Branch (5238:6): [True: 496k, False: 0]
  ------------------
 5239|   496k|	    (((inp->sctp_flags & (SCTP_PCB_FLAGS_TCPTYPE | SCTP_PCB_FLAGS_IN_TCPPOOL)) == 0) ||
  ------------------
  |  |  529|   496k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
              	    (((inp->sctp_flags & (SCTP_PCB_FLAGS_TCPTYPE | SCTP_PCB_FLAGS_IN_TCPPOOL)) == 0) ||
  ------------------
  |  |  540|   496k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5239:7): [True: 0, False: 496k]
  ------------------
 5240|   496k|	     !SCTP_IS_LISTENING(inp))) {
  ------------------
  |  | 1152|   496k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|   496k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  ------------------
  |  Branch (5240:7): [True: 496k, False: 0]
  ------------------
 5241|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5242|       |		struct socket *so;
 5243|       |
 5244|       |		so = SCTP_INP_SO(inp);
 5245|       |		if (!so_locked) {
 5246|       |			if (stcb) {
 5247|       |				atomic_add_int(&stcb->asoc.refcnt, 1);
 5248|       |				SCTP_TCB_UNLOCK(stcb);
 5249|       |			}
 5250|       |			SCTP_SOCKET_LOCK(so, 1);
 5251|       |			if (stcb) {
 5252|       |				SCTP_TCB_LOCK(stcb);
 5253|       |				atomic_subtract_int(&stcb->asoc.refcnt, 1);
 5254|       |			}
 5255|       |			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
 5256|       |				SCTP_SOCKET_UNLOCK(so, 1);
 5257|       |				return;
 5258|       |			}
 5259|       |		}
 5260|       |#endif
 5261|   496k|		sctp_sorwakeup(inp, inp->sctp_socket);
  ------------------
  |  | 1032|   496k|#define sctp_sorwakeup(inp, so) \
  |  | 1033|   496k|do { \
  |  | 1034|   496k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|   992k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 496k]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|   496k|	} else { \
  |  | 1037|   496k|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|   496k|#define	sorwakeup(so) do {						\
  |  |  |  |  520|   496k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|   496k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|   496k|	do {                         \
  |  |  |  |  |  |  |  |  113|   496k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 496k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|   496k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 496k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|   496k|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|   496k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|   496k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|   496k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|   496k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|   496k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 496k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|   496k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 496k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|   496k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|   496k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|   496k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|   496k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|   496k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 496k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|   496k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|   496k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|   496k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|   496k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|   496k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|   496k|	else								\
  |  |  |  |  |  |  516|   496k|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  517|   496k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 496k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|   496k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 496k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|   496k|	} \
  |  | 1039|   496k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 496k]
  |  |  ------------------
  ------------------
 5262|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5263|       |		if (!so_locked) {
 5264|       |			SCTP_SOCKET_UNLOCK(so, 1);
 5265|       |		}
 5266|       |#endif
 5267|   496k|	}
 5268|   496k|}
sctp_invoke_recv_callback:
 5276|   496k|{
 5277|   496k|	uint32_t pd_point, length;
 5278|       |
 5279|   496k|	if ((inp->recv_callback == NULL) ||
  ------------------
  |  Branch (5279:6): [True: 496k, False: 0]
  ------------------
 5280|      0|	    (stcb == NULL) ||
  ------------------
  |  Branch (5280:6): [True: 0, False: 0]
  ------------------
 5281|   496k|	    (stcb->sctp_socket == NULL)) {
  ------------------
  |  Branch (5281:6): [True: 0, False: 0]
  ------------------
 5282|   496k|		return;
 5283|   496k|	}
 5284|       |
 5285|      0|	length = control->length;
 5286|      0|	if (stcb != NULL && stcb->sctp_socket != NULL) {
  ------------------
  |  Branch (5286:6): [True: 0, False: 0]
  |  Branch (5286:22): [True: 0, False: 0]
  ------------------
 5287|      0|		pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 5288|      0|			       stcb->sctp_ep->partial_delivery_point);
 5289|      0|	} else {
 5290|      0|		pd_point = inp->partial_delivery_point;
 5291|      0|	}
 5292|      0|	if ((control->end_added == 1) || (length >= pd_point)) {
  ------------------
  |  Branch (5292:6): [True: 0, False: 0]
  |  Branch (5292:35): [True: 0, False: 0]
  ------------------
 5293|      0|		struct socket *so;
 5294|      0|		struct mbuf *m;
 5295|      0|		char *buffer;
 5296|      0|		struct sctp_rcvinfo rcv;
 5297|      0|		union sctp_sockstore addr;
 5298|      0|		int flags;
 5299|       |
 5300|      0|		if ((buffer = malloc(length)) == NULL) {
  ------------------
  |  Branch (5300:7): [True: 0, False: 0]
  ------------------
 5301|      0|			return;
 5302|      0|		}
 5303|      0|		if (inp_read_lock_held == 0) {
  ------------------
  |  Branch (5303:7): [True: 0, False: 0]
  ------------------
 5304|      0|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5305|      0|		}
 5306|      0|		so = stcb->sctp_socket;
 5307|      0|		for (m = control->data; m; m = SCTP_BUF_NEXT(m)) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5307:27): [True: 0, False: 0]
  ------------------
 5308|      0|			sctp_sbfree(control, control->stcb, &so->so_rcv, m);
  ------------------
  |  |  247|      0|#define sctp_sbfree(ctl, stcb, sb, m) { \
  |  |  248|      0|	SCTP_SB_DECR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  973|      0|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|      0|{								\
  |  |  |  |  975|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|      0|{ \
  |  |  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|	} \
  |  |  |  |  |  |  124|      0|}
  |  |  |  |  ------------------
  |  |  |  |  976|      0|}
  |  |  ------------------
  |  |  249|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  250|      0|	if (((ctl)->do_not_ref_stcb == 0) && stcb) { \
  |  |  ------------------
  |  |  |  Branch (250:6): [True: 0, False: 0]
  |  |  |  Branch (250:39): [True: 0, False: 0]
  |  |  ------------------
  |  |  251|      0|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  252|      0|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  253|      0|	} \
  |  |  254|      0|}
  ------------------
 5309|      0|		}
 5310|      0|		m_copydata(control->data, 0, length, buffer);
 5311|      0|		memset(&rcv, 0, sizeof(struct sctp_rcvinfo));
 5312|      0|		rcv.rcv_sid = control->sinfo_stream;
 5313|      0|		rcv.rcv_ssn = (uint16_t)control->mid;
 5314|      0|		rcv.rcv_flags = control->sinfo_flags;
 5315|      0|		rcv.rcv_ppid = control->sinfo_ppid;
 5316|      0|		rcv.rcv_tsn = control->sinfo_tsn;
 5317|      0|		rcv.rcv_cumtsn = control->sinfo_cumtsn;
 5318|      0|		rcv.rcv_context = control->sinfo_context;
 5319|      0|		rcv.rcv_assoc_id = control->sinfo_assoc_id;
 5320|      0|		memset(&addr, 0, sizeof(union sctp_sockstore));
 5321|      0|		switch (control->whoFrom->ro._l_addr.sa.sa_family) {
 5322|      0|#ifdef INET
 5323|      0|		case AF_INET:
  ------------------
  |  Branch (5323:3): [True: 0, False: 0]
  ------------------
 5324|      0|			addr.sin = control->whoFrom->ro._l_addr.sin;
 5325|      0|			break;
 5326|      0|#endif
 5327|      0|#ifdef INET6
 5328|      0|		case AF_INET6:
  ------------------
  |  Branch (5328:3): [True: 0, False: 0]
  ------------------
 5329|      0|			addr.sin6 = control->whoFrom->ro._l_addr.sin6;
 5330|      0|			break;
 5331|      0|#endif
 5332|      0|		case AF_CONN:
  ------------------
  |  | 1014|      0|#define AF_CONN 123
  ------------------
  |  Branch (5332:3): [True: 0, False: 0]
  ------------------
 5333|      0|			addr.sconn = control->whoFrom->ro._l_addr.sconn;
 5334|      0|			break;
 5335|      0|		default:
  ------------------
  |  Branch (5335:3): [True: 0, False: 0]
  ------------------
 5336|      0|			addr.sa = control->whoFrom->ro._l_addr.sa;
 5337|      0|			break;
 5338|      0|		}
 5339|      0|		flags = 0;
 5340|      0|		if (control->end_added == 1) {
  ------------------
  |  Branch (5340:7): [True: 0, False: 0]
  ------------------
 5341|      0|			flags |= MSG_EOR;
 5342|      0|		}
 5343|      0|		if (control->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (5343:7): [True: 0, False: 0]
  ------------------
 5344|      0|			flags |= MSG_NOTIFICATION;
  ------------------
  |  |   50|      0|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
 5345|      0|		}
 5346|      0|		sctp_m_freem(control->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5347|      0|		control->data = NULL;
 5348|      0|		control->tail_mbuf = NULL;
 5349|      0|		control->length = 0;
 5350|      0|		if (control->end_added) {
  ------------------
  |  Branch (5350:7): [True: 0, False: 0]
  ------------------
 5351|      0|			TAILQ_REMOVE(&stcb->sctp_ep->read_queue, control, next);
  ------------------
  |  Branch (5351:4): [True: 0, False: 0]
  |  Branch (5351:4): [Folded, False: 0]
  ------------------
 5352|      0|			control->on_read_q = 0;
 5353|      0|			sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 5354|      0|			control->whoFrom = NULL;
 5355|      0|			sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      0|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      0|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  107|      0|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  109|      0|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      0|}
  ------------------
 5356|      0|		}
 5357|      0|		atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5358|      0|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5359|      0|		if (inp_read_lock_held == 0) {
  ------------------
  |  Branch (5359:7): [True: 0, False: 0]
  ------------------
 5360|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5361|      0|		}
 5362|      0|		inp->recv_callback(so, addr, buffer, length, rcv, flags, inp->ulp_info);
 5363|      0|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|      0|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5364|      0|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5365|      0|	}
 5366|      0|}
sctp_add_to_readq:
 5377|   496k|{
 5378|       |	/*
 5379|       |	 * Here we must place the control on the end of the socket read
 5380|       |	 * queue AND increment sb_cc so that select will work properly on
 5381|       |	 * read.
 5382|       |	 */
 5383|   496k|	struct mbuf *m, *prev = NULL;
 5384|       |
 5385|   496k|	if (inp == NULL) {
  ------------------
  |  Branch (5385:6): [True: 0, False: 496k]
  ------------------
 5386|       |		/* Gak, TSNH!! */
 5387|      0|#ifdef INVARIANTS
 5388|      0|		panic("Gak, inp NULL on add_to_readq");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 5389|      0|#endif
 5390|      0|		return;
 5391|      0|	}
 5392|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5393|       |	if (so_locked) {
 5394|       |		sctp_lock_assert(SCTP_INP_SO(inp));
 5395|       |	} else {
 5396|       |		sctp_unlock_assert(SCTP_INP_SO(inp));
 5397|       |	}
 5398|       |#endif
 5399|   496k|	if (inp_read_lock_held == SCTP_READ_LOCK_NOT_HELD) {
  ------------------
  |  |   41|   496k|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  |  Branch (5399:6): [True: 821, False: 495k]
  ------------------
 5400|    821|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|    821|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    821|	do {                         \
  |  |  |  |  113|    821|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 821]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    821|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 821]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5401|    821|	}
 5402|   496k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ) {
  ------------------
  |  |  548|   496k|#define SCTP_PCB_FLAGS_SOCKET_CANT_READ	0x40000000
  ------------------
  |  Branch (5402:6): [True: 0, False: 496k]
  ------------------
 5403|      0|		if (!control->on_strm_q) {
  ------------------
  |  Branch (5403:7): [True: 0, False: 0]
  ------------------
 5404|      0|			sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 5405|      0|			if (control->data) {
  ------------------
  |  Branch (5405:8): [True: 0, False: 0]
  ------------------
 5406|      0|				sctp_m_freem(control->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5407|      0|				control->data = NULL;
 5408|      0|			}
 5409|      0|			sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      0|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      0|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  107|      0|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  109|      0|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      0|}
  ------------------
 5410|      0|		}
 5411|      0|		if (inp_read_lock_held == SCTP_READ_LOCK_NOT_HELD) {
  ------------------
  |  |   41|      0|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  |  Branch (5411:7): [True: 0, False: 0]
  ------------------
 5412|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5413|      0|		}
 5414|      0|		return;
 5415|      0|	}
 5416|   496k|	if ((control->spec_flags & M_NOTIFICATION) == 0) {
  ------------------
  |  | 1037|   496k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   496k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (5416:6): [True: 821, False: 495k]
  ------------------
 5417|    821|		atomic_add_int(&inp->total_recvs, 1);
  ------------------
  |  |   94|    821|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5418|    821|		if (!control->do_not_ref_stcb) {
  ------------------
  |  Branch (5418:7): [True: 821, False: 0]
  ------------------
 5419|    821|			atomic_add_int(&stcb->total_recvs, 1);
  ------------------
  |  |   94|    821|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5420|    821|		}
 5421|    821|	}
 5422|   496k|	m = control->data;
 5423|   496k|	control->held_length = 0;
 5424|   496k|	control->length = 0;
 5425|   994k|	while (m != NULL) {
  ------------------
  |  Branch (5425:9): [True: 498k, False: 496k]
  ------------------
 5426|   498k|		if (SCTP_BUF_LEN(m) == 0) {
  ------------------
  |  |  801|   498k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   498k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (5426:7): [True: 151, False: 498k]
  ------------------
 5427|       |			/* Skip mbufs with NO length */
 5428|    151|			if (prev == NULL) {
  ------------------
  |  Branch (5428:8): [True: 151, False: 0]
  ------------------
 5429|       |				/* First one */
 5430|    151|				control->data = sctp_m_free(m);
  ------------------
  |  |   51|    151|#define sctp_m_free m_free
  ------------------
 5431|    151|				m = control->data;
 5432|    151|			} else {
 5433|      0|				SCTP_BUF_NEXT(prev) = sctp_m_free(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              				SCTP_BUF_NEXT(prev) = sctp_m_free(m);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
 5434|      0|				m = SCTP_BUF_NEXT(prev);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5435|      0|			}
 5436|    151|			if (m == NULL) {
  ------------------
  |  Branch (5436:8): [True: 0, False: 151]
  ------------------
 5437|      0|				control->tail_mbuf = prev;
 5438|      0|			}
 5439|    151|			continue;
 5440|    151|		}
 5441|   498k|		prev = m;
 5442|   498k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   498k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   498k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (5442:7): [True: 0, False: 498k]
  ------------------
 5443|      0|			sctp_sblog(sb, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBALLOC, SCTP_BUF_LEN(m));
  ------------------
  |  |  157|      0|#define SCTP_LOG_SBALLOC            53
  ------------------
              			sctp_sblog(sb, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBALLOC, SCTP_BUF_LEN(m));
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (5443:19): [True: 0, False: 0]
  ------------------
 5444|      0|		}
 5445|   498k|		sctp_sballoc(stcb, sb, m);
  ------------------
  |  |  256|   498k|#define sctp_sballoc(stcb, sb, m) { \
  |  |  257|   498k|	SCTP_SB_INCR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  969|   498k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|   498k|{						\
  |  |  |  |  971|   498k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|   498k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|   498k|}
  |  |  ------------------
  |  |  258|   498k|	atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|   498k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  259|   498k|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (259:6): [True: 498k, False: 0]
  |  |  ------------------
  |  |  260|   498k|		atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |   94|   498k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  261|   498k|		atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|   498k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  262|   498k|	} \
  |  |  263|   498k|}
  ------------------
 5446|   498k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   498k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   498k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (5446:7): [True: 0, False: 498k]
  ------------------
 5447|      0|			sctp_sblog(sb, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBRESULT, 0);
  ------------------
  |  |  159|      0|#define SCTP_LOG_SBRESULT           55
  ------------------
  |  Branch (5447:19): [True: 0, False: 0]
  ------------------
 5448|      0|		}
 5449|   498k|		atomic_add_int(&control->length, SCTP_BUF_LEN(m));
  ------------------
  |  |   94|   498k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5450|   498k|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|   498k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   498k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5451|   498k|	}
 5452|   496k|	if (prev != NULL) {
  ------------------
  |  Branch (5452:6): [True: 496k, False: 0]
  ------------------
 5453|   496k|		control->tail_mbuf = prev;
 5454|   496k|	} else {
 5455|       |		/* Everything got collapsed out?? */
 5456|      0|		if (!control->on_strm_q) {
  ------------------
  |  Branch (5456:7): [True: 0, False: 0]
  ------------------
 5457|      0|			sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 5458|      0|			sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      0|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      0|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  107|      0|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  109|      0|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      0|}
  ------------------
 5459|      0|		}
 5460|      0|		if (inp_read_lock_held == 0)
  ------------------
  |  Branch (5460:7): [True: 0, False: 0]
  ------------------
 5461|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5462|      0|		return;
 5463|      0|	}
 5464|   496k|	if (end) {
  ------------------
  |  Branch (5464:6): [True: 496k, False: 0]
  ------------------
 5465|   496k|		control->end_added = 1;
 5466|   496k|	}
 5467|   496k|	TAILQ_INSERT_TAIL(&inp->read_queue, control, next);
  ------------------
  |  Branch (5467:2): [Folded, False: 496k]
  ------------------
 5468|   496k|	control->on_read_q = 1;
 5469|   496k|#if defined(__Userspace__)
 5470|   496k|	sctp_invoke_recv_callback(inp, stcb, control, SCTP_READ_LOCK_HELD);
  ------------------
  |  |   40|   496k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 5471|   496k|#endif
 5472|   496k|	if ((inp != NULL) && (inp->sctp_socket != NULL)) {
  ------------------
  |  Branch (5472:6): [True: 496k, False: 0]
  |  Branch (5472:23): [True: 496k, False: 0]
  ------------------
 5473|   496k|		sctp_wakeup_the_read_socket(inp, stcb, so_locked);
 5474|   496k|	}
 5475|   496k|	if (inp_read_lock_held == SCTP_READ_LOCK_NOT_HELD) {
  ------------------
  |  |   41|   496k|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  |  Branch (5475:6): [True: 821, False: 495k]
  ------------------
 5476|    821|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|    821|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    821|	do {                         \
  |  |  |  |  113|    821|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 821]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    821|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 821]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5477|    821|	}
 5478|   496k|}
sctp_generate_cause:
 5490|  8.25k|{
 5491|  8.25k|	struct mbuf *m;
 5492|  8.25k|	struct sctp_gen_error_cause *cause;
 5493|  8.25k|	size_t info_len;
 5494|  8.25k|	uint16_t len;
 5495|       |
 5496|  8.25k|	if ((code == 0) || (info == NULL)) {
  ------------------
  |  Branch (5496:6): [True: 537, False: 7.71k]
  |  Branch (5496:21): [True: 0, False: 7.71k]
  ------------------
 5497|    537|		return (NULL);
 5498|    537|	}
 5499|  7.71k|	info_len = strlen(info);
 5500|  7.71k|	if (info_len > (SCTP_MAX_CAUSE_LENGTH - sizeof(struct sctp_paramhdr))) {
  ------------------
  |  |   74|  7.71k|#define SCTP_MAX_CAUSE_LENGTH 0xffff
  ------------------
  |  Branch (5500:6): [True: 0, False: 7.71k]
  ------------------
 5501|      0|		return (NULL);
 5502|      0|	}
 5503|  7.71k|	len = (uint16_t)(sizeof(struct sctp_paramhdr) + info_len);
 5504|  7.71k|	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  7.71k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  7.71k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5505|  7.71k|	if (m != NULL) {
  ------------------
  |  Branch (5505:6): [True: 7.71k, False: 0]
  ------------------
 5506|  7.71k|		SCTP_BUF_LEN(m) = len;
  ------------------
  |  |  801|  7.71k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.71k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5507|  7.71k|		cause = mtod(m, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|  7.71k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  7.71k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5508|  7.71k|		cause->code = htons(code);
 5509|       |		cause->length = htons(len);
 5510|  7.71k|		memcpy(cause->info, info, info_len);
 5511|  7.71k|	}
 5512|  7.71k|	return (m);
 5513|  7.71k|}
sctp_generate_no_user_data_cause:
 5517|      6|{
 5518|      6|	struct mbuf *m;
 5519|      6|	struct sctp_error_no_user_data *no_user_data_cause;
 5520|      6|	uint16_t len;
 5521|       |
 5522|      6|	len = (uint16_t)sizeof(struct sctp_error_no_user_data);
 5523|      6|	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      6|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      6|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5524|      6|	if (m != NULL) {
  ------------------
  |  Branch (5524:6): [True: 6, False: 0]
  ------------------
 5525|      6|		SCTP_BUF_LEN(m) = len;
  ------------------
  |  |  801|      6|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      6|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5526|      6|		no_user_data_cause = mtod(m, struct sctp_error_no_user_data *);
  ------------------
  |  |   96|      6|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      6|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5527|      6|		no_user_data_cause->cause.code = htons(SCTP_CAUSE_NO_USER_DATA);
 5528|      6|		no_user_data_cause->cause.length = htons(len);
 5529|       |		no_user_data_cause->tsn = htonl(tsn);
 5530|      6|	}
 5531|      6|	return (m);
 5532|      6|}
sctp_free_bufspace:
 5537|    564|{
 5538|    564|	if (tp1->data == NULL) {
  ------------------
  |  Branch (5538:6): [True: 0, False: 564]
  ------------------
 5539|      0|		return;
 5540|      0|	}
 5541|    564|	atomic_subtract_int(&asoc->chunks_on_out_queue, chk_cnt);
  ------------------
  |  |   97|    564|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5542|       |#ifdef SCTP_MBCNT_LOGGING
 5543|       |	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBCNT_LOGGING_ENABLE) {
 5544|       |		sctp_log_mbcnt(SCTP_LOG_MBCNT_DECREASE,
 5545|       |		               asoc->total_output_queue_size,
 5546|       |		               tp1->book_size,
 5547|       |		               0,
 5548|       |		               tp1->mbcnt);
 5549|       |	}
 5550|       |#endif
 5551|    564|	if (asoc->total_output_queue_size >= tp1->book_size) {
  ------------------
  |  Branch (5551:6): [True: 564, False: 0]
  ------------------
 5552|    564|		atomic_subtract_int(&asoc->total_output_queue_size, tp1->book_size);
  ------------------
  |  |   97|    564|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5553|    564|	} else {
 5554|      0|		asoc->total_output_queue_size = 0;
 5555|      0|	}
 5556|    564|	if ((stcb->sctp_socket != NULL) &&
  ------------------
  |  Branch (5556:6): [True: 564, False: 0]
  ------------------
 5557|    564|	    (((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) ||
  ------------------
  |  |  540|    564|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5557:7): [True: 0, False: 564]
  ------------------
 5558|    564|	     ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)))) {
  ------------------
  |  |  529|    564|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5558:7): [True: 564, False: 0]
  ------------------
 5559|    564|		SCTP_SB_DECR(&stcb->sctp_socket->so_snd, tp1->book_size);
  ------------------
  |  |  973|    564|#define SCTP_SB_DECR(sb, decr)					\
  |  |  974|    564|{								\
  |  |  975|    564|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  ------------------
  |  |  |  |  117|    564|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|    564|{ \
  |  |  |  |  119|    564|	int32_t oldval; \
  |  |  |  |  120|    564|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    564|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|    564|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 564]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|    564|}
  |  |  ------------------
  |  |  976|    564|}
  ------------------
 5560|    564|	}
 5561|    564|}
sctp_get_ifa_hash_val:
 5865|  60.9k|{
 5866|  60.9k|	switch (addr->sa_family) {
 5867|      0|#ifdef INET
 5868|  36.3k|	case AF_INET:
  ------------------
  |  Branch (5868:2): [True: 36.3k, False: 24.5k]
  ------------------
 5869|  36.3k|	{
 5870|  36.3k|		struct sockaddr_in *sin;
 5871|       |
 5872|  36.3k|		sin = (struct sockaddr_in *)addr;
 5873|  36.3k|		return (sin->sin_addr.s_addr ^ (sin->sin_addr.s_addr >> 16));
 5874|      0|	}
 5875|      0|#endif
 5876|      0|#ifdef INET6
 5877|  4.23k|	case AF_INET6:
  ------------------
  |  Branch (5877:2): [True: 4.23k, False: 56.6k]
  ------------------
 5878|  4.23k|	{
 5879|  4.23k|		struct sockaddr_in6 *sin6;
 5880|  4.23k|		uint32_t hash_of_addr;
 5881|       |
 5882|  4.23k|		sin6 = (struct sockaddr_in6 *)addr;
 5883|  4.23k|#if !defined(_WIN32) && !(defined(__FreeBSD__) && defined(__Userspace__)) && !defined(__APPLE__)
 5884|  4.23k|		hash_of_addr = (sin6->sin6_addr.s6_addr32[0] +
 5885|  4.23k|				sin6->sin6_addr.s6_addr32[1] +
 5886|  4.23k|				sin6->sin6_addr.s6_addr32[2] +
 5887|  4.23k|				sin6->sin6_addr.s6_addr32[3]);
 5888|       |#else
 5889|       |		hash_of_addr = (((uint32_t *)&sin6->sin6_addr)[0] +
 5890|       |				((uint32_t *)&sin6->sin6_addr)[1] +
 5891|       |				((uint32_t *)&sin6->sin6_addr)[2] +
 5892|       |				((uint32_t *)&sin6->sin6_addr)[3]);
 5893|       |#endif
 5894|  4.23k|		hash_of_addr = (hash_of_addr ^ (hash_of_addr >> 16));
 5895|  4.23k|		return (hash_of_addr);
 5896|      0|	}
 5897|      0|#endif
 5898|      0|#if defined(__Userspace__)
 5899|  20.3k|	case AF_CONN:
  ------------------
  |  | 1014|  20.3k|#define AF_CONN 123
  ------------------
  |  Branch (5899:2): [True: 20.3k, False: 40.5k]
  ------------------
 5900|  20.3k|	{
 5901|  20.3k|		struct sockaddr_conn *sconn;
 5902|  20.3k|		uintptr_t temp;
 5903|       |
 5904|  20.3k|		sconn = (struct sockaddr_conn *)addr;
 5905|  20.3k|		temp = (uintptr_t)sconn->sconn_addr;
 5906|  20.3k|		return ((uint32_t)(temp ^ (temp >> 16)));
 5907|      0|	}
 5908|      0|#endif
 5909|      0|	default:
  ------------------
  |  Branch (5909:2): [True: 0, False: 60.9k]
  ------------------
 5910|      0|		break;
 5911|  60.9k|	}
 5912|      0|	return (0);
 5913|  60.9k|}
sctp_find_ifa_by_addr:
 5917|  60.9k|{
 5918|  60.9k|	struct sctp_ifa *sctp_ifap;
 5919|  60.9k|	struct sctp_vrf *vrf;
 5920|  60.9k|	struct sctp_ifalist *hash_head;
 5921|  60.9k|	uint32_t hash_of_addr;
 5922|       |
 5923|  60.9k|	if (holds_lock == 0) {
  ------------------
  |  Branch (5923:6): [True: 60.9k, False: 3]
  ------------------
 5924|  60.9k|		SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  60.9k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  60.9k|	do {                         \
  |  |  |  |  113|  60.9k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 60.9k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  60.9k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 60.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5925|  60.9k|	} else {
 5926|      3|		SCTP_IPI_ADDR_LOCK_ASSERT();
 5927|      3|	}
 5928|       |
 5929|  60.9k|	vrf = sctp_find_vrf(vrf_id);
 5930|  60.9k|	if (vrf == NULL) {
  ------------------
  |  Branch (5930:6): [True: 0, False: 60.9k]
  ------------------
 5931|      0|		if (holds_lock == 0)
  ------------------
  |  Branch (5931:7): [True: 0, False: 0]
  ------------------
 5932|      0|			SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5933|      0|		return (NULL);
 5934|      0|	}
 5935|       |
 5936|  60.9k|	hash_of_addr = sctp_get_ifa_hash_val(addr);
 5937|       |
 5938|  60.9k|	hash_head = &vrf->vrf_addr_hash[(hash_of_addr & vrf->vrf_addr_hashmark)];
 5939|  60.9k|	if (hash_head == NULL) {
  ------------------
  |  Branch (5939:6): [True: 0, False: 60.9k]
  ------------------
 5940|      0|		SCTP_PRINTF("hash_of_addr:%x mask:%x table:%x - ",
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 5941|      0|			    hash_of_addr, (uint32_t)vrf->vrf_addr_hashmark,
 5942|      0|			    (uint32_t)(hash_of_addr & vrf->vrf_addr_hashmark));
 5943|      0|		sctp_print_address(addr);
 5944|      0|		SCTP_PRINTF("No such bucket for address\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 5945|      0|		if (holds_lock == 0)
  ------------------
  |  Branch (5945:7): [True: 0, False: 0]
  ------------------
 5946|      0|			SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|      0|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5947|       |
 5948|      0|		return (NULL);
 5949|      0|	}
 5950|  60.9k|	LIST_FOREACH(sctp_ifap, hash_head, next_bucket) {
  ------------------
  |  Branch (5950:2): [True: 33.0k, False: 40.5k]
  ------------------
 5951|  33.0k|		if (addr->sa_family != sctp_ifap->address.sa.sa_family)
  ------------------
  |  Branch (5951:7): [True: 6.49k, False: 26.5k]
  ------------------
 5952|  6.49k|			continue;
 5953|  26.5k|#ifdef INET
 5954|  26.5k|		if (addr->sa_family == AF_INET) {
  ------------------
  |  Branch (5954:7): [True: 6.18k, False: 20.3k]
  ------------------
 5955|  6.18k|			if (((struct sockaddr_in *)addr)->sin_addr.s_addr ==
  ------------------
  |  Branch (5955:8): [True: 0, False: 6.18k]
  ------------------
 5956|  6.18k|			    sctp_ifap->address.sin.sin_addr.s_addr) {
 5957|       |				/* found him. */
 5958|      0|				break;
 5959|      0|			}
 5960|  6.18k|		}
 5961|  26.5k|#endif
 5962|  26.5k|#ifdef INET6
 5963|  26.5k|		if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (5963:7): [True: 0, False: 26.5k]
  ------------------
 5964|      0|			if (SCTP6_ARE_ADDR_EQUAL((struct sockaddr_in6 *)addr,
  ------------------
  |  Branch (5964:8): [True: 0, False: 0]
  ------------------
 5965|      0|						 &sctp_ifap->address.sin6)) {
 5966|       |				/* found him. */
 5967|      0|				break;
 5968|      0|			}
 5969|      0|		}
 5970|  26.5k|#endif
 5971|  26.5k|#if defined(__Userspace__)
 5972|  26.5k|		if (addr->sa_family == AF_CONN) {
  ------------------
  |  | 1014|  26.5k|#define AF_CONN 123
  ------------------
  |  Branch (5972:7): [True: 20.3k, False: 6.18k]
  ------------------
 5973|  20.3k|			if (((struct sockaddr_conn *)addr)->sconn_addr == sctp_ifap->address.sconn.sconn_addr) {
  ------------------
  |  Branch (5973:8): [True: 20.3k, False: 0]
  ------------------
 5974|       |				/* found him. */
 5975|  20.3k|				break;
 5976|  20.3k|			}
 5977|  20.3k|		}
 5978|  26.5k|#endif
 5979|  26.5k|	}
 5980|  60.9k|	if (holds_lock == 0)
  ------------------
  |  Branch (5980:6): [True: 60.9k, False: 3]
  ------------------
 5981|  60.9k|		SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  60.9k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  60.9k|	do {                         \
  |  |  |  |  113|  60.9k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 60.9k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  60.9k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 60.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5982|  60.9k|	return (sctp_ifap);
 5983|  60.9k|}
sctp_sorecvmsg:
 6086|   499k|{
 6087|       |	/*
 6088|       |	 * MSG flags we will look at MSG_DONTWAIT - non-blocking IO.
 6089|       |	 * MSG_PEEK - Look don't touch :-D (only valid with OUT mbuf copy
 6090|       |	 * mp=NULL thus uio is the copy method to userland) MSG_WAITALL - ??
 6091|       |	 * On the way out we may send out any combination of:
 6092|       |	 * MSG_NOTIFICATION MSG_EOR
 6093|       |	 *
 6094|       |	 */
 6095|   499k|	struct sctp_inpcb *inp = NULL;
 6096|   499k|	ssize_t my_len = 0;
 6097|   499k|	ssize_t cp_len = 0;
 6098|   499k|	int error = 0;
 6099|   499k|	struct sctp_queued_to_read *control = NULL, *ctl = NULL, *nxt = NULL;
 6100|   499k|	struct mbuf *m = NULL;
 6101|   499k|	struct sctp_tcb *stcb = NULL;
 6102|   499k|	int wakeup_read_socket = 0;
 6103|   499k|	int freecnt_applied = 0;
 6104|   499k|	int out_flags = 0, in_flags = 0;
 6105|   499k|	int block_allowed = 1;
 6106|   499k|	uint32_t freed_so_far = 0;
 6107|   499k|	ssize_t copied_so_far = 0;
 6108|   499k|	int in_eeor_mode = 0;
 6109|   499k|	int no_rcv_needed = 0;
 6110|   499k|	uint32_t rwnd_req = 0;
 6111|   499k|	int hold_sblock = 0;
 6112|   499k|	int hold_rlock = 0;
 6113|   499k|	ssize_t slen = 0;
 6114|   499k|	uint32_t held_length = 0;
 6115|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6116|       |	int sockbuf_lock = 0;
 6117|       |#endif
 6118|       |
 6119|   499k|	if (uio == NULL) {
  ------------------
  |  Branch (6119:6): [True: 0, False: 499k]
  ------------------
 6120|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL);
 6121|      0|		return (EINVAL);
 6122|      0|	}
 6123|       |
 6124|   499k|	if (msg_flags) {
  ------------------
  |  Branch (6124:6): [True: 499k, False: 0]
  ------------------
 6125|   499k|		in_flags = *msg_flags;
 6126|   499k|		if (in_flags & MSG_PEEK)
  ------------------
  |  Branch (6126:7): [True: 0, False: 499k]
  ------------------
 6127|   499k|			SCTP_STAT_INCR(sctps_read_peeks);
  ------------------
  |  | 1112|   499k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6128|   499k|	} else {
 6129|      0|		in_flags = 0;
 6130|      0|	}
 6131|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6132|       |#if defined(APPLE_LEOPARD)
 6133|       |	slen = uio->uio_resid;
 6134|       |#else
 6135|       |	slen = uio_resid(uio);
 6136|       |#endif
 6137|       |#else
 6138|   499k|	slen = uio->uio_resid;
 6139|   499k|#endif
 6140|       |
 6141|       |	/* Pull in and set up our int flags */
 6142|   499k|	if (in_flags & MSG_OOB) {
  ------------------
  |  Branch (6142:6): [True: 0, False: 499k]
  ------------------
 6143|       |		/* Out of band's NOT supported */
 6144|      0|		return (EOPNOTSUPP);
 6145|      0|	}
 6146|   499k|	if ((in_flags & MSG_PEEK) && (mp != NULL)) {
  ------------------
  |  Branch (6146:6): [True: 0, False: 499k]
  |  Branch (6146:31): [True: 0, False: 0]
  ------------------
 6147|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL);
 6148|      0|		return (EINVAL);
 6149|      0|	}
 6150|   499k|	if ((in_flags & (MSG_DONTWAIT
  ------------------
  |  Branch (6150:6): [True: 0, False: 499k]
  ------------------
 6151|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6152|       |			 | MSG_NBIO
 6153|       |#endif
 6154|   499k|		     )) ||
 6155|   499k|	    SCTP_SO_IS_NBIO(so)) {
  ------------------
  |  |  956|   499k|#define SCTP_SO_IS_NBIO(so)	((so)->so_state & SS_NBIO)
  |  |  ------------------
  |  |  |  |  343|   499k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  |  |  ------------------
  |  |  |  Branch (956:29): [True: 499k, False: 0]
  |  |  ------------------
  ------------------
 6156|   499k|		block_allowed = 0;
 6157|   499k|	}
 6158|       |	/* setup the endpoint */
 6159|   499k|	inp = (struct sctp_inpcb *)so->so_pcb;
 6160|   499k|	if (inp == NULL) {
  ------------------
  |  Branch (6160:6): [True: 0, False: 499k]
  ------------------
 6161|      0|		SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTPUTIL, EFAULT);
 6162|      0|		return (EFAULT);
 6163|      0|	}
 6164|   499k|	rwnd_req = (SCTP_SB_LIMIT_RCV(so) >> SCTP_RWND_HIWAT_SHIFT);
  ------------------
  |  |  983|   499k|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
              	rwnd_req = (SCTP_SB_LIMIT_RCV(so) >> SCTP_RWND_HIWAT_SHIFT);
  ------------------
  |  |  282|   499k|#define SCTP_RWND_HIWAT_SHIFT 3
  ------------------
 6165|       |	/* Must be at least a MTU's worth */
 6166|   499k|	if (rwnd_req < SCTP_MIN_RWND)
  ------------------
  |  |  687|   499k|#define SCTP_MIN_RWND	1500
  ------------------
  |  Branch (6166:6): [True: 0, False: 499k]
  ------------------
 6167|      0|		rwnd_req = SCTP_MIN_RWND;
  ------------------
  |  |  687|      0|#define SCTP_MIN_RWND	1500
  ------------------
 6168|   499k|	in_eeor_mode = sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR);
  ------------------
  |  |   52|   499k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
 6169|   499k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|   499k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  653|   499k|#define SCTP_RECV_RWND_LOGGING_ENABLE			0x00001000
  ------------------
  |  Branch (6169:6): [True: 0, False: 499k]
  ------------------
 6170|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6171|       |#if defined(APPLE_LEOPARD)
 6172|       |		sctp_misc_ints(SCTP_SORECV_ENTER,
 6173|       |		               rwnd_req, in_eeor_mode, SCTP_SBAVAIL(&so->so_rcv), uio->uio_resid);
 6174|       |#else
 6175|       |		sctp_misc_ints(SCTP_SORECV_ENTER,
 6176|       |		               rwnd_req, in_eeor_mode, SCTP_SBAVAIL(&so->so_rcv), uio_resid(uio));
 6177|       |#endif
 6178|       |#else
 6179|      0|		sctp_misc_ints(SCTP_SORECV_ENTER,
  ------------------
  |  |  192|      0|#define SCTP_SORECV_ENTER           88
  ------------------
 6180|      0|		               rwnd_req, in_eeor_mode, SCTP_SBAVAIL(&so->so_rcv), (uint32_t)uio->uio_resid);
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 6181|      0|#endif
 6182|      0|	}
 6183|   499k|#if defined(__Userspace__)
 6184|   499k|	SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|   499k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   499k|	do {                         \
  |  |  |  |  113|   499k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 499k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   499k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 499k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6185|   499k|	hold_sblock = 1;
 6186|   499k|#endif
 6187|   499k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|   499k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  653|   499k|#define SCTP_RECV_RWND_LOGGING_ENABLE			0x00001000
  ------------------
  |  Branch (6187:6): [True: 0, False: 499k]
  ------------------
 6188|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6189|       |#if defined(APPLE_LEOPARD)
 6190|       |		sctp_misc_ints(SCTP_SORECV_ENTERPL,
 6191|       |		               rwnd_req, block_allowed, SCTP_SBAVAIL(&so->so_rcv), uio->uio_resid);
 6192|       |#else
 6193|       |		sctp_misc_ints(SCTP_SORECV_ENTERPL,
 6194|       |		               rwnd_req, block_allowed, SCTP_SBAVAIL(&so->so_rcv), uio_resid(uio));
 6195|       |#endif
 6196|       |#else
 6197|      0|		sctp_misc_ints(SCTP_SORECV_ENTERPL,
  ------------------
  |  |  193|      0|#define SCTP_SORECV_ENTERPL         89
  ------------------
 6198|      0|		               rwnd_req, block_allowed, SCTP_SBAVAIL(&so->so_rcv), (uint32_t)uio->uio_resid);
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 6199|      0|#endif
 6200|      0|	}
 6201|       |
 6202|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6203|       |	error = sblock(&so->so_rcv, SBLOCKWAIT(in_flags));
 6204|       |#endif
 6205|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6206|       |	error = SOCK_IO_RECV_LOCK(so, SBLOCKWAIT(in_flags));
 6207|       |#endif
 6208|   499k|	if (error) {
  ------------------
  |  Branch (6208:6): [True: 0, False: 499k]
  ------------------
 6209|      0|		goto release_unlocked;
 6210|      0|	}
 6211|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6212|       |	sockbuf_lock = 1;
 6213|       |#endif
 6214|   499k| restart:
 6215|   499k|#if defined(__Userspace__)
 6216|   499k|	if (hold_sblock == 0) {
  ------------------
  |  Branch (6216:6): [True: 0, False: 499k]
  ------------------
 6217|      0|		SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6218|      0|		hold_sblock = 1;
 6219|      0|	}
 6220|   499k|#endif
 6221|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6222|       |	sbunlock(&so->so_rcv, 1);
 6223|       |#endif
 6224|       |
 6225|   499k| restart_nosblocks:
 6226|   499k|	if (hold_sblock == 0) {
  ------------------
  |  Branch (6226:6): [True: 0, False: 499k]
  ------------------
 6227|      0|		SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6228|      0|		hold_sblock = 1;
 6229|      0|	}
 6230|   499k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|   499k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6230:6): [True: 0, False: 499k]
  ------------------
 6231|   499k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|   499k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (6231:6): [True: 0, False: 499k]
  ------------------
 6232|      0|		goto out;
 6233|      0|	}
 6234|       |#if (defined(__FreeBSD__) || defined(_WIN32)) && !defined(__Userspace__)
 6235|       |	if ((so->so_rcv.sb_state & SBS_CANTRCVMORE) && SCTP_SBAVAIL(&so->so_rcv) == 0) {
 6236|       |#else
 6237|   499k|	if ((so->so_state & SS_CANTRCVMORE) && SCTP_SBAVAIL(&so->so_rcv) == 0) {
  ------------------
  |  |   54|   499k|#define SS_CANTRCVMORE 0x020
  ------------------
              	if ((so->so_state & SS_CANTRCVMORE) && SCTP_SBAVAIL(&so->so_rcv) == 0) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6237:6): [True: 0, False: 499k]
  |  Branch (6237:41): [True: 0, False: 0]
  ------------------
 6238|      0|#endif
 6239|      0|		if (so->so_error) {
  ------------------
  |  Branch (6239:7): [True: 0, False: 0]
  ------------------
 6240|      0|			error = so->so_error;
 6241|      0|			if ((in_flags & MSG_PEEK) == 0)
  ------------------
  |  Branch (6241:8): [True: 0, False: 0]
  ------------------
 6242|      0|				so->so_error = 0;
 6243|      0|			goto out;
 6244|      0|		} else {
 6245|      0|			if (SCTP_SBAVAIL(&so->so_rcv) == 0) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6245:8): [True: 0, False: 0]
  ------------------
 6246|       |				/* indicate EOF */
 6247|      0|				error = 0;
 6248|      0|				goto out;
 6249|      0|			}
 6250|      0|		}
 6251|      0|	}
 6252|   499k|	if (SCTP_SBAVAIL(&so->so_rcv) <= held_length) {
  ------------------
  |  |  968|   499k|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6252:6): [True: 1.66k, False: 497k]
  ------------------
 6253|  1.66k|		if (so->so_error) {
  ------------------
  |  Branch (6253:7): [True: 1.66k, False: 2]
  ------------------
 6254|  1.66k|			error = so->so_error;
 6255|  1.66k|			if ((in_flags & MSG_PEEK) == 0) {
  ------------------
  |  Branch (6255:8): [True: 1.66k, False: 0]
  ------------------
 6256|  1.66k|				so->so_error = 0;
 6257|  1.66k|			}
 6258|  1.66k|			goto out;
 6259|  1.66k|		}
 6260|      2|		if ((SCTP_SBAVAIL(&so->so_rcv) == 0) &&
  ------------------
  |  |  968|      2|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6260:7): [True: 2, False: 0]
  ------------------
 6261|      2|		    ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      2|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (6261:8): [True: 2, False: 0]
  ------------------
 6262|      2|		     (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL))) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (6262:8): [True: 0, False: 0]
  ------------------
 6263|      2|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) == 0) {
  ------------------
  |  |  539|      2|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (6263:8): [True: 2, False: 0]
  ------------------
 6264|       |				/* For active open side clear flags for re-use
 6265|       |				 * passive open is blocked by connect.
 6266|       |				 */
 6267|      2|				if (inp->sctp_flags & SCTP_PCB_FLAGS_WAS_ABORTED) {
  ------------------
  |  |  536|      2|#define SCTP_PCB_FLAGS_WAS_ABORTED      0x00100000
  ------------------
  |  Branch (6267:9): [True: 0, False: 2]
  ------------------
 6268|       |					/* You were aborted, passive side always hits here */
 6269|      0|					SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ECONNRESET);
 6270|      0|					error = ECONNRESET;
 6271|      0|				}
 6272|      2|				so->so_state &= ~(SS_ISCONNECTING |
  ------------------
  |  |  341|      2|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
 6273|      2|						  SS_ISDISCONNECTING |
  ------------------
  |  |  342|      2|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
 6274|      2|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 6275|      2|						  SS_ISCONFIRMING |
  ------------------
  |  |  345|      2|#define	SS_ISCONFIRMING		0x0400	/* deciding to accept connection req */
  ------------------
 6276|      2|#endif
 6277|      2|						  SS_ISCONNECTED);
  ------------------
  |  |  340|      2|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
 6278|      2|				if (error == 0) {
  ------------------
  |  Branch (6278:9): [True: 2, False: 0]
  ------------------
 6279|      2|					if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) == 0) {
  ------------------
  |  |  535|      2|#define SCTP_PCB_FLAGS_WAS_CONNECTED    0x00080000
  ------------------
  |  Branch (6279:10): [True: 0, False: 2]
  ------------------
 6280|      0|						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ENOTCONN);
 6281|      0|						error = ENOTCONN;
 6282|      0|					}
 6283|      2|				}
 6284|      2|				goto out;
 6285|      2|			}
 6286|      2|		}
 6287|      0|		if (block_allowed) {
  ------------------
  |  Branch (6287:7): [True: 0, False: 0]
  ------------------
 6288|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6289|       |			error = sbwait(so, SO_RCV);
 6290|       |#else
 6291|      0|			error = sbwait(&so->so_rcv);
 6292|      0|#endif
 6293|      0|			if (error) {
  ------------------
  |  Branch (6293:8): [True: 0, False: 0]
  ------------------
 6294|      0|				goto out;
 6295|      0|			}
 6296|      0|			held_length = 0;
 6297|      0|			goto restart_nosblocks;
 6298|      0|		} else {
 6299|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EWOULDBLOCK);
 6300|      0|			error = EWOULDBLOCK;
 6301|      0|			goto out;
 6302|      0|		}
 6303|      0|	}
 6304|   497k|	if (hold_sblock == 1) {
  ------------------
  |  Branch (6304:6): [True: 497k, False: 0]
  ------------------
 6305|   497k|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|   497k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   497k|	do {                         \
  |  |  |  |  113|   497k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 497k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   497k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 497k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6306|   497k|		hold_sblock = 0;
 6307|   497k|	}
 6308|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6309|       |	error = sblock(&so->so_rcv, SBLOCKWAIT(in_flags));
 6310|       |#endif
 6311|       |	/* we possibly have data we can read */
 6312|       |	/*sa_ignore FREED_MEMORY*/
 6313|   497k|	control = TAILQ_FIRST(&inp->read_queue);
 6314|   497k|	if (control == NULL) {
  ------------------
  |  Branch (6314:6): [True: 0, False: 497k]
  ------------------
 6315|       |		/* This could be happening since
 6316|       |		 * the appender did the increment but as not
 6317|       |		 * yet did the tailq insert onto the read_queue
 6318|       |		 */
 6319|      0|		if (hold_rlock == 0) {
  ------------------
  |  Branch (6319:7): [True: 0, False: 0]
  ------------------
 6320|      0|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6321|      0|		}
 6322|      0|		control = TAILQ_FIRST(&inp->read_queue);
 6323|      0|		if ((control == NULL) && (SCTP_SBAVAIL(&so->so_rcv) > 0)) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6323:7): [True: 0, False: 0]
  |  Branch (6323:28): [True: 0, False: 0]
  ------------------
 6324|      0|#ifdef INVARIANTS
 6325|      0|			panic("Huh, its non zero and nothing on control?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6326|      0|#endif
 6327|      0|			SCTP_SB_CLEAR(so->so_rcv);
  ------------------
  |  |  979|      0|	(sb).sb_cc = 0;		\
  |  |  980|      0|	(sb).sb_mb = NULL;	\
  |  |  981|      0|	(sb).sb_mbcnt = 0;
  ------------------
 6328|      0|		}
 6329|      0|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6330|      0|		hold_rlock = 0;
 6331|      0|		goto restart;
 6332|      0|	}
 6333|       |
 6334|   497k|	if ((control->length == 0) &&
  ------------------
  |  Branch (6334:6): [True: 0, False: 497k]
  ------------------
 6335|      0|	    (control->do_not_ref_stcb)) {
  ------------------
  |  Branch (6335:6): [True: 0, False: 0]
  ------------------
 6336|       |		/* Clean up code for freeing assoc that left behind a pdapi..
 6337|       |		 * maybe a peer in EEOR that just closed after sending and
 6338|       |		 * never indicated a EOR.
 6339|       |		 */
 6340|      0|		if (hold_rlock == 0) {
  ------------------
  |  Branch (6340:7): [True: 0, False: 0]
  ------------------
 6341|      0|			hold_rlock = 1;
 6342|      0|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6343|      0|		}
 6344|      0|		control->held_length = 0;
 6345|      0|		if (control->data) {
  ------------------
  |  Branch (6345:7): [True: 0, False: 0]
  ------------------
 6346|       |			/* Hmm there is data here .. fix */
 6347|      0|			struct mbuf *m_tmp;
 6348|      0|			int cnt = 0;
 6349|      0|			m_tmp = control->data;
 6350|      0|			while (m_tmp) {
  ------------------
  |  Branch (6350:11): [True: 0, False: 0]
  ------------------
 6351|      0|				cnt += SCTP_BUF_LEN(m_tmp);
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 6352|      0|				if (SCTP_BUF_NEXT(m_tmp) == NULL) {
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (6352:9): [True: 0, False: 0]
  ------------------
 6353|      0|					control->tail_mbuf = m_tmp;
 6354|      0|					control->end_added = 1;
 6355|      0|				}
 6356|      0|				m_tmp = SCTP_BUF_NEXT(m_tmp);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 6357|      0|			}
 6358|      0|			control->length = cnt;
 6359|      0|		} else {
 6360|       |			/* remove it */
 6361|      0|			TAILQ_REMOVE(&inp->read_queue, control, next);
  ------------------
  |  Branch (6361:4): [True: 0, False: 0]
  |  Branch (6361:4): [Folded, False: 0]
  ------------------
 6362|       |			/* Add back any hidden data */
 6363|      0|			sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 6364|      0|			sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      0|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      0|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  107|      0|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  109|      0|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      0|}
  ------------------
 6365|      0|		}
 6366|      0|		if (hold_rlock) {
  ------------------
  |  Branch (6366:7): [True: 0, False: 0]
  ------------------
 6367|      0|			hold_rlock = 0;
 6368|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6369|      0|		}
 6370|      0|		goto restart;
 6371|      0|	}
 6372|   497k|	if ((control->length == 0) &&
  ------------------
  |  Branch (6372:6): [True: 0, False: 497k]
  ------------------
 6373|      0|	    (control->end_added == 1)) {
  ------------------
  |  Branch (6373:6): [True: 0, False: 0]
  ------------------
 6374|       |		/* Do we also need to check for (control->pdapi_aborted == 1)? */
 6375|      0|		if (hold_rlock == 0) {
  ------------------
  |  Branch (6375:7): [True: 0, False: 0]
  ------------------
 6376|      0|			hold_rlock = 1;
 6377|      0|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6378|      0|		}
 6379|      0|		TAILQ_REMOVE(&inp->read_queue, control, next);
  ------------------
  |  Branch (6379:3): [True: 0, False: 0]
  |  Branch (6379:3): [Folded, False: 0]
  ------------------
 6380|      0|		if (control->data) {
  ------------------
  |  Branch (6380:7): [True: 0, False: 0]
  ------------------
 6381|      0|#ifdef INVARIANTS
 6382|      0|			panic("control->data not null but control->length == 0");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6383|       |#else
 6384|       |			SCTP_PRINTF("Strange, data left in the control buffer. Cleaning up.\n");
 6385|       |			sctp_m_freem(control->data);
 6386|       |			control->data = NULL;
 6387|       |#endif
 6388|      0|		}
 6389|      0|		if (control->aux_data) {
  ------------------
  |  Branch (6389:7): [True: 0, False: 0]
  ------------------
 6390|      0|			sctp_m_free (control->aux_data);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
 6391|      0|			control->aux_data = NULL;
 6392|      0|		}
 6393|      0|#ifdef INVARIANTS
 6394|      0|		if (control->on_strm_q) {
  ------------------
  |  Branch (6394:7): [True: 0, False: 0]
  ------------------
 6395|      0|			panic("About to free ctl:%p so:%p and its in %d",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6396|      0|			      control, so, control->on_strm_q);
 6397|      0|		}
 6398|      0|#endif
 6399|      0|		sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      0|#define sctp_free_remote_addr(__net) { \
  |  |  229|      0|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  230|      0|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      0|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|      0|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  232|      0|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|      0|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|      0|		RT_LOCK(_rt);					\
  |  |  |  |  128|      0|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|      0|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|      0|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|      0|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|      0|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|      0|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|      0|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|      0|		_rt = NULL;					\
  |  |  |  |  |  |  125|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|      0|				(__net)->ro.ro_rt = NULL; \
  |  |  234|      0|			} \
  |  |  235|      0|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 0]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|      0|			(__net)->src_addr_selected = 0; \
  |  |  240|      0|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|      0|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|      0|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  242|      0|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|      0|		} \
  |  |  244|      0|	} \
  |  |  245|      0|}
  ------------------
 6400|      0|		sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      0|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      0|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  107|      0|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|      0|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      0|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      0|	free(element);  \
  |  |  |  |  709|      0|}
  |  |  ------------------
  |  |  109|      0|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      0|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      0|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      0|}
  ------------------
 6401|      0|		if (hold_rlock) {
  ------------------
  |  Branch (6401:7): [True: 0, False: 0]
  ------------------
 6402|      0|			hold_rlock = 0;
 6403|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6404|      0|		}
 6405|      0|		goto restart;
 6406|      0|	}
 6407|   497k|	if (control->length == 0) {
  ------------------
  |  Branch (6407:6): [True: 0, False: 497k]
  ------------------
 6408|      0|		if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE)) &&
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (6408:7): [True: 0, False: 0]
  ------------------
 6409|      0|		    (filling_sinfo)) {
  ------------------
  |  Branch (6409:7): [True: 0, False: 0]
  ------------------
 6410|       |			/* find a more suitable one then this */
 6411|      0|			ctl = TAILQ_NEXT(control, next);
 6412|      0|			while (ctl) {
  ------------------
  |  Branch (6412:11): [True: 0, False: 0]
  ------------------
 6413|      0|				if ((ctl->stcb != control->stcb) && (ctl->length) &&
  ------------------
  |  Branch (6413:9): [True: 0, False: 0]
  |  Branch (6413:41): [True: 0, False: 0]
  ------------------
 6414|      0|				    (ctl->some_taken ||
  ------------------
  |  Branch (6414:10): [True: 0, False: 0]
  ------------------
 6415|      0|				     (ctl->spec_flags & M_NOTIFICATION) ||
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6415:10): [True: 0, False: 0]
  ------------------
 6416|      0|				     ((ctl->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6416:11): [True: 0, False: 0]
  ------------------
 6417|      0|				      (ctl->stcb->asoc.strmin[ctl->sinfo_stream].delivery_started == 0)))
  ------------------
  |  Branch (6417:11): [True: 0, False: 0]
  ------------------
 6418|      0|					) {
 6419|       |					/*-
 6420|       |					 * If we have a different TCB next, and there is data
 6421|       |					 * present. If we have already taken some (pdapi), OR we can
 6422|       |					 * ref the tcb and no delivery as started on this stream, we
 6423|       |					 * take it. Note we allow a notification on a different
 6424|       |					 * assoc to be delivered..
 6425|       |					 */
 6426|      0|					control = ctl;
 6427|      0|					goto found_one;
 6428|      0|				} else if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS)) &&
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (6428:16): [True: 0, False: 0]
  ------------------
 6429|      0|					   (ctl->length) &&
  ------------------
  |  Branch (6429:9): [True: 0, False: 0]
  ------------------
 6430|      0|					   ((ctl->some_taken) ||
  ------------------
  |  Branch (6430:10): [True: 0, False: 0]
  ------------------
 6431|      0|					    ((ctl->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6431:11): [True: 0, False: 0]
  ------------------
 6432|      0|					     ((ctl->spec_flags & M_NOTIFICATION) == 0) &&
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6432:11): [True: 0, False: 0]
  ------------------
 6433|      0|					     (ctl->stcb->asoc.strmin[ctl->sinfo_stream].delivery_started == 0)))) {
  ------------------
  |  Branch (6433:11): [True: 0, False: 0]
  ------------------
 6434|       |					/*-
 6435|       |					 * If we have the same tcb, and there is data present, and we
 6436|       |					 * have the strm interleave feature present. Then if we have
 6437|       |					 * taken some (pdapi) or we can refer to tht tcb AND we have
 6438|       |					 * not started a delivery for this stream, we can take it.
 6439|       |					 * Note we do NOT allow a notification on the same assoc to
 6440|       |					 * be delivered.
 6441|       |					 */
 6442|      0|					control = ctl;
 6443|      0|					goto found_one;
 6444|      0|				}
 6445|      0|				ctl = TAILQ_NEXT(ctl, next);
 6446|      0|			}
 6447|      0|		}
 6448|       |		/*
 6449|       |		 * if we reach here, not suitable replacement is available
 6450|       |		 * <or> fragment interleave is NOT on. So stuff the sb_cc
 6451|       |		 * into the our held count, and its time to sleep again.
 6452|       |		 */
 6453|      0|		held_length = SCTP_SBAVAIL(&so->so_rcv);
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 6454|      0|		control->held_length = SCTP_SBAVAIL(&so->so_rcv);
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 6455|      0|		goto restart;
 6456|      0|	}
 6457|       |	/* Clear the held length since there is something to read */
 6458|   497k|	control->held_length = 0;
 6459|   497k| found_one:
 6460|       |	/*
 6461|       |	 * If we reach here, control has a some data for us to read off.
 6462|       |	 * Note that stcb COULD be NULL.
 6463|       |	 */
 6464|   497k|	if (hold_rlock == 0) {
  ------------------
  |  Branch (6464:6): [True: 497k, False: 0]
  ------------------
 6465|   497k|		hold_rlock = 1;
 6466|   497k|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|   497k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   497k|	do {                         \
  |  |  |  |  113|   497k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 497k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   497k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 497k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6467|   497k|	}
 6468|   497k|	control->some_taken++;
 6469|   497k|	stcb = control->stcb;
 6470|   497k|	if (stcb) {
  ------------------
  |  Branch (6470:6): [True: 497k, False: 0]
  ------------------
 6471|   497k|		if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6471:7): [True: 382k, False: 115k]
  ------------------
 6472|   382k|		    (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED)) {
  ------------------
  |  |  465|   382k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6472:7): [True: 0, False: 382k]
  ------------------
 6473|      0|			if (freecnt_applied == 0)
  ------------------
  |  Branch (6473:8): [True: 0, False: 0]
  ------------------
 6474|      0|				stcb = NULL;
 6475|   497k|		} else if (control->do_not_ref_stcb == 0) {
  ------------------
  |  Branch (6475:14): [True: 382k, False: 115k]
  ------------------
 6476|       |			/* you can't free it on me please */
 6477|       |			/*
 6478|       |			 * The lock on the socket buffer protects us so the
 6479|       |			 * free code will stop. But since we used the socketbuf
 6480|       |			 * lock and the sender uses the tcb_lock to increment,
 6481|       |			 * we need to use the atomic add to the refcnt
 6482|       |			 */
 6483|   382k|			if (freecnt_applied) {
  ------------------
  |  Branch (6483:8): [True: 0, False: 382k]
  ------------------
 6484|      0|#ifdef INVARIANTS
 6485|      0|				panic("refcnt already incremented");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6486|       |#else
 6487|       |				SCTP_PRINTF("refcnt already incremented?\n");
 6488|       |#endif
 6489|   382k|			} else {
 6490|   382k|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|   382k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6491|   382k|				freecnt_applied = 1;
 6492|   382k|			}
 6493|       |			/*
 6494|       |			 * Setup to remember how much we have not yet told
 6495|       |			 * the peer our rwnd has opened up. Note we grab
 6496|       |			 * the value from the tcb from last time.
 6497|       |			 * Note too that sack sending clears this when a sack
 6498|       |			 * is sent, which is fine. Once we hit the rwnd_req,
 6499|       |			 * we then will go to the sctp_user_rcvd() that will
 6500|       |			 * not lock until it KNOWs it MUST send a WUP-SACK.
 6501|       |			 */
 6502|   382k|			freed_so_far = (uint32_t)stcb->freed_by_sorcv_sincelast;
 6503|   382k|			stcb->freed_by_sorcv_sincelast = 0;
 6504|   382k|		}
 6505|   497k|	}
 6506|   497k|	if (stcb &&
  ------------------
  |  Branch (6506:6): [True: 497k, False: 0]
  ------------------
 6507|   497k|	    ((control->spec_flags & M_NOTIFICATION) == 0) &&
  ------------------
  |  | 1037|   497k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   497k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6507:6): [True: 998, False: 496k]
  ------------------
 6508|    998|	    control->do_not_ref_stcb == 0) {
  ------------------
  |  Branch (6508:6): [True: 846, False: 152]
  ------------------
 6509|    846|		stcb->asoc.strmin[control->sinfo_stream].delivery_started = 1;
 6510|    846|	}
 6511|       |
 6512|       |	/* First lets get off the sinfo and sockaddr info */
 6513|   497k|	if ((sinfo != NULL) && (filling_sinfo != 0)) {
  ------------------
  |  Branch (6513:6): [True: 497k, False: 0]
  |  Branch (6513:25): [True: 497k, False: 0]
  ------------------
 6514|   497k|		sinfo->sinfo_stream = control->sinfo_stream;
 6515|   497k|		sinfo->sinfo_ssn = (uint16_t)control->mid;
 6516|   497k|		sinfo->sinfo_flags = control->sinfo_flags;
 6517|   497k|		sinfo->sinfo_ppid = control->sinfo_ppid;
 6518|   497k|		sinfo->sinfo_context =control->sinfo_context;
 6519|   497k|		sinfo->sinfo_timetolive = control->sinfo_timetolive;
 6520|   497k|		sinfo->sinfo_tsn = control->sinfo_tsn;
 6521|   497k|		sinfo->sinfo_cumtsn = control->sinfo_cumtsn;
 6522|   497k|		sinfo->sinfo_assoc_id = control->sinfo_assoc_id;
 6523|   497k|		nxt = TAILQ_NEXT(control, next);
 6524|   497k|		if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXT_RCVINFO) ||
  ------------------
  |  |   52|   995k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 497k]
  |  |  ------------------
  ------------------
 6525|   497k|		    sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO)) {
  ------------------
  |  |   52|   497k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 497k, False: 0]
  |  |  ------------------
  ------------------
 6526|   497k|			struct sctp_extrcvinfo *s_extra;
 6527|   497k|			s_extra = (struct sctp_extrcvinfo *)sinfo;
 6528|   497k|			if ((nxt) &&
  ------------------
  |  Branch (6528:8): [True: 488k, False: 8.78k]
  ------------------
 6529|   488k|			    (nxt->length)) {
  ------------------
  |  Branch (6529:8): [True: 488k, False: 0]
  ------------------
 6530|   488k|				s_extra->serinfo_next_flags = SCTP_NEXT_MSG_AVAIL;
  ------------------
  |  |  213|   488k|#define SCTP_NEXT_MSG_AVAIL        0x0001
  ------------------
 6531|   488k|				if (nxt->sinfo_flags & SCTP_UNORDERED) {
  ------------------
  |  |  259|   488k|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
  |  Branch (6531:9): [True: 445, False: 488k]
  ------------------
 6532|    445|					s_extra->serinfo_next_flags |= SCTP_NEXT_MSG_IS_UNORDERED;
  ------------------
  |  |  215|    445|#define SCTP_NEXT_MSG_IS_UNORDERED 0x0004
  ------------------
 6533|    445|				}
 6534|   488k|				if (nxt->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|   488k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   488k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6534:9): [True: 488k, False: 683]
  ------------------
 6535|   488k|					s_extra->serinfo_next_flags |= SCTP_NEXT_MSG_IS_NOTIFICATION;
  ------------------
  |  |  216|   488k|#define SCTP_NEXT_MSG_IS_NOTIFICATION 0x0008
  ------------------
 6536|   488k|				}
 6537|   488k|				s_extra->serinfo_next_aid = nxt->sinfo_assoc_id;
 6538|   488k|				s_extra->serinfo_next_length = nxt->length;
 6539|   488k|				s_extra->serinfo_next_ppid = nxt->sinfo_ppid;
 6540|   488k|				s_extra->serinfo_next_stream = nxt->sinfo_stream;
 6541|   488k|				if (nxt->tail_mbuf != NULL) {
  ------------------
  |  Branch (6541:9): [True: 488k, False: 0]
  ------------------
 6542|   488k|					if (nxt->end_added) {
  ------------------
  |  Branch (6542:10): [True: 488k, False: 0]
  ------------------
 6543|   488k|						s_extra->serinfo_next_flags |= SCTP_NEXT_MSG_ISCOMPLETE;
  ------------------
  |  |  214|   488k|#define SCTP_NEXT_MSG_ISCOMPLETE   0x0002
  ------------------
 6544|   488k|					}
 6545|   488k|				}
 6546|   488k|			} else {
 6547|       |				/* we explicitly 0 this, since the memcpy got
 6548|       |				 * some other things beyond the older sinfo_
 6549|       |				 * that is on the control's structure :-D
 6550|       |				 */
 6551|  8.78k|				nxt = NULL;
 6552|  8.78k|				s_extra->serinfo_next_flags = SCTP_NO_NEXT_MSG;
  ------------------
  |  |  212|  8.78k|#define SCTP_NO_NEXT_MSG           0x0000
  ------------------
 6553|  8.78k|				s_extra->serinfo_next_aid = 0;
 6554|  8.78k|				s_extra->serinfo_next_length = 0;
 6555|  8.78k|				s_extra->serinfo_next_ppid = 0;
 6556|  8.78k|				s_extra->serinfo_next_stream = 0;
 6557|  8.78k|			}
 6558|   497k|		}
 6559|       |		/*
 6560|       |		 * update off the real current cum-ack, if we have an stcb.
 6561|       |		 */
 6562|   497k|		if ((control->do_not_ref_stcb == 0) && stcb)
  ------------------
  |  Branch (6562:7): [True: 382k, False: 115k]
  |  Branch (6562:42): [True: 382k, False: 0]
  ------------------
 6563|   382k|			sinfo->sinfo_cumtsn = stcb->asoc.cumulative_tsn;
 6564|       |		/*
 6565|       |		 * mask off the high bits, we keep the actual chunk bits in
 6566|       |		 * there.
 6567|       |		 */
 6568|   497k|		sinfo->sinfo_flags &= 0x00ff;
 6569|   497k|		if ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|   497k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (6569:7): [True: 689, False: 496k]
  ------------------
 6570|    689|			sinfo->sinfo_flags |= SCTP_UNORDERED;
  ------------------
  |  |  259|    689|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
 6571|    689|		}
 6572|   497k|	}
 6573|       |#ifdef SCTP_ASOCLOG_OF_TSNS
 6574|       |	{
 6575|       |		int index, newindex;
 6576|       |		struct sctp_pcbtsn_rlog *entry;
 6577|       |		do {
 6578|       |			index = inp->readlog_index;
 6579|       |			newindex = index + 1;
 6580|       |			if (newindex >= SCTP_READ_LOG_SIZE) {
 6581|       |				newindex = 0;
 6582|       |			}
 6583|       |		} while (atomic_cmpset_int(&inp->readlog_index, index, newindex) == 0);
 6584|       |		entry = &inp->readlog[index];
 6585|       |		entry->vtag = control->sinfo_assoc_id;
 6586|       |		entry->strm = control->sinfo_stream;
 6587|       |		entry->seq = (uint16_t)control->mid;
 6588|       |		entry->sz = control->length;
 6589|       |		entry->flgs = control->sinfo_flags;
 6590|       |	}
 6591|       |#endif
 6592|   497k|	if ((fromlen > 0) && (from != NULL)) {
  ------------------
  |  Branch (6592:6): [True: 497k, False: 0]
  |  Branch (6592:23): [True: 497k, False: 0]
  ------------------
 6593|   497k|		union sctp_sockstore store;
 6594|   497k|		size_t len;
 6595|       |
 6596|   497k|		switch (control->whoFrom->ro._l_addr.sa.sa_family) {
 6597|      0|#ifdef INET6
 6598|  9.20k|			case AF_INET6:
  ------------------
  |  Branch (6598:4): [True: 9.20k, False: 488k]
  ------------------
 6599|  9.20k|				len = sizeof(struct sockaddr_in6);
 6600|  9.20k|				store.sin6 = control->whoFrom->ro._l_addr.sin6;
 6601|  9.20k|				store.sin6.sin6_port = control->port_from;
 6602|  9.20k|				break;
 6603|      0|#endif
 6604|      0|#ifdef INET
 6605|    133|			case AF_INET:
  ------------------
  |  Branch (6605:4): [True: 133, False: 497k]
  ------------------
 6606|    133|#ifdef INET6
 6607|    133|				if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_NEEDS_MAPPED_V4)) {
  ------------------
  |  |   52|    133|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 133]
  |  |  ------------------
  ------------------
 6608|      0|					len = sizeof(struct sockaddr_in6);
 6609|      0|					in6_sin_2_v4mapsin6(&control->whoFrom->ro._l_addr.sin,
 6610|      0|							    &store.sin6);
 6611|      0|					store.sin6.sin6_port = control->port_from;
 6612|    133|				} else {
 6613|    133|					len = sizeof(struct sockaddr_in);
 6614|    133|					store.sin = control->whoFrom->ro._l_addr.sin;
 6615|    133|					store.sin.sin_port = control->port_from;
 6616|    133|				}
 6617|       |#else
 6618|       |				len = sizeof(struct sockaddr_in);
 6619|       |				store.sin = control->whoFrom->ro._l_addr.sin;
 6620|       |				store.sin.sin_port = control->port_from;
 6621|       |#endif
 6622|    133|				break;
 6623|      0|#endif
 6624|      0|#if defined(__Userspace__)
 6625|   488k|			case AF_CONN:
  ------------------
  |  | 1014|   488k|#define AF_CONN 123
  ------------------
  |  Branch (6625:4): [True: 488k, False: 9.33k]
  ------------------
 6626|   488k|				len = sizeof(struct sockaddr_conn);
 6627|   488k|				store.sconn = control->whoFrom->ro._l_addr.sconn;
 6628|   488k|				store.sconn.sconn_port = control->port_from;
 6629|   488k|				break;
 6630|      0|#endif
 6631|      0|			default:
  ------------------
  |  Branch (6631:4): [True: 0, False: 497k]
  ------------------
 6632|      0|				len = 0;
 6633|      0|				break;
 6634|   497k|		}
 6635|   497k|		memcpy(from, &store, min((size_t)fromlen, len));
  ------------------
  |  |   66|   497k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 497k]
  |  |  ------------------
  ------------------
 6636|       |#if defined(SCTP_EMBEDDED_V6_SCOPE)
 6637|       |#ifdef INET6
 6638|       |		{
 6639|       |			struct sockaddr_in6 lsa6, *from6;
 6640|       |
 6641|       |			from6 = (struct sockaddr_in6 *)from;
 6642|       |			sctp_recover_scope_mac(from6, (&lsa6));
 6643|       |		}
 6644|       |#endif
 6645|       |#endif
 6646|   497k|	}
 6647|   497k|	if (hold_rlock) {
  ------------------
  |  Branch (6647:6): [True: 497k, False: 0]
  ------------------
 6648|   497k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|   497k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   497k|	do {                         \
  |  |  |  |  113|   497k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 497k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   497k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 497k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6649|   497k|		hold_rlock = 0;
 6650|   497k|	}
 6651|   497k|	if (hold_sblock) {
  ------------------
  |  Branch (6651:6): [True: 0, False: 497k]
  ------------------
 6652|      0|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6653|      0|		hold_sblock = 0;
 6654|      0|	}
 6655|       |	/* now copy out what data we can */
 6656|   497k|	if (mp == NULL) {
  ------------------
  |  Branch (6656:6): [True: 497k, False: 0]
  ------------------
 6657|       |		/* copy out each mbuf in the chain up to length */
 6658|   497k|	get_more_data:
 6659|   497k|		m = control->data;
 6660|   499k|		while (m) {
  ------------------
  |  Branch (6660:10): [True: 499k, False: 0]
  ------------------
 6661|       |			/* Move out all we can */
 6662|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6663|       |#if defined(APPLE_LEOPARD)
 6664|       |			cp_len = uio->uio_resid;
 6665|       |#else
 6666|       |			cp_len = uio_resid(uio);
 6667|       |#endif
 6668|       |#else
 6669|   499k|			cp_len = uio->uio_resid;
 6670|   499k|#endif
 6671|   499k|			my_len = SCTP_BUF_LEN(m);
  ------------------
  |  |  801|   499k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   499k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 6672|   499k|			if (cp_len > my_len) {
  ------------------
  |  Branch (6672:8): [True: 499k, False: 178]
  ------------------
 6673|       |				/* not enough in this buf */
 6674|   499k|				cp_len = my_len;
 6675|   499k|			}
 6676|   499k|			if (hold_rlock) {
  ------------------
  |  Branch (6676:8): [True: 1.79k, False: 497k]
  ------------------
 6677|  1.79k|				SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|  1.79k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.79k|	do {                         \
  |  |  |  |  113|  1.79k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.79k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.79k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.79k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6678|  1.79k|				hold_rlock = 0;
 6679|  1.79k|			}
 6680|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6681|       |			SCTP_SOCKET_UNLOCK(so, 0);
 6682|       |#endif
 6683|   499k|			if (cp_len > 0)
  ------------------
  |  Branch (6683:8): [True: 499k, False: 0]
  ------------------
 6684|   499k|				error = uiomove(mtod(m, char *), (int)cp_len, uio);
  ------------------
  |  |   96|   499k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   499k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 6685|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6686|       |			SCTP_SOCKET_LOCK(so, 0);
 6687|       |#endif
 6688|       |			/* re-read */
 6689|   499k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|   499k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6689:8): [True: 0, False: 499k]
  ------------------
 6690|      0|				goto release;
 6691|      0|			}
 6692|       |
 6693|   499k|			if ((control->do_not_ref_stcb == 0) && stcb &&
  ------------------
  |  Branch (6693:8): [True: 382k, False: 116k]
  |  Branch (6693:43): [True: 382k, False: 0]
  ------------------
 6694|   382k|			    stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|   382k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6694:8): [True: 0, False: 382k]
  ------------------
 6695|      0|				no_rcv_needed = 1;
 6696|      0|			}
 6697|   499k|			if (error) {
  ------------------
  |  Branch (6697:8): [True: 0, False: 499k]
  ------------------
 6698|       |				/* error we are out of here */
 6699|      0|				goto release;
 6700|      0|			}
 6701|   499k|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|   499k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   499k|	do {                         \
  |  |  |  |  113|   499k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 499k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   499k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 499k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6702|   499k|			hold_rlock = 1;
 6703|   499k|			if (cp_len == SCTP_BUF_LEN(m)) {
  ------------------
  |  |  801|   499k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   499k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (6703:8): [True: 499k, False: 177]
  ------------------
 6704|   499k|				if ((SCTP_BUF_NEXT(m)== NULL) &&
  ------------------
  |  |  802|   499k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   499k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (6704:9): [True: 497k, False: 1.79k]
  ------------------
 6705|   497k|				    (control->end_added)) {
  ------------------
  |  Branch (6705:9): [True: 497k, False: 0]
  ------------------
 6706|   497k|					out_flags |= MSG_EOR;
 6707|   497k|					if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6707:10): [True: 382k, False: 115k]
  ------------------
 6708|   382k|					    (control->stcb != NULL) &&
  ------------------
  |  Branch (6708:10): [True: 382k, False: 0]
  ------------------
 6709|   382k|					    ((control->spec_flags & M_NOTIFICATION) == 0))
  ------------------
  |  | 1037|   382k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   382k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6709:10): [True: 735, False: 381k]
  ------------------
 6710|    735|						control->stcb->asoc.strmin[control->sinfo_stream].delivery_started = 0;
 6711|   497k|				}
 6712|   499k|				if (control->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|   499k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   499k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6712:9): [True: 497k, False: 1.50k]
  ------------------
 6713|   497k|					out_flags |= MSG_NOTIFICATION;
  ------------------
  |  |   50|   497k|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
 6714|   497k|				}
 6715|       |				/* we ate up the mbuf */
 6716|   499k|				if (in_flags & MSG_PEEK) {
  ------------------
  |  Branch (6716:9): [True: 0, False: 499k]
  ------------------
 6717|       |					/* just looking */
 6718|      0|					m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 6719|      0|					copied_so_far += cp_len;
 6720|   499k|				} else {
 6721|       |					/* dispose of the mbuf */
 6722|   499k|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   499k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   499k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6722:10): [True: 0, False: 499k]
  ------------------
 6723|      0|						sctp_sblog(&so->so_rcv,
 6724|      0|						   control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBFREE, SCTP_BUF_LEN(m));
  ------------------
  |  |  158|      0|#define SCTP_LOG_SBFREE             54
  ------------------
              						   control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBFREE, SCTP_BUF_LEN(m));
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (6724:10): [True: 0, False: 0]
  ------------------
 6725|      0|					}
 6726|   998k|					sctp_sbfree(control, stcb, &so->so_rcv, m);
  ------------------
  |  |  247|   499k|#define sctp_sbfree(ctl, stcb, sb, m) { \
  |  |  248|   499k|	SCTP_SB_DECR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  973|   499k|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|   499k|{								\
  |  |  |  |  975|   499k|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|   499k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|   499k|{ \
  |  |  |  |  |  |  119|   499k|	int32_t oldval; \
  |  |  |  |  |  |  120|   499k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|   499k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|   499k|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 499k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|	} \
  |  |  |  |  |  |  124|   499k|}
  |  |  |  |  ------------------
  |  |  |  |  976|   499k|}
  |  |  ------------------
  |  |  249|   499k|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|   499k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|   499k|{ \
  |  |  |  |  119|   499k|	int32_t oldval; \
  |  |  |  |  120|   499k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   499k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|   499k|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 499k]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|   499k|}
  |  |  ------------------
  |  |  250|   499k|	if (((ctl)->do_not_ref_stcb == 0) && stcb) { \
  |  |  ------------------
  |  |  |  Branch (250:6): [True: 382k, False: 116k]
  |  |  |  Branch (250:39): [True: 382k, False: 0]
  |  |  ------------------
  |  |  251|   382k|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  117|   382k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|   382k|{ \
  |  |  |  |  119|   382k|	int32_t oldval; \
  |  |  |  |  120|   382k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   382k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|   382k|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 382k]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|   382k|}
  |  |  ------------------
  |  |  252|   382k|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|   382k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|   382k|{ \
  |  |  |  |  119|   382k|	int32_t oldval; \
  |  |  |  |  120|   382k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   382k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|   382k|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 382k]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|   382k|}
  |  |  ------------------
  |  |  253|   382k|	} \
  |  |  254|   499k|}
  ------------------
 6727|   499k|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   499k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   499k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6727:10): [True: 0, False: 499k]
  ------------------
 6728|      0|						sctp_sblog(&so->so_rcv,
 6729|      0|						   control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBRESULT, 0);
  ------------------
  |  |  159|      0|#define SCTP_LOG_SBRESULT           55
  ------------------
  |  Branch (6729:10): [True: 0, False: 0]
  ------------------
 6730|      0|					}
 6731|   499k|					copied_so_far += cp_len;
 6732|   499k|					freed_so_far += (uint32_t)cp_len;
 6733|   499k|					freed_so_far += MSIZE;
  ------------------
  |  |   47|   499k|#define MSIZE 256
  ------------------
 6734|   499k|					atomic_subtract_int(&control->length, (int)cp_len);
  ------------------
  |  |   97|   499k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6735|   499k|					control->data = sctp_m_free(m);
  ------------------
  |  |   51|   499k|#define sctp_m_free m_free
  ------------------
 6736|   499k|					m = control->data;
 6737|       |					/* been through it all, must hold sb lock ok to null tail */
 6738|   499k|					if (control->data == NULL) {
  ------------------
  |  Branch (6738:10): [True: 497k, False: 1.79k]
  ------------------
 6739|   497k|#ifdef INVARIANTS
 6740|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6741|       |						if ((control->end_added == 0) ||
 6742|       |						    (TAILQ_NEXT(control, next) == NULL)) {
 6743|       |							/* If the end is not added, OR the
 6744|       |							 * next is NOT null we MUST have the lock.
 6745|       |							 */
 6746|       |							if (mtx_owned(&inp->inp_rdata_mtx) == 0) {
 6747|       |								panic("Hmm we don't own the lock?");
 6748|       |							}
 6749|       |						}
 6750|       |#endif
 6751|   497k|#endif
 6752|   497k|						control->tail_mbuf = NULL;
 6753|   497k|#ifdef INVARIANTS
 6754|   497k|						if ((control->end_added) && ((out_flags & MSG_EOR) == 0)) {
  ------------------
  |  Branch (6754:11): [True: 497k, False: 0]
  |  Branch (6754:35): [True: 0, False: 497k]
  ------------------
 6755|      0|							panic("end_added, nothing left and no MSG_EOR");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6756|      0|						}
 6757|   497k|#endif
 6758|   497k|					}
 6759|   499k|				}
 6760|   499k|			} else {
 6761|       |				/* Do we need to trim the mbuf? */
 6762|    177|				if (control->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|    177|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    177|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6762:9): [True: 0, False: 177]
  ------------------
 6763|      0|					out_flags |= MSG_NOTIFICATION;
  ------------------
  |  |   50|      0|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
 6764|      0|				}
 6765|    177|				if ((in_flags & MSG_PEEK) == 0) {
  ------------------
  |  Branch (6765:9): [True: 177, False: 0]
  ------------------
 6766|    177|					SCTP_BUF_RESV_UF(m, cp_len);
  ------------------
  |  |  804|    177|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    177|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 6767|    177|					SCTP_BUF_LEN(m) -= (int)cp_len;
  ------------------
  |  |  801|    177|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    177|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 6768|    177|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|    177|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|    177|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6768:10): [True: 0, False: 177]
  ------------------
 6769|      0|						sctp_sblog(&so->so_rcv, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBFREE, (int)cp_len);
  ------------------
  |  |  158|      0|#define SCTP_LOG_SBFREE             54
  ------------------
  |  Branch (6769:31): [True: 0, False: 0]
  ------------------
 6770|      0|					}
 6771|    177|					SCTP_SB_DECR(&so->so_rcv, cp_len);
  ------------------
  |  |  973|    177|#define SCTP_SB_DECR(sb, decr)					\
  |  |  974|    177|{								\
  |  |  975|    177|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  ------------------
  |  |  |  |  117|    177|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|    177|{ \
  |  |  |  |  119|    177|	int32_t oldval; \
  |  |  |  |  120|    177|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    177|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|    177|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 177]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|    177|}
  |  |  ------------------
  |  |  976|    177|}
  ------------------
 6772|    177|					if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6772:10): [True: 111, False: 66]
  ------------------
 6773|    111|					    stcb) {
  ------------------
  |  Branch (6773:10): [True: 111, False: 0]
  ------------------
 6774|    111|						atomic_subtract_int(&stcb->asoc.sb_cc, (int)cp_len);
  ------------------
  |  |   97|    111|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6775|    111|					}
 6776|    177|					copied_so_far += cp_len;
 6777|    177|					freed_so_far += (uint32_t)cp_len;
 6778|    177|					freed_so_far += MSIZE;
  ------------------
  |  |   47|    177|#define MSIZE 256
  ------------------
 6779|    177|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|    177|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|    177|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6779:10): [True: 0, False: 177]
  ------------------
 6780|      0|						sctp_sblog(&so->so_rcv, control->do_not_ref_stcb?NULL:stcb,
  ------------------
  |  Branch (6780:31): [True: 0, False: 0]
  ------------------
 6781|      0|							   SCTP_LOG_SBRESULT, 0);
  ------------------
  |  |  159|      0|#define SCTP_LOG_SBRESULT           55
  ------------------
 6782|      0|					}
 6783|    177|					atomic_subtract_int(&control->length, (int)cp_len);
  ------------------
  |  |   97|    177|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6784|    177|				} else {
 6785|      0|					copied_so_far += cp_len;
 6786|      0|				}
 6787|    177|			}
 6788|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6789|       |#if defined(APPLE_LEOPARD)
 6790|       |			if ((out_flags & MSG_EOR) || (uio->uio_resid == 0)) {
 6791|       |#else
 6792|       |			if ((out_flags & MSG_EOR) || (uio_resid(uio) == 0)) {
 6793|       |#endif
 6794|       |#else
 6795|   499k|			if ((out_flags & MSG_EOR) || (uio->uio_resid == 0)) {
  ------------------
  |  Branch (6795:8): [True: 497k, False: 1.97k]
  |  Branch (6795:33): [True: 177, False: 1.79k]
  ------------------
 6796|   497k|#endif
 6797|   497k|				break;
 6798|   497k|			}
 6799|  1.79k|			if (((stcb) && (in_flags & MSG_PEEK) == 0) &&
  ------------------
  |  Branch (6799:9): [True: 1.79k, False: 0]
  |  Branch (6799:19): [True: 1.79k, False: 0]
  ------------------
 6800|  1.79k|			    (control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6800:8): [True: 504, False: 1.29k]
  ------------------
 6801|    504|			    (freed_so_far >= rwnd_req)) {
  ------------------
  |  Branch (6801:8): [True: 30, False: 474]
  ------------------
 6802|     30|				sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 6803|     30|			}
 6804|  1.79k|		} /* end while(m) */
 6805|       |		/*
 6806|       |		 * At this point we have looked at it all and we either have
 6807|       |		 * a MSG_EOR/or read all the user wants... <OR>
 6808|       |		 * control->length == 0.
 6809|       |		 */
 6810|   497k|		if ((out_flags & MSG_EOR) && ((in_flags & MSG_PEEK) == 0)) {
  ------------------
  |  Branch (6810:7): [True: 497k, False: 177]
  |  Branch (6810:32): [True: 497k, False: 0]
  ------------------
 6811|       |			/* we are done with this control */
 6812|   497k|			if (control->length == 0) {
  ------------------
  |  Branch (6812:8): [True: 497k, False: 0]
  ------------------
 6813|   497k|				if (control->data) {
  ------------------
  |  Branch (6813:9): [True: 0, False: 497k]
  ------------------
 6814|      0|#ifdef INVARIANTS
 6815|      0|					panic("control->data not null at read eor?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6816|       |#else
 6817|       |					SCTP_PRINTF("Strange, data left in the control buffer .. invariants would panic?\n");
 6818|       |					sctp_m_freem(control->data);
 6819|       |					control->data = NULL;
 6820|       |#endif
 6821|      0|				}
 6822|   497k|			done_with_control:
 6823|   497k|				if (hold_rlock == 0) {
  ------------------
  |  Branch (6823:9): [True: 0, False: 497k]
  ------------------
 6824|      0|					SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6825|      0|					hold_rlock = 1;
 6826|      0|				}
 6827|   497k|				TAILQ_REMOVE(&inp->read_queue, control, next);
  ------------------
  |  Branch (6827:5): [True: 488k, False: 8.68k]
  |  Branch (6827:5): [Folded, False: 497k]
  ------------------
 6828|       |				/* Add back any hidden data */
 6829|   497k|				if (control->held_length) {
  ------------------
  |  Branch (6829:9): [True: 0, False: 497k]
  ------------------
 6830|      0|					held_length = 0;
 6831|      0|					control->held_length = 0;
 6832|      0|					wakeup_read_socket = 1;
 6833|      0|				}
 6834|   497k|				if (control->aux_data) {
  ------------------
  |  Branch (6834:9): [True: 0, False: 497k]
  ------------------
 6835|      0|					sctp_m_free (control->aux_data);
  ------------------
  |  |   51|      0|#define sctp_m_free m_free
  ------------------
 6836|      0|					control->aux_data = NULL;
 6837|      0|				}
 6838|   497k|				no_rcv_needed = control->do_not_ref_stcb;
 6839|   497k|				sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|   497k|#define sctp_free_remote_addr(__net) { \
  |  |  229|   497k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 497k, False: 0]
  |  |  ------------------
  |  |  230|   497k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|   497k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   497k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 2.28k, False: 495k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|  2.28k|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 2.28k, False: 0]
  |  |  ------------------
  |  |  232|  2.28k|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|  2.28k|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|  2.28k|		RT_LOCK(_rt);					\
  |  |  |  |  128|  2.28k|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|  2.28k|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|  2.28k|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 2.28k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|  2.28k|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|  2.28k|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|  2.28k|		} else {					\
  |  |  |  |  |  |  120|      0|			RT_REMREF(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define	RT_REMREF(_rt)	do {					\
  |  |  |  |  |  |  |  |  111|      0|	RT_LOCK_ASSERT(_rt);					\
  |  |  |  |  |  |  |  |  112|      0|	KASSERT((_rt)->rt_refcnt > 0,				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|		("bogus refcnt %ld", (_rt)->rt_refcnt));	\
  |  |  |  |  |  |  |  |  114|      0|	(_rt)->rt_refcnt--;					\
  |  |  |  |  |  |  |  |  115|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (115:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|			RT_UNLOCK(_rt);				\
  |  |  |  |  |  |  122|      0|		}						\
  |  |  |  |  |  |  123|  2.28k|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|  2.28k|		_rt = NULL;					\
  |  |  |  |  |  |  125|  2.28k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 2.28k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|  2.28k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 2.28k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|  2.28k|				(__net)->ro.ro_rt = NULL; \
  |  |  234|  2.28k|			} \
  |  |  235|  2.28k|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 2.28k]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|  2.28k|			(__net)->src_addr_selected = 0; \
  |  |  240|  2.28k|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|  2.28k|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|  2.28k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|  2.28k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  2.28k|	free(element);  \
  |  |  |  |  709|  2.28k|}
  |  |  ------------------
  |  |  242|  2.28k|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|  2.28k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  2.28k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|  2.28k|		} \
  |  |  244|   497k|	} \
  |  |  245|   497k|}
  ------------------
 6840|   497k|				control->data = NULL;
 6841|   497k|#ifdef INVARIANTS
 6842|   497k|				if (control->on_strm_q) {
  ------------------
  |  Branch (6842:9): [True: 0, False: 497k]
  ------------------
 6843|      0|					panic("About to free ctl:%p so:%p and its in %d",
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6844|      0|					      control, so, control->on_strm_q);
 6845|      0|				}
 6846|   497k|#endif
 6847|   994k|				sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|   497k|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|   497k|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 497k]
  |  |  ------------------
  |  |  107|   497k|		panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  108|   497k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|   497k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|   497k|	free(element);  \
  |  |  |  |  709|   497k|}
  |  |  ------------------
  |  |  109|   497k|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|   497k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|   497k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|   497k|}
  ------------------
 6848|   994k|				control = NULL;
 6849|   994k|				if ((freed_so_far >= rwnd_req) &&
  ------------------
  |  Branch (6849:9): [True: 10.7k, False: 486k]
  ------------------
 6850|  10.7k|				    (no_rcv_needed == 0))
  ------------------
  |  Branch (6850:9): [True: 10.7k, False: 0]
  ------------------
 6851|  10.7k|					sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 6852|       |
 6853|   994k|			} else {
 6854|       |				/*
 6855|       |				 * The user did not read all of this
 6856|       |				 * message, turn off the returned MSG_EOR
 6857|       |				 * since we are leaving more behind on the
 6858|       |				 * control to read.
 6859|       |				 */
 6860|      0|#ifdef INVARIANTS
 6861|      0|				if (control->end_added &&
  ------------------
  |  Branch (6861:9): [True: 0, False: 0]
  ------------------
 6862|      0|				    (control->data == NULL) &&
  ------------------
  |  Branch (6862:9): [True: 0, False: 0]
  ------------------
 6863|      0|				    (control->tail_mbuf == NULL)) {
  ------------------
  |  Branch (6863:9): [True: 0, False: 0]
  ------------------
 6864|      0|					panic("Gak, control->length is corrupt?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6865|      0|				}
 6866|      0|#endif
 6867|      0|				no_rcv_needed = control->do_not_ref_stcb;
 6868|      0|				out_flags &= ~MSG_EOR;
 6869|      0|			}
 6870|   497k|		}
 6871|   497k|		if (out_flags & MSG_EOR) {
  ------------------
  |  Branch (6871:7): [True: 497k, False: 177]
  ------------------
 6872|   497k|			goto release;
 6873|   497k|		}
 6874|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6875|       |#if defined(APPLE_LEOPARD)
 6876|       |		if ((uio->uio_resid == 0) ||
 6877|       |#else
 6878|       |		if ((uio_resid(uio) == 0) ||
 6879|       |#endif
 6880|       |#else
 6881|    177|		if ((uio->uio_resid == 0) ||
  ------------------
  |  Branch (6881:7): [True: 177, False: 0]
  ------------------
 6882|      0|#endif
 6883|      0|		    ((in_eeor_mode) &&
  ------------------
  |  Branch (6883:8): [True: 0, False: 0]
  ------------------
 6884|    177|		     (copied_so_far >= max(so->so_rcv.sb_lowat, 1)))) {
  ------------------
  |  |   67|      0|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (6884:8): [True: 0, False: 0]
  ------------------
 6885|    177|			goto release;
 6886|    177|		}
 6887|       |		/*
 6888|       |		 * If I hit here the receiver wants more and this message is
 6889|       |		 * NOT done (pd-api). So two questions. Can we block? if not
 6890|       |		 * we are done. Did the user NOT set MSG_WAITALL?
 6891|       |		 */
 6892|      0|		if (block_allowed == 0) {
  ------------------
  |  Branch (6892:7): [True: 0, False: 0]
  ------------------
 6893|      0|			goto release;
 6894|      0|		}
 6895|       |		/*
 6896|       |		 * We need to wait for more data a few things:
 6897|       |		 * - We don't release the I/O lock so we don't get someone else
 6898|       |		 *   reading.
 6899|       |		 * - We must be sure to account for the case where what is added
 6900|       |		 *   is NOT to our control when we wakeup.
 6901|       |		 */
 6902|       |
 6903|       |		/* Do we need to tell the transport a rwnd update might be
 6904|       |		 * needed before we go to sleep?
 6905|       |		 */
 6906|      0|		if (((stcb) && (in_flags & MSG_PEEK) == 0) &&
  ------------------
  |  Branch (6906:8): [True: 0, False: 0]
  |  Branch (6906:18): [True: 0, False: 0]
  ------------------
 6907|      0|		    ((freed_so_far >= rwnd_req) &&
  ------------------
  |  Branch (6907:8): [True: 0, False: 0]
  ------------------
 6908|      0|		     (control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6908:8): [True: 0, False: 0]
  ------------------
 6909|      0|		     (no_rcv_needed == 0))) {
  ------------------
  |  Branch (6909:8): [True: 0, False: 0]
  ------------------
 6910|      0|			sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 6911|      0|		}
 6912|      0|	wait_some_more:
 6913|       |#if (defined(__FreeBSD__) || defined(_WIN32)) && !defined(__Userspace__)
 6914|       |		if (so->so_rcv.sb_state & SBS_CANTRCVMORE) {
 6915|       |			goto release;
 6916|       |		}
 6917|       |#else
 6918|      0|		if (so->so_state & SS_CANTRCVMORE) {
  ------------------
  |  |   54|      0|#define SS_CANTRCVMORE 0x020
  ------------------
  |  Branch (6918:7): [True: 0, False: 0]
  ------------------
 6919|      0|			goto release;
 6920|      0|		}
 6921|      0|#endif
 6922|       |
 6923|      0|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)
  ------------------
  |  |  546|      0|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6923:7): [True: 0, False: 0]
  ------------------
 6924|      0|			goto release;
 6925|       |
 6926|      0|		if (hold_rlock == 1) {
  ------------------
  |  Branch (6926:7): [True: 0, False: 0]
  ------------------
 6927|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6928|      0|			hold_rlock = 0;
 6929|      0|		}
 6930|      0|		if (hold_sblock == 0) {
  ------------------
  |  Branch (6930:7): [True: 0, False: 0]
  ------------------
 6931|      0|			SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6932|      0|			hold_sblock = 1;
 6933|      0|		}
 6934|      0|		if ((copied_so_far) && (control->length == 0) &&
  ------------------
  |  Branch (6934:7): [True: 0, False: 0]
  |  Branch (6934:26): [True: 0, False: 0]
  ------------------
 6935|      0|		    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE))) {
  ------------------
  |  |   52|      0|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (6935:7): [True: 0, False: 0]
  ------------------
 6936|      0|			goto release;
 6937|      0|		}
 6938|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6939|       |		sbunlock(&so->so_rcv, 1);
 6940|       |#endif
 6941|      0|		if (SCTP_SBAVAIL(&so->so_rcv) <= control->held_length) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6941:7): [True: 0, False: 0]
  ------------------
 6942|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6943|       |			error = sbwait(so, SO_RCV);
 6944|       |#else
 6945|      0|			error = sbwait(&so->so_rcv);
 6946|      0|#endif
 6947|      0|			if (error) {
  ------------------
  |  Branch (6947:8): [True: 0, False: 0]
  ------------------
 6948|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6949|       |				goto release_unlocked;
 6950|       |#else
 6951|      0|				goto release;
 6952|      0|#endif
 6953|      0|			}
 6954|      0|			control->held_length = 0;
 6955|      0|		}
 6956|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6957|       |		error = sblock(&so->so_rcv, SBLOCKWAIT(in_flags));
 6958|       |#endif
 6959|      0|		if (hold_sblock) {
  ------------------
  |  Branch (6959:7): [True: 0, False: 0]
  ------------------
 6960|      0|			SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6961|      0|			hold_sblock = 0;
 6962|      0|		}
 6963|      0|		if (control->length == 0) {
  ------------------
  |  Branch (6963:7): [True: 0, False: 0]
  ------------------
 6964|       |			/* still nothing here */
 6965|      0|			if (control->end_added == 1) {
  ------------------
  |  Branch (6965:8): [True: 0, False: 0]
  ------------------
 6966|       |				/* he aborted, or is done i.e.did a shutdown */
 6967|      0|				out_flags |= MSG_EOR;
 6968|      0|				if (control->pdapi_aborted) {
  ------------------
  |  Branch (6968:9): [True: 0, False: 0]
  ------------------
 6969|      0|					if ((control->do_not_ref_stcb == 0) && ((control->spec_flags & M_NOTIFICATION) == 0))
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6969:10): [True: 0, False: 0]
  |  Branch (6969:45): [True: 0, False: 0]
  ------------------
 6970|      0|						control->stcb->asoc.strmin[control->sinfo_stream].delivery_started = 0;
 6971|       |
 6972|      0|					out_flags |= MSG_TRUNC;
 6973|      0|				} else {
 6974|      0|					if ((control->do_not_ref_stcb == 0) && ((control->spec_flags & M_NOTIFICATION) == 0))
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6974:10): [True: 0, False: 0]
  |  Branch (6974:45): [True: 0, False: 0]
  ------------------
 6975|      0|						control->stcb->asoc.strmin[control->sinfo_stream].delivery_started = 0;
 6976|      0|				}
 6977|      0|				goto done_with_control;
 6978|      0|			}
 6979|      0|			if (SCTP_SBAVAIL(&so->so_rcv) > held_length) {
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6979:8): [True: 0, False: 0]
  ------------------
 6980|      0|				control->held_length = SCTP_SBAVAIL(&so->so_rcv);
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 6981|      0|				held_length = 0;
 6982|      0|			}
 6983|      0|			goto wait_some_more;
 6984|      0|		} else if (control->data == NULL) {
  ------------------
  |  Branch (6984:14): [True: 0, False: 0]
  ------------------
 6985|       |			/* we must re-sync since data
 6986|       |			 * is probably being added
 6987|       |			 */
 6988|      0|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6989|      0|			if ((control->length > 0) && (control->data == NULL)) {
  ------------------
  |  Branch (6989:8): [True: 0, False: 0]
  |  Branch (6989:33): [True: 0, False: 0]
  ------------------
 6990|       |				/* big trouble.. we have the lock and its corrupt? */
 6991|      0|#ifdef INVARIANTS
 6992|      0|				panic ("Impossible data==NULL length !=0");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 6993|      0|#endif
 6994|      0|				out_flags |= MSG_EOR;
 6995|      0|				out_flags |= MSG_TRUNC;
 6996|      0|				control->length = 0;
 6997|      0|				SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6998|      0|				goto done_with_control;
 6999|      0|			}
 7000|      0|			SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7001|       |			/* We will fall around to get more data */
 7002|      0|		}
 7003|      0|		goto get_more_data;
 7004|      0|	} else {
 7005|       |		/*-
 7006|       |		 * Give caller back the mbuf chain,
 7007|       |		 * store in uio_resid the length
 7008|       |		 */
 7009|      0|		wakeup_read_socket = 0;
 7010|      0|		if ((control->end_added == 0) ||
  ------------------
  |  Branch (7010:7): [True: 0, False: 0]
  ------------------
 7011|      0|		    (TAILQ_NEXT(control, next) == NULL)) {
  ------------------
  |  Branch (7011:7): [True: 0, False: 0]
  ------------------
 7012|       |			/* Need to get rlock */
 7013|      0|			if (hold_rlock == 0) {
  ------------------
  |  Branch (7013:8): [True: 0, False: 0]
  ------------------
 7014|      0|				SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|      0|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7015|      0|				hold_rlock = 1;
 7016|      0|			}
 7017|      0|		}
 7018|      0|		if (control->end_added) {
  ------------------
  |  Branch (7018:7): [True: 0, False: 0]
  ------------------
 7019|      0|			out_flags |= MSG_EOR;
 7020|      0|			if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (7020:8): [True: 0, False: 0]
  ------------------
 7021|      0|			    (control->stcb != NULL) &&
  ------------------
  |  Branch (7021:8): [True: 0, False: 0]
  ------------------
 7022|      0|			    ((control->spec_flags & M_NOTIFICATION) == 0))
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (7022:8): [True: 0, False: 0]
  ------------------
 7023|      0|				control->stcb->asoc.strmin[control->sinfo_stream].delivery_started = 0;
 7024|      0|		}
 7025|      0|		if (control->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|      0|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|      0|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (7025:7): [True: 0, False: 0]
  ------------------
 7026|      0|			out_flags |= MSG_NOTIFICATION;
  ------------------
  |  |   50|      0|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
 7027|      0|		}
 7028|       |#if defined(__APPLE__) && !defined(__Userspace__)
 7029|       |#if defined(APPLE_LEOPARD)
 7030|       |		uio->uio_resid = control->length;
 7031|       |#else
 7032|       |		uio_setresid(uio, control->length);
 7033|       |#endif
 7034|       |#else
 7035|      0|		uio->uio_resid = control->length;
 7036|      0|#endif
 7037|      0|		*mp = control->data;
 7038|      0|		m = control->data;
 7039|      0|		while (m) {
  ------------------
  |  Branch (7039:10): [True: 0, False: 0]
  ------------------
 7040|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|      0|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (7040:8): [True: 0, False: 0]
  ------------------
 7041|      0|				sctp_sblog(&so->so_rcv,
 7042|      0|				   control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBFREE, SCTP_BUF_LEN(m));
  ------------------
  |  |  158|      0|#define SCTP_LOG_SBFREE             54
  ------------------
              				   control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBFREE, SCTP_BUF_LEN(m));
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (7042:8): [True: 0, False: 0]
  ------------------
 7043|      0|			}
 7044|      0|			sctp_sbfree(control, stcb, &so->so_rcv, m);
  ------------------
  |  |  247|      0|#define sctp_sbfree(ctl, stcb, sb, m) { \
  |  |  248|      0|	SCTP_SB_DECR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  973|      0|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|      0|{								\
  |  |  |  |  975|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|      0|{ \
  |  |  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|	} \
  |  |  |  |  |  |  124|      0|}
  |  |  |  |  ------------------
  |  |  |  |  976|      0|}
  |  |  ------------------
  |  |  249|      0|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  250|      0|	if (((ctl)->do_not_ref_stcb == 0) && stcb) { \
  |  |  ------------------
  |  |  |  Branch (250:6): [True: 0, False: 0]
  |  |  |  Branch (250:39): [True: 0, False: 0]
  |  |  ------------------
  |  |  251|      0|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  252|      0|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|      0|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|      0|{ \
  |  |  |  |  119|      0|	int32_t oldval; \
  |  |  |  |  120|      0|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      0|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|      0|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  122|      0|		panic("Counter goes negative"); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  123|      0|	} \
  |  |  |  |  124|      0|}
  |  |  ------------------
  |  |  253|      0|	} \
  |  |  254|      0|}
  ------------------
 7045|      0|			freed_so_far += (uint32_t)SCTP_BUF_LEN(m);
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7046|      0|			freed_so_far += MSIZE;
  ------------------
  |  |   47|      0|#define MSIZE 256
  ------------------
 7047|      0|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|      0|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|      0|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (7047:8): [True: 0, False: 0]
  ------------------
 7048|      0|				sctp_sblog(&so->so_rcv,
 7049|      0|				   control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBRESULT, 0);
  ------------------
  |  |  159|      0|#define SCTP_LOG_SBRESULT           55
  ------------------
  |  Branch (7049:8): [True: 0, False: 0]
  ------------------
 7050|      0|			}
 7051|      0|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7052|      0|		}
 7053|      0|		control->data = control->tail_mbuf = NULL;
 7054|      0|		control->length = 0;
 7055|      0|		if (out_flags & MSG_EOR) {
  ------------------
  |  Branch (7055:7): [True: 0, False: 0]
  ------------------
 7056|       |			/* Done with this control */
 7057|      0|			goto done_with_control;
 7058|      0|		}
 7059|      0|	}
 7060|   497k| release:
 7061|   497k|	if (hold_rlock == 1) {
  ------------------
  |  Branch (7061:6): [True: 497k, False: 0]
  ------------------
 7062|   497k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|   497k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   497k|	do {                         \
  |  |  |  |  113|   497k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 497k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   497k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 497k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7063|   497k|		hold_rlock = 0;
 7064|   497k|	}
 7065|   497k|#if defined(__Userspace__)
 7066|   497k|	if (hold_sblock == 0) {
  ------------------
  |  Branch (7066:6): [True: 497k, False: 0]
  ------------------
 7067|   497k|		SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|   497k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   497k|	do {                         \
  |  |  |  |  113|   497k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 497k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   497k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 497k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7068|   497k|		hold_sblock = 1;
 7069|   497k|	}
 7070|       |#else
 7071|       |	if (hold_sblock == 1) {
 7072|       |		SOCKBUF_UNLOCK(&so->so_rcv);
 7073|       |		hold_sblock = 0;
 7074|       |	}
 7075|       |#endif
 7076|       |#if defined(__APPLE__) && !defined(__Userspace__)
 7077|       |	sbunlock(&so->so_rcv, 1);
 7078|       |#endif
 7079|       |
 7080|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 7081|       |	SOCK_IO_RECV_UNLOCK(so);
 7082|       |	sockbuf_lock = 0;
 7083|       |#endif
 7084|       |
 7085|   497k| release_unlocked:
 7086|   497k|	if (hold_sblock) {
  ------------------
  |  Branch (7086:6): [True: 497k, False: 0]
  ------------------
 7087|   497k|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|   497k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   497k|	do {                         \
  |  |  |  |  113|   497k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 497k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   497k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 497k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7088|   497k|		hold_sblock = 0;
 7089|   497k|	}
 7090|   497k|	if ((stcb) && (in_flags & MSG_PEEK) == 0) {
  ------------------
  |  Branch (7090:6): [True: 497k, False: 0]
  |  Branch (7090:16): [True: 497k, False: 0]
  ------------------
 7091|   497k|		if ((freed_so_far >= rwnd_req) &&
  ------------------
  |  Branch (7091:7): [True: 4.65k, False: 492k]
  ------------------
 7092|  4.65k|		    (control && (control->do_not_ref_stcb == 0)) &&
  ------------------
  |  Branch (7092:8): [True: 5, False: 4.64k]
  |  Branch (7092:19): [True: 5, False: 0]
  ------------------
 7093|      5|		    (no_rcv_needed == 0))
  ------------------
  |  Branch (7093:7): [True: 5, False: 0]
  ------------------
 7094|      5|			sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 7095|   497k|	}
 7096|   499k| out:
 7097|   499k|	if (msg_flags) {
  ------------------
  |  Branch (7097:6): [True: 499k, False: 0]
  ------------------
 7098|   499k|		*msg_flags = out_flags;
 7099|   499k|	}
 7100|   499k|	if (((out_flags & MSG_EOR) == 0) &&
  ------------------
  |  Branch (7100:6): [True: 1.84k, False: 497k]
  ------------------
 7101|  1.84k|	    ((in_flags & MSG_PEEK) == 0) &&
  ------------------
  |  Branch (7101:6): [True: 1.84k, False: 0]
  ------------------
 7102|  1.84k|	    (sinfo) &&
  ------------------
  |  Branch (7102:6): [True: 1.84k, False: 0]
  ------------------
 7103|  1.84k|	    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXT_RCVINFO) ||
  ------------------
  |  |   52|  3.68k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 1.84k]
  |  |  ------------------
  ------------------
 7104|  1.84k|	     sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO))) {
  ------------------
  |  |   52|  1.84k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 1.84k, False: 0]
  |  |  ------------------
  ------------------
 7105|  1.84k|		struct sctp_extrcvinfo *s_extra;
 7106|  1.84k|		s_extra = (struct sctp_extrcvinfo *)sinfo;
 7107|  1.84k|		s_extra->serinfo_next_flags = SCTP_NO_NEXT_MSG;
  ------------------
  |  |  212|  1.84k|#define SCTP_NO_NEXT_MSG           0x0000
  ------------------
 7108|  1.84k|	}
 7109|   499k|	if (hold_rlock == 1) {
  ------------------
  |  Branch (7109:6): [True: 0, False: 499k]
  ------------------
 7110|      0|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|      0|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7111|      0|	}
 7112|   499k|	if (hold_sblock) {
  ------------------
  |  Branch (7112:6): [True: 1.66k, False: 497k]
  ------------------
 7113|  1.66k|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|  1.66k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.66k|	do {                         \
  |  |  |  |  113|  1.66k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.66k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.66k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.66k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7114|  1.66k|	}
 7115|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 7116|       |	if (sockbuf_lock) {
 7117|       |		SOCK_IO_RECV_UNLOCK(so);
 7118|       |	}
 7119|       |#endif
 7120|       |
 7121|   499k|	if (freecnt_applied) {
  ------------------
  |  Branch (7121:6): [True: 382k, False: 116k]
  ------------------
 7122|       |		/*
 7123|       |		 * The lock on the socket buffer protects us so the free
 7124|       |		 * code will stop. But since we used the socketbuf lock and
 7125|       |		 * the sender uses the tcb_lock to increment, we need to use
 7126|       |		 * the atomic add to the refcnt.
 7127|       |		 */
 7128|   382k|		if (stcb == NULL) {
  ------------------
  |  Branch (7128:7): [True: 0, False: 382k]
  ------------------
 7129|      0|#ifdef INVARIANTS
 7130|      0|			panic("stcb for refcnt has gone NULL?");
  ------------------
  |  |  104|      0|	do {                                        \
  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  ------------------
  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  550|      0|	}
  |  |  ------------------
  |  |  108|      0|		terminate_non_graceful();           \
  |  |  109|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 7131|      0|			goto stage_left;
 7132|       |#else
 7133|       |			goto stage_left;
 7134|       |#endif
 7135|      0|		}
 7136|       |		/* Save the value back for next time */
 7137|   382k|		stcb->freed_by_sorcv_sincelast = freed_so_far;
 7138|   382k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|   382k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 7139|   382k|	}
 7140|   499k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|   499k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  653|   499k|#define SCTP_RECV_RWND_LOGGING_ENABLE			0x00001000
  ------------------
  |  Branch (7140:6): [True: 0, False: 499k]
  ------------------
 7141|      0|		if (stcb) {
  ------------------
  |  Branch (7141:7): [True: 0, False: 0]
  ------------------
 7142|      0|			sctp_misc_ints(SCTP_SORECV_DONE,
  ------------------
  |  |  190|      0|#define SCTP_SORECV_DONE            86
  ------------------
 7143|      0|			               freed_so_far,
 7144|       |#if defined(__APPLE__) && !defined(__Userspace__)
 7145|       |#if defined(APPLE_LEOPARD)
 7146|       |			               ((uio) ? (slen - uio->uio_resid) : slen),
 7147|       |#else
 7148|       |			               ((uio) ? (slen - uio_resid(uio)) : slen),
 7149|       |#endif
 7150|       |#else
 7151|      0|			               (uint32_t)((uio) ? (slen - uio->uio_resid) : slen),
  ------------------
  |  Branch (7151:30): [True: 0, False: 0]
  ------------------
 7152|      0|#endif
 7153|      0|			               stcb->asoc.my_rwnd,
 7154|      0|			               SCTP_SBAVAIL(&so->so_rcv));
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 7155|      0|		} else {
 7156|      0|			sctp_misc_ints(SCTP_SORECV_DONE,
  ------------------
  |  |  190|      0|#define SCTP_SORECV_DONE            86
  ------------------
 7157|      0|			               freed_so_far,
 7158|       |#if defined(__APPLE__) && !defined(__Userspace__)
 7159|       |#if defined(APPLE_LEOPARD)
 7160|       |			               ((uio) ? (slen - uio->uio_resid) : slen),
 7161|       |#else
 7162|       |			               ((uio) ? (slen - uio_resid(uio)) : slen),
 7163|       |#endif
 7164|       |#else
 7165|      0|			               (uint32_t)((uio) ? (slen - uio->uio_resid) : slen),
  ------------------
  |  Branch (7165:30): [True: 0, False: 0]
  ------------------
 7166|      0|#endif
 7167|      0|			               0,
 7168|      0|			               SCTP_SBAVAIL(&so->so_rcv));
  ------------------
  |  |  968|      0|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
 7169|      0|		}
 7170|      0|	}
 7171|   499k| stage_left:
 7172|   499k|	if (wakeup_read_socket) {
  ------------------
  |  Branch (7172:6): [True: 0, False: 499k]
  ------------------
 7173|      0|		sctp_sorwakeup(inp, so);
  ------------------
  |  | 1032|      0|#define sctp_sorwakeup(inp, so) \
  |  | 1033|      0|do { \
  |  | 1034|      0|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|      0|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 0]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|      0|	} else { \
  |  | 1037|      0|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|      0|#define	sorwakeup(so) do {						\
  |  |  |  |  520|      0|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|      0|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|      0|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|      0|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|      0|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|      0|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|      0|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|      0|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|      0|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|      0|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|      0|	else								\
  |  |  |  |  |  |  516|      0|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  517|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|      0|	} \
  |  | 1039|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 7174|      0|	}
 7175|   499k|	return (error);
 7176|   499k|}
sctp_hashinit_flags:
 7391|  20.3k|{
 7392|  20.3k|	long hashsize;
 7393|  20.3k|	LIST_HEAD(generic, generic) *hashtbl;
 7394|  20.3k|	int i;
 7395|       |
 7396|  20.3k|	if (elements <= 0) {
  ------------------
  |  Branch (7396:6): [True: 0, False: 20.3k]
  ------------------
 7397|      0|		SCTP_PRINTF("hashinit: bad elements?");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7398|      0|#ifdef INVARIANTS
 7399|      0|		return (NULL);
 7400|       |#else
 7401|       |		elements = 1;
 7402|       |#endif
 7403|      0|	}
 7404|   172k|	for (hashsize = 1; hashsize <= elements; hashsize <<= 1)
  ------------------
  |  Branch (7404:21): [True: 152k, False: 20.3k]
  ------------------
 7405|   152k|		continue;
 7406|  20.3k|	hashsize >>= 1;
 7407|       |	/*cannot use MALLOC here because it has to be declared or defined
 7408|       |	  using MALLOC_DECLARE or MALLOC_DEFINE first. */
 7409|  20.3k|	if (flags & HASH_WAITOK)
  ------------------
  |  |  762|  20.3k|#define HASH_WAITOK 0x00000002
  ------------------
  |  Branch (7409:6): [True: 0, False: 20.3k]
  ------------------
 7410|      0|		hashtbl = malloc((u_long)hashsize * sizeof(*hashtbl));
 7411|  20.3k|	else if (flags & HASH_NOWAIT)
  ------------------
  |  |  761|  20.3k|#define HASH_NOWAIT 0x00000001
  ------------------
  |  Branch (7411:11): [True: 20.3k, False: 0]
  ------------------
 7412|  20.3k|		hashtbl = malloc((u_long)hashsize * sizeof(*hashtbl));
 7413|      0|	else {
 7414|      0|#ifdef INVARIANTS
 7415|      0|		SCTP_PRINTF("flag incorrect in hashinit_flags.\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7416|      0|#endif
 7417|      0|		return (NULL);
 7418|      0|	}
 7419|       |
 7420|       |	/* no memory? */
 7421|  20.3k|	if (hashtbl == NULL)
  ------------------
  |  Branch (7421:6): [True: 0, False: 20.3k]
  ------------------
 7422|      0|		return (NULL);
 7423|       |
 7424|  2.96M|	for (i = 0; i < hashsize; i++)
  ------------------
  |  Branch (7424:14): [True: 2.94M, False: 20.3k]
  ------------------
 7425|       |		LIST_INIT(&hashtbl[i]);
  ------------------
  |  Branch (7425:3): [Folded, False: 2.94M]
  ------------------
 7426|  20.3k|	*hashmask = hashsize - 1;
 7427|  20.3k|	return (hashtbl);
 7428|  20.3k|}
sctp_hashdestroy:
 7432|  20.3k|{
 7433|  20.3k|	LIST_HEAD(generic, generic) *hashtbl, *hp;
 7434|       |
 7435|  20.3k|	hashtbl = vhashtbl;
 7436|  2.94M|	for (hp = hashtbl; hp <= &hashtbl[hashmask]; hp++)
  ------------------
  |  Branch (7436:21): [True: 2.92M, False: 20.3k]
  ------------------
 7437|  2.92M|		if (!LIST_EMPTY(hp)) {
  ------------------
  |  Branch (7437:7): [True: 0, False: 2.92M]
  ------------------
 7438|      0|			SCTP_PRINTF("hashdestroy: hash not empty.\n");
  ------------------
  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7439|      0|			return;
 7440|      0|		}
 7441|  20.3k|	FREE(hashtbl, type);
  ------------------
  |  |  191|  20.3k|#define	FREE(addr, type) free((addr))
  ------------------
 7442|  20.3k|}
sctp_set_state:
 8685|  33.8k|{
 8686|       |#if defined(KDTRACE_HOOKS)
 8687|       |	int old_state = stcb->asoc.state;
 8688|       |#endif
 8689|       |
 8690|  33.8k|	KASSERT((new_state & ~SCTP_STATE_MASK) == 0,
  ------------------
  |  |  112|  33.8k|	do {                         \
  |  |  113|  33.8k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 33.8k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  33.8k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 33.8k]
  |  |  ------------------
  ------------------
 8691|  33.8k|	        ("sctp_set_state: Can't set substate (new_state = %x)",
 8692|  33.8k|	        new_state));
 8693|  33.8k|	stcb->asoc.state = (stcb->asoc.state & ~SCTP_STATE_MASK) | new_state;
  ------------------
  |  |  469|  33.8k|#define SCTP_STATE_MASK			0x007f
  ------------------
 8694|  33.8k|	if ((new_state == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  461|  33.8k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (8694:6): [True: 103, False: 33.7k]
  ------------------
 8695|  33.7k|	    (new_state == SCTP_STATE_SHUTDOWN_SENT) ||
  ------------------
  |  |  460|  33.7k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (8695:6): [True: 0, False: 33.7k]
  ------------------
 8696|  33.7k|	    (new_state == SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|  33.7k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (8696:6): [True: 53, False: 33.6k]
  ------------------
 8697|    156|		SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_SHUTDOWN_PENDING);
  ------------------
  |  |  476|    156|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 8698|    156|	}
 8699|       |#if defined(KDTRACE_HOOKS)
 8700|       |	if (((old_state & SCTP_STATE_MASK) != new_state) &&
 8701|       |	    !(((old_state & SCTP_STATE_MASK) == SCTP_STATE_EMPTY) &&
 8702|       |	      (new_state == SCTP_STATE_INUSE))) {
 8703|       |		SCTP_PROBE6(state__change, NULL, stcb, NULL, stcb, NULL, old_state);
 8704|       |	}
 8705|       |#endif
 8706|  33.8k|}
sctp_add_substate:
 8710|  20.3k|{
 8711|       |#if defined(KDTRACE_HOOKS)
 8712|       |	int old_state = stcb->asoc.state;
 8713|       |#endif
 8714|       |
 8715|  20.3k|	KASSERT((substate & SCTP_STATE_MASK) == 0,
  ------------------
  |  |  112|  20.3k|	do {                         \
  |  |  113|  20.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 20.3k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  20.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 20.3k]
  |  |  ------------------
  ------------------
 8716|  20.3k|	        ("sctp_add_substate: Can't set state (substate = %x)",
 8717|  20.3k|	        substate));
 8718|  20.3k|	stcb->asoc.state |= substate;
 8719|       |#if defined(KDTRACE_HOOKS)
 8720|       |	if (((substate & SCTP_STATE_ABOUT_TO_BE_FREED) &&
 8721|       |	     ((old_state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0)) ||
 8722|       |	    ((substate & SCTP_STATE_SHUTDOWN_PENDING) &&
 8723|       |	     ((old_state & SCTP_STATE_SHUTDOWN_PENDING) == 0))) {
 8724|       |		SCTP_PROBE6(state__change, NULL, stcb, NULL, stcb, NULL, old_state);
 8725|       |	}
 8726|       |#endif
 8727|  20.3k|}
sctputil.c:sctp_notify_assoc_change:
 3245|  6.83k|{
 3246|  6.83k|	struct mbuf *m_notify;
 3247|  6.83k|	struct sctp_assoc_change *sac;
 3248|  6.83k|	struct sctp_queued_to_read *control;
 3249|  6.83k|	struct sctp_inpcb *inp;
 3250|  6.83k|	unsigned int notif_len;
 3251|  6.83k|	unsigned int i;
 3252|  6.83k|	uint16_t abort_len;
 3253|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3254|       |	struct socket *so;
 3255|       |#endif
 3256|       |
 3257|  6.83k|	KASSERT(abort == NULL || from_peer,
  ------------------
  |  |  112|  6.83k|	do {                         \
  |  |  113|  6.91k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 6.75k, False: 78]
  |  |  |  Branch (113:9): [True: 78, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.83k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  ------------------
  ------------------
 3258|  6.83k|	        ("sctp_notify_assoc_change: ABORT chunk provided for local termination"));
 3259|  6.83k|	KASSERT(!from_peer || !timedout,
  ------------------
  |  |  112|  6.83k|	do {                         \
  |  |  113|  6.91k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 6.75k, False: 78]
  |  |  |  Branch (113:9): [True: 78, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.83k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  ------------------
  ------------------
 3260|  6.83k|	        ("sctp_notify_assoc_change: timeouts can only be local"));
 3261|  6.83k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  6.83k|	do {                         \
  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  6.83k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  ------------------
  ------------------
 3262|  6.83k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.83k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.83k|	do {                         \
  |  |  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.83k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3263|  6.83k|	inp = stcb->sctp_ep;
 3264|  6.83k|	SCTP_INP_READ_LOCK_ASSERT(inp);
  ------------------
  |  |  356|  6.83k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.83k|	do {                         \
  |  |  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  6.83k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3265|       |
 3266|  6.83k|	if (sctp_stcb_is_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVASSOCEVNT)) {
  ------------------
  |  |   70|  6.83k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 6.83k, False: 0]
  |  |  ------------------
  |  |   71|  6.83k|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 6.83k, False: 0]
  |  |  ------------------
  |  |   72|  6.83k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 0]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|      0|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3267|  6.83k|		notif_len = (unsigned int)sizeof(struct sctp_assoc_change);
 3268|  6.83k|		if (abort != NULL) {
  ------------------
  |  Branch (3268:7): [True: 78, False: 6.75k]
  ------------------
 3269|     78|			abort_len = ntohs(abort->ch.chunk_length);
 3270|       |			/*
 3271|       |			 * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be
 3272|       |			 * contiguous.
 3273|       |			 */
 3274|     78|			if (abort_len > SCTP_CHUNK_BUFFER_SIZE) {
  ------------------
  |  |  689|     78|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
  |  Branch (3274:8): [True: 3, False: 75]
  ------------------
 3275|      3|				abort_len = SCTP_CHUNK_BUFFER_SIZE;
  ------------------
  |  |  689|      3|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
 3276|      3|			}
 3277|  6.75k|		} else {
 3278|  6.75k|			abort_len = 0;
 3279|  6.75k|		}
 3280|  6.83k|		if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  327|  6.83k|#define SCTP_COMM_UP            0x0001
  ------------------
              		if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  329|  1.66k|#define SCTP_RESTART            0x0003
  ------------------
  |  Branch (3280:7): [True: 5.17k, False: 1.66k]
  |  Branch (3280:34): [True: 0, False: 1.66k]
  ------------------
 3281|  5.17k|			notif_len += SCTP_ASSOC_SUPPORTS_MAX;
  ------------------
  |  |  340|  5.17k|#define SCTP_ASSOC_SUPPORTS_MAX			0x06
  ------------------
 3282|  5.17k|		} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  328|  1.66k|#define SCTP_COMM_LOST          0x0002
  ------------------
              		} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  331|    669|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3282:14): [True: 995, False: 669]
  |  Branch (3282:43): [True: 667, False: 2]
  ------------------
 3283|  1.66k|			notif_len += abort_len;
 3284|  1.66k|		}
 3285|  6.83k|		m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  6.83k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  6.83k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3286|  6.83k|		if (m_notify == NULL) {
  ------------------
  |  Branch (3286:7): [True: 0, False: 6.83k]
  ------------------
 3287|       |			/* Retry with smaller value. */
 3288|      0|			notif_len = (unsigned int)sizeof(struct sctp_assoc_change);
 3289|      0|			m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3290|      0|			if (m_notify == NULL) {
  ------------------
  |  Branch (3290:8): [True: 0, False: 0]
  ------------------
 3291|      0|				goto set_error;
 3292|      0|			}
 3293|      0|		}
 3294|  6.83k|		SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  6.83k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  6.83k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3295|  6.83k|		sac = mtod(m_notify, struct sctp_assoc_change *);
  ------------------
  |  |   96|  6.83k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  6.83k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3296|  6.83k|		memset(sac, 0, notif_len);
 3297|  6.83k|		sac->sac_type = SCTP_ASSOC_CHANGE;
  ------------------
  |  |  553|  6.83k|#define SCTP_ASSOC_CHANGE                       0x0001
  ------------------
 3298|  6.83k|		sac->sac_flags = 0;
 3299|  6.83k|		sac->sac_length = sizeof(struct sctp_assoc_change);
 3300|  6.83k|		sac->sac_state = state;
 3301|  6.83k|		sac->sac_error = error;
 3302|  6.83k|		if (state == SCTP_CANT_STR_ASSOC) {
  ------------------
  |  |  331|  6.83k|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3302:7): [True: 667, False: 6.16k]
  ------------------
 3303|    667|			sac->sac_outbound_streams = 0;
 3304|    667|			sac->sac_inbound_streams = 0;
 3305|  6.16k|		} else {
 3306|  6.16k|			sac->sac_outbound_streams = stcb->asoc.streamoutcnt;
 3307|  6.16k|			sac->sac_inbound_streams = stcb->asoc.streamincnt;
 3308|  6.16k|		}
 3309|  6.83k|		sac->sac_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  6.83k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3310|  6.83k|		if (notif_len > sizeof(struct sctp_assoc_change)) {
  ------------------
  |  Branch (3310:7): [True: 5.24k, False: 1.58k]
  ------------------
 3311|  5.24k|			if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  327|  5.24k|#define SCTP_COMM_UP            0x0001
  ------------------
              			if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  329|     78|#define SCTP_RESTART            0x0003
  ------------------
  |  Branch (3311:8): [True: 5.17k, False: 78]
  |  Branch (3311:35): [True: 0, False: 78]
  ------------------
 3312|  5.17k|				i = 0;
 3313|  5.17k|				if (stcb->asoc.prsctp_supported == 1) {
  ------------------
  |  Branch (3313:9): [True: 5.16k, False: 6]
  ------------------
 3314|  5.16k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_PR;
  ------------------
  |  |  334|  5.16k|#define SCTP_ASSOC_SUPPORTS_PR			0x01
  ------------------
 3315|  5.16k|				}
 3316|  5.17k|				if (stcb->asoc.auth_supported == 1) {
  ------------------
  |  Branch (3316:9): [True: 5.17k, False: 0]
  ------------------
 3317|  5.17k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_AUTH;
  ------------------
  |  |  335|  5.17k|#define SCTP_ASSOC_SUPPORTS_AUTH		0x02
  ------------------
 3318|  5.17k|				}
 3319|  5.17k|				if (stcb->asoc.asconf_supported == 1) {
  ------------------
  |  Branch (3319:9): [True: 5.16k, False: 5]
  ------------------
 3320|  5.16k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_ASCONF;
  ------------------
  |  |  336|  5.16k|#define SCTP_ASSOC_SUPPORTS_ASCONF		0x03
  ------------------
 3321|  5.16k|				}
 3322|  5.17k|				if (stcb->asoc.idata_supported == 1) {
  ------------------
  |  Branch (3322:9): [True: 2.62k, False: 2.54k]
  ------------------
 3323|  2.62k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_INTERLEAVING;
  ------------------
  |  |  339|  2.62k|#define SCTP_ASSOC_SUPPORTS_INTERLEAVING	0x06
  ------------------
 3324|  2.62k|				}
 3325|  5.17k|				sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_MULTIBUF;
  ------------------
  |  |  337|  5.17k|#define SCTP_ASSOC_SUPPORTS_MULTIBUF		0x04
  ------------------
 3326|  5.17k|				if (stcb->asoc.reconfig_supported == 1) {
  ------------------
  |  Branch (3326:9): [True: 5.17k, False: 0]
  ------------------
 3327|  5.17k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_RE_CONFIG;
  ------------------
  |  |  338|  5.17k|#define SCTP_ASSOC_SUPPORTS_RE_CONFIG		0x05
  ------------------
 3328|  5.17k|				}
 3329|  5.17k|				sac->sac_length += i;
 3330|  5.17k|			} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  328|     78|#define SCTP_COMM_LOST          0x0002
  ------------------
              			} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  331|     52|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3330:15): [True: 26, False: 52]
  |  Branch (3330:44): [True: 52, False: 0]
  ------------------
 3331|     78|				memcpy(sac->sac_info, abort, abort_len);
 3332|     78|				sac->sac_length += abort_len;
 3333|     78|			}
 3334|  5.24k|		}
 3335|  6.83k|		SCTP_BUF_LEN(m_notify) = sac->sac_length;
  ------------------
  |  |  801|  6.83k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  6.83k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3336|  6.83k|		control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3337|  6.83k|		                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3338|  6.83k|		                                 m_notify);
 3339|  6.83k|		if (control != NULL) {
  ------------------
  |  Branch (3339:7): [True: 6.83k, False: 0]
  ------------------
 3340|  6.83k|			control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  6.83k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  6.83k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3341|  6.83k|			control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  6.83k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  6.83k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3342|       |			/* not that we need this */
 3343|  6.83k|			control->tail_mbuf = m_notify;
 3344|  6.83k|			sctp_add_to_readq(inp, stcb, control,
 3345|  6.83k|			                  &stcb->sctp_socket->so_rcv, 1,
 3346|  6.83k|			                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|  6.83k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3347|  6.83k|		} else {
 3348|      0|			sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3349|      0|		}
 3350|  6.83k|	}
 3351|       |	/*
 3352|       |	 * For 1-to-1 style sockets, we send up and error when an ABORT
 3353|       |	 * comes in.
 3354|       |	 */
 3355|  6.83k|set_error:
 3356|  6.83k|	if (((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  6.83k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3356:7): [True: 6.83k, False: 0]
  ------------------
 3357|      0|	     (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) &&
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (3357:7): [True: 0, False: 0]
  ------------------
 3358|  6.83k|	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  328|  6.83k|#define SCTP_COMM_LOST          0x0002
  ------------------
              	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  331|  5.84k|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3358:7): [True: 995, False: 5.84k]
  |  Branch (3358:36): [True: 667, False: 5.17k]
  ------------------
 3359|  1.66k|		SOCK_LOCK(stcb->sctp_socket);
  ------------------
  |  |  527|  1.66k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  1.66k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.66k|	do {                         \
  |  |  |  |  |  |  113|  1.66k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.66k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3360|  1.66k|		if (from_peer) {
  ------------------
  |  Branch (3360:7): [True: 78, False: 1.58k]
  ------------------
 3361|     78|			if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|     78|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     78|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|     78|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (3361:8): [True: 43, False: 35]
  ------------------
 3362|     43|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ECONNREFUSED);
 3363|     43|				stcb->sctp_socket->so_error = ECONNREFUSED;
 3364|     43|			} else {
 3365|     35|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ECONNRESET);
 3366|     35|				stcb->sctp_socket->so_error = ECONNRESET;
 3367|     35|			}
 3368|  1.58k|		} else {
 3369|  1.58k|			if (timedout) {
  ------------------
  |  Branch (3369:8): [True: 0, False: 1.58k]
  ------------------
 3370|      0|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ETIMEDOUT);
 3371|      0|				stcb->sctp_socket->so_error = ETIMEDOUT;
 3372|  1.58k|			} else {
 3373|  1.58k|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ECONNABORTED);
 3374|  1.58k|				stcb->sctp_socket->so_error = ECONNABORTED;
 3375|  1.58k|			}
 3376|  1.58k|		}
 3377|  1.66k|		SOCK_UNLOCK(stcb->sctp_socket);
  ------------------
  |  |  529|  1.66k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  1.66k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.66k|	do {                         \
  |  |  |  |  |  |  113|  1.66k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.66k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3378|  1.66k|	}
 3379|       |	/* Wake ANY sleepers */
 3380|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3381|       |	so = SCTP_INP_SO(inp);
 3382|       |	if (!so_locked) {
 3383|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 3384|       |		SCTP_TCB_UNLOCK(stcb);
 3385|       |		SCTP_SOCKET_LOCK(so, 1);
 3386|       |		SCTP_TCB_LOCK(stcb);
 3387|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 3388|       |		if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
 3389|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3390|       |			return;
 3391|       |		}
 3392|       |	}
 3393|       |#endif
 3394|  6.83k|	if (((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  6.83k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3394:7): [True: 6.83k, False: 0]
  ------------------
 3395|      0|	     (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) &&
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (3395:7): [True: 0, False: 0]
  ------------------
 3396|  6.83k|	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  328|  6.83k|#define SCTP_COMM_LOST          0x0002
  ------------------
              	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  331|  5.84k|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3396:7): [True: 995, False: 5.84k]
  |  Branch (3396:36): [True: 667, False: 5.17k]
  ------------------
 3397|  1.66k|		socantrcvmore(stcb->sctp_socket);
 3398|  1.66k|	}
 3399|  6.83k|	sorwakeup(stcb->sctp_socket);
  ------------------
  |  |  519|  6.83k|#define	sorwakeup(so) do {						\
  |  |  520|  6.83k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  ------------------
  |  |  |  |  517|  6.83k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  6.83k|	do {                         \
  |  |  |  |  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  6.83k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  521|  6.83k|	sorwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  511|  6.83k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  512|  6.83k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  6.83k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  6.83k|	do {                         \
  |  |  |  |  |  |  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  6.83k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  513|  6.83k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  6.83k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  6.83k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|  6.83k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  6.83k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 6.83k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  6.83k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  6.83k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  6.83k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  6.83k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  514|  6.83k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  515|  6.83k|	else								\
  |  |  |  |  516|  6.83k|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  517|  6.83k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (517:10): [Folded, False: 6.83k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  522|  6.83k|} while (0)
  |  |  ------------------
  |  |  |  Branch (522:10): [Folded, False: 6.83k]
  |  |  ------------------
  ------------------
 3400|  6.83k|	sowwakeup(stcb->sctp_socket);
  ------------------
  |  |  532|  6.83k|#define	sowwakeup(so) do {						\
  |  |  533|  6.83k|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  ------------------
  |  |  |  |  517|  6.83k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  6.83k|	do {                         \
  |  |  |  |  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  6.83k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  534|  6.83k|	sowwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  524|  6.83k|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  525|  6.83k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  6.83k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  6.83k|	do {                         \
  |  |  |  |  |  |  |  |  113|  6.83k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.83k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  6.83k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 6.83k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  526|  6.83k|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  6.83k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  6.83k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|  6.83k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  6.83k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 6.83k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  6.83k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  6.83k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  6.83k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  6.83k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  527|  6.83k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  528|  6.83k|	else								\
  |  |  |  |  529|  6.83k|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  530|  6.83k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (530:10): [Folded, False: 6.83k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  535|  6.83k|} while (0)
  |  |  ------------------
  |  |  |  Branch (535:10): [Folded, False: 6.83k]
  |  |  ------------------
  ------------------
 3401|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3402|       |	if (!so_locked) {
 3403|       |		SCTP_SOCKET_UNLOCK(so, 1);
 3404|       |	}
 3405|       |#endif
 3406|  6.83k|}
sctputil.c:sctp_notify_adaptation_layer:
 3745|  5.17k|{
 3746|  5.17k|	struct mbuf *m_notify;
 3747|  5.17k|	struct sctp_adaptation_event *sai;
 3748|  5.17k|	struct sctp_queued_to_read *control;
 3749|       |
 3750|  5.17k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  5.17k|	do {                         \
  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.17k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  ------------------
  ------------------
 3751|  5.17k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.17k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3752|  5.17k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  5.17k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3753|       |
 3754|  5.17k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_ADAPTATIONEVNT)) {
  ------------------
  |  |   75|  5.17k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 5.17k, False: 0]
  |  |  ------------------
  |  |   76|  5.17k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 5.17k]
  |  |  ------------------
  |  |   77|  5.17k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 5.17k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|  5.17k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  5.17k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 5.17k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3755|       |		/* event not enabled */
 3756|      0|		return;
 3757|      0|	}
 3758|       |
 3759|  5.17k|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_adaption_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  5.17k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_adaption_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  5.17k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3760|  5.17k|	if (m_notify == NULL)
  ------------------
  |  Branch (3760:6): [True: 0, False: 5.17k]
  ------------------
 3761|       |		/* no space left */
 3762|      0|		return;
 3763|  5.17k|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|  5.17k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.17k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3764|  5.17k|	sai = mtod(m_notify, struct sctp_adaptation_event *);
  ------------------
  |  |   96|  5.17k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.17k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3765|  5.17k|	memset(sai, 0, sizeof(struct sctp_adaptation_event));
 3766|  5.17k|	sai->sai_type = SCTP_ADAPTATION_INDICATION;
  ------------------
  |  |  558|  5.17k|#define SCTP_ADAPTATION_INDICATION              0x0006
  ------------------
 3767|  5.17k|	sai->sai_flags = 0;
 3768|  5.17k|	sai->sai_length = sizeof(struct sctp_adaptation_event);
 3769|  5.17k|	sai->sai_adaptation_ind = stcb->asoc.peers_adaptation;
 3770|  5.17k|	sai->sai_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  5.17k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3771|       |
 3772|  5.17k|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_adaptation_event);
  ------------------
  |  |  801|  5.17k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.17k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3773|  5.17k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  5.17k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  5.17k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3774|       |
 3775|       |	/* append to socket */
 3776|  5.17k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3777|  5.17k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3778|  5.17k|	                                 m_notify);
 3779|  5.17k|	if (control == NULL) {
  ------------------
  |  Branch (3779:6): [True: 0, False: 5.17k]
  ------------------
 3780|       |		/* no memory */
 3781|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3782|      0|		return;
 3783|      0|	}
 3784|  5.17k|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  5.17k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.17k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3785|  5.17k|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  5.17k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  5.17k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3786|       |	/* not that we need this */
 3787|  5.17k|	control->tail_mbuf = m_notify;
 3788|  5.17k|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3789|  5.17k|	                  &stcb->sctp_socket->so_rcv, 1,
 3790|  5.17k|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|  5.17k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3791|  5.17k|}
sctputil.c:sctp_notify_peer_addr_change:
 3411|  84.1k|{
 3412|  84.1k|	struct mbuf *m_notify;
 3413|  84.1k|	struct sctp_paddr_change *spc;
 3414|  84.1k|	struct sctp_queued_to_read *control;
 3415|       |
 3416|  84.1k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  84.1k|	do {                         \
  |  |  113|  84.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 84.1k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  84.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 84.1k]
  |  |  ------------------
  ------------------
 3417|  84.1k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  84.1k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  84.1k|	do {                         \
  |  |  |  |  113|  84.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 84.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  84.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 84.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3418|  84.1k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  84.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  84.1k|	do {                         \
  |  |  |  |  113|  84.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 84.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  84.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 84.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3419|       |
 3420|  84.1k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVPADDREVNT)) {
  ------------------
  |  |   75|  84.1k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 84.1k, False: 0]
  |  |  ------------------
  |  |   76|  84.1k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 84.1k]
  |  |  ------------------
  |  |   77|  84.1k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 84.1k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|  84.1k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  84.1k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 84.1k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3421|       |		/* event not enabled */
 3422|      0|		return;
 3423|      0|	}
 3424|       |
 3425|  84.1k|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_paddr_change), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  84.1k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_paddr_change), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  84.1k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3426|  84.1k|	if (m_notify == NULL)
  ------------------
  |  Branch (3426:6): [True: 0, False: 84.1k]
  ------------------
 3427|      0|		return;
 3428|  84.1k|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|  84.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  84.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3429|  84.1k|	spc = mtod(m_notify, struct sctp_paddr_change *);
  ------------------
  |  |   96|  84.1k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  84.1k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3430|  84.1k|	memset(spc, 0, sizeof(struct sctp_paddr_change));
 3431|  84.1k|	spc->spc_type = SCTP_PEER_ADDR_CHANGE;
  ------------------
  |  |  554|  84.1k|#define SCTP_PEER_ADDR_CHANGE                   0x0002
  ------------------
 3432|  84.1k|	spc->spc_flags = 0;
 3433|  84.1k|	spc->spc_length = sizeof(struct sctp_paddr_change);
 3434|  84.1k|	switch (sa->sa_family) {
 3435|      0|#ifdef INET
 3436|  76.8k|	case AF_INET:
  ------------------
  |  Branch (3436:2): [True: 76.8k, False: 7.29k]
  ------------------
 3437|  76.8k|#ifdef INET6
 3438|  76.8k|		if (sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_NEEDS_MAPPED_V4)) {
  ------------------
  |  |   52|  76.8k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 76.8k]
  |  |  ------------------
  ------------------
 3439|      0|			in6_sin_2_v4mapsin6((struct sockaddr_in *)sa,
 3440|      0|			                    (struct sockaddr_in6 *)&spc->spc_aaddr);
 3441|  76.8k|		} else {
 3442|  76.8k|			memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_in));
 3443|  76.8k|		}
 3444|       |#else
 3445|       |		memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_in));
 3446|       |#endif
 3447|  76.8k|		break;
 3448|      0|#endif
 3449|      0|#ifdef INET6
 3450|  6.73k|	case AF_INET6:
  ------------------
  |  Branch (3450:2): [True: 6.73k, False: 77.3k]
  ------------------
 3451|  6.73k|	{
 3452|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 3453|       |		struct sockaddr_in6 *sin6;
 3454|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 3455|  6.73k|		memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_in6));
 3456|       |
 3457|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 3458|       |		sin6 = (struct sockaddr_in6 *)&spc->spc_aaddr;
 3459|       |		if (IN6_IS_SCOPE_LINKLOCAL(&sin6->sin6_addr)) {
 3460|       |			if (sin6->sin6_scope_id == 0) {
 3461|       |				/* recover scope_id for user */
 3462|       |#ifdef SCTP_KAME
 3463|       |				(void)sa6_recoverscope(sin6);
 3464|       |#else
 3465|       |				(void)in6_recoverscope(sin6, &sin6->sin6_addr,
 3466|       |				                       NULL);
 3467|       |#endif
 3468|       |			} else {
 3469|       |				/* clear embedded scope_id for user */
 3470|       |				in6_clearscope(&sin6->sin6_addr);
 3471|       |			}
 3472|       |		}
 3473|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 3474|  6.73k|		break;
 3475|      0|	}
 3476|      0|#endif
 3477|      0|#if defined(__Userspace__)
 3478|    558|	case AF_CONN:
  ------------------
  |  | 1014|    558|#define AF_CONN 123
  ------------------
  |  Branch (3478:2): [True: 558, False: 83.5k]
  ------------------
 3479|    558|		memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_conn));
 3480|    558|		break;
 3481|      0|#endif
 3482|      0|	default:
  ------------------
  |  Branch (3482:2): [True: 0, False: 84.1k]
  ------------------
 3483|       |		/* TSNH */
 3484|      0|		break;
 3485|  84.1k|	}
 3486|  84.1k|	spc->spc_state = state;
 3487|  84.1k|	spc->spc_error = error;
 3488|  84.1k|	spc->spc_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  84.1k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3489|       |
 3490|  84.1k|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_paddr_change);
  ------------------
  |  |  801|  84.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  84.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3491|  84.1k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  84.1k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  84.1k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3492|       |
 3493|       |	/* append to socket */
 3494|  84.1k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3495|  84.1k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3496|  84.1k|	                                 m_notify);
 3497|  84.1k|	if (control == NULL) {
  ------------------
  |  Branch (3497:6): [True: 0, False: 84.1k]
  ------------------
 3498|       |		/* no memory */
 3499|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3500|      0|		return;
 3501|      0|	}
 3502|  84.1k|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  84.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  84.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3503|  84.1k|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  84.1k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  84.1k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3504|       |	/* not that we need this */
 3505|  84.1k|	control->tail_mbuf = m_notify;
 3506|  84.1k|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3507|  84.1k|	                  &stcb->sctp_socket->so_rcv, 1,
 3508|  84.1k|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|  84.1k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3509|  84.1k|}
sctputil.c:sctp_notify_send_failed2:
 3646|    560|{
 3647|    560|	struct mbuf *m_notify;
 3648|    560|	struct sctp_send_failed *ssf;
 3649|    560|	struct sctp_send_failed_event *ssfe;
 3650|    560|	struct sctp_queued_to_read *control;
 3651|    560|	int notifhdr_len;
 3652|       |
 3653|    560|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    560|	do {                         \
  |  |  113|    560|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 560]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    560|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 560]
  |  |  ------------------
  ------------------
 3654|    560|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    560|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    560|	do {                         \
  |  |  |  |  113|    560|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 560]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    560|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 560]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3655|    560|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    560|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    560|	do {                         \
  |  |  |  |  113|    560|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 560]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    560|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 560]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3656|       |
 3657|    560|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVSENDFAILEVNT) &&
  ------------------
  |  |   75|  1.12k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 560, False: 0]
  |  |  ------------------
  |  |   76|    560|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 560]
  |  |  ------------------
  |  |   77|    560|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 560]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    560|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  1.12k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 560]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3658|      0|	    sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   75|      0|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   76|      0|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   77|      0|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 0]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|      0|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|      0|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 0]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3659|       |		/* event not enabled */
 3660|      0|		return;
 3661|      0|	}
 3662|       |
 3663|    560|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    560|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 560, False: 0]
  |  |  ------------------
  |  |   71|    560|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 560, False: 0]
  |  |  ------------------
  |  |   72|    560|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 0]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|      0|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3664|    560|		notifhdr_len = sizeof(struct sctp_send_failed_event);
 3665|    560|	} else {
 3666|      0|		notifhdr_len = sizeof(struct sctp_send_failed);
 3667|      0|	}
 3668|    560|	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    560|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    560|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3669|    560|	if (m_notify == NULL) {
  ------------------
  |  Branch (3669:6): [True: 0, False: 560]
  ------------------
 3670|       |		/* no space left */
 3671|      0|		return;
 3672|      0|	}
 3673|    560|	SCTP_BUF_LEN(m_notify) = notifhdr_len;
  ------------------
  |  |  801|    560|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    560|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3674|    560|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    560|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 560, False: 0]
  |  |  ------------------
  |  |   71|    560|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 560, False: 0]
  |  |  ------------------
  |  |   72|    560|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 0]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|      0|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3675|    560|		ssfe = mtod(m_notify, struct sctp_send_failed_event *);
  ------------------
  |  |   96|    560|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    560|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3676|    560|		memset(ssfe, 0, notifhdr_len);
 3677|    560|		ssfe->ssfe_type = SCTP_SEND_FAILED_EVENT;
  ------------------
  |  |  568|    560|#define SCTP_SEND_FAILED_EVENT                  0x000e
  ------------------
 3678|    560|		ssfe->ssfe_flags = SCTP_DATA_UNSENT;
  ------------------
  |  |  400|    560|#define SCTP_DATA_UNSENT	0x0001	/* inqueue never on wire */
  ------------------
 3679|    560|		ssfe->ssfe_length = (uint32_t)(notifhdr_len + sp->length);
 3680|    560|		ssfe->ssfe_error = error;
 3681|       |		/* not exactly what the user sent in, but should be close :) */
 3682|    560|		ssfe->ssfe_info.snd_sid = sp->sid;
 3683|    560|		if (sp->some_taken) {
  ------------------
  |  Branch (3683:7): [True: 0, False: 560]
  ------------------
 3684|      0|			ssfe->ssfe_info.snd_flags = SCTP_DATA_LAST_FRAG;
  ------------------
  |  |  512|      0|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
 3685|    560|		} else {
 3686|    560|			ssfe->ssfe_info.snd_flags = SCTP_DATA_NOT_FRAG;
  ------------------
  |  |  514|    560|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
 3687|    560|		}
 3688|    560|		ssfe->ssfe_info.snd_ppid = sp->ppid;
 3689|    560|		ssfe->ssfe_info.snd_context = sp->context;
 3690|    560|		ssfe->ssfe_info.snd_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    560|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3691|    560|		ssfe->ssfe_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    560|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3692|    560|	} else {
 3693|      0|		ssf = mtod(m_notify, struct sctp_send_failed *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3694|      0|		memset(ssf, 0, notifhdr_len);
 3695|      0|		ssf->ssf_type = SCTP_SEND_FAILED;
  ------------------
  |  |  556|      0|#define SCTP_SEND_FAILED                        0x0004
  ------------------
 3696|      0|		ssf->ssf_flags = SCTP_DATA_UNSENT;
  ------------------
  |  |  400|      0|#define SCTP_DATA_UNSENT	0x0001	/* inqueue never on wire */
  ------------------
 3697|      0|		ssf->ssf_length = (uint32_t)(notifhdr_len + sp->length);
 3698|      0|		ssf->ssf_error = error;
 3699|       |		/* not exactly what the user sent in, but should be close :) */
 3700|      0|		ssf->ssf_info.sinfo_stream = sp->sid;
 3701|      0|		ssf->ssf_info.sinfo_ssn = 0;
 3702|      0|		if (sp->some_taken) {
  ------------------
  |  Branch (3702:7): [True: 0, False: 0]
  ------------------
 3703|      0|			ssf->ssf_info.sinfo_flags = SCTP_DATA_LAST_FRAG;
  ------------------
  |  |  512|      0|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
 3704|      0|		} else {
 3705|      0|			ssf->ssf_info.sinfo_flags = SCTP_DATA_NOT_FRAG;
  ------------------
  |  |  514|      0|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
 3706|      0|		}
 3707|      0|		ssf->ssf_info.sinfo_ppid = sp->ppid;
 3708|      0|		ssf->ssf_info.sinfo_context = sp->context;
 3709|      0|		ssf->ssf_info.sinfo_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|      0|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3710|      0|		ssf->ssf_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|      0|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3711|      0|	}
 3712|    560|	SCTP_BUF_NEXT(m_notify) = sp->data;
  ------------------
  |  |  802|    560|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    560|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3713|       |
 3714|       |	/* Steal off the mbuf */
 3715|    560|	sp->data = NULL;
 3716|       |	/*
 3717|       |	 * For this case, we check the actual socket buffer, since the assoc
 3718|       |	 * is going away we don't want to overfill the socket buffer for a
 3719|       |	 * non-reader
 3720|       |	 */
 3721|    560|	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   91|    560|#define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |   87|    560|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    560|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 560, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    560|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |   87|    557|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    557|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 557, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    557|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  |  |  ------------------
  |  |  |  Branch (91:46): [True: 557, False: 3]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|    560|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    560|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3721:6): [True: 5, False: 555]
  ------------------
 3722|      5|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      5|#define sctp_m_freem m_freem
  ------------------
 3723|      5|		return;
 3724|      5|	}
 3725|       |	/* append to socket */
 3726|    555|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3727|    555|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3728|    555|	                                 m_notify);
 3729|    555|	if (control == NULL) {
  ------------------
  |  Branch (3729:6): [True: 0, False: 555]
  ------------------
 3730|       |		/* no memory */
 3731|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3732|      0|		return;
 3733|      0|	}
 3734|    555|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    555|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    555|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3735|    555|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    555|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    555|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3736|       |	/* not that we need this */
 3737|    555|	control->tail_mbuf = m_notify;
 3738|    555|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3739|    555|	                  &stcb->sctp_socket->so_rcv, 1,
 3740|    555|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    555|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3741|    555|}
sctputil.c:sctp_notify_send_failed:
 3514|    564|{
 3515|    564|	struct mbuf *m_notify;
 3516|    564|	struct sctp_send_failed *ssf;
 3517|    564|	struct sctp_send_failed_event *ssfe;
 3518|    564|	struct sctp_queued_to_read *control;
 3519|    564|	struct sctp_chunkhdr *chkhdr;
 3520|    564|	int notifhdr_len, chk_len, chkhdr_len, padding_len, payload_len;
 3521|       |
 3522|    564|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    564|	do {                         \
  |  |  113|    564|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 564]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    564|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 564]
  |  |  ------------------
  ------------------
 3523|    564|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    564|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    564|	do {                         \
  |  |  |  |  113|    564|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 564]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    564|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 564]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3524|    564|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    564|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    564|	do {                         \
  |  |  |  |  113|    564|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 564]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    564|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 564]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3525|       |
 3526|    564|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVSENDFAILEVNT) &&
  ------------------
  |  |   75|  1.12k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 564, False: 0]
  |  |  ------------------
  |  |   76|    564|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 564]
  |  |  ------------------
  |  |   77|    564|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 564]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    564|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  1.12k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 564]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3527|      0|	    sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   75|      0|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   76|      0|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   77|      0|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 0]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|      0|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|      0|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 0]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3528|       |		/* event not enabled */
 3529|      0|		return;
 3530|      0|	}
 3531|       |
 3532|    564|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    564|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 564, False: 0]
  |  |  ------------------
  |  |   71|    564|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 564, False: 0]
  |  |  ------------------
  |  |   72|    564|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 0]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|      0|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3533|    564|		notifhdr_len = sizeof(struct sctp_send_failed_event);
 3534|    564|	} else {
 3535|      0|		notifhdr_len = sizeof(struct sctp_send_failed);
 3536|      0|	}
 3537|    564|	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    564|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    564|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3538|    564|	if (m_notify == NULL)
  ------------------
  |  Branch (3538:6): [True: 0, False: 564]
  ------------------
 3539|       |		/* no space left */
 3540|      0|		return;
 3541|    564|	SCTP_BUF_LEN(m_notify) = notifhdr_len;
  ------------------
  |  |  801|    564|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    564|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3542|    564|	if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (3542:6): [True: 458, False: 106]
  ------------------
 3543|    458|		chkhdr_len = sizeof(struct sctp_idata_chunk);
 3544|    458|	} else {
 3545|    106|		chkhdr_len = sizeof(struct sctp_data_chunk);
 3546|    106|	}
 3547|       |	/* Use some defaults in case we can't access the chunk header */
 3548|    564|	if (chk->send_size >= chkhdr_len) {
  ------------------
  |  Branch (3548:6): [True: 564, False: 0]
  ------------------
 3549|    564|		payload_len = chk->send_size - chkhdr_len;
 3550|    564|	} else {
 3551|      0|		payload_len = 0;
 3552|      0|	}
 3553|    564|	padding_len = 0;
 3554|    564|	if (chk->data != NULL) {
  ------------------
  |  Branch (3554:6): [True: 564, False: 0]
  ------------------
 3555|    564|		chkhdr = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    564|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    564|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3556|    564|		if (chkhdr != NULL) {
  ------------------
  |  Branch (3556:7): [True: 564, False: 0]
  ------------------
 3557|    564|			chk_len = ntohs(chkhdr->chunk_length);
 3558|    564|			if ((chk_len >= chkhdr_len) &&
  ------------------
  |  Branch (3558:8): [True: 564, False: 0]
  ------------------
 3559|    564|			    (chk->send_size >= chk_len) &&
  ------------------
  |  Branch (3559:8): [True: 564, False: 0]
  ------------------
 3560|    564|			    (chk->send_size - chk_len < 4)) {
  ------------------
  |  Branch (3560:8): [True: 564, False: 0]
  ------------------
 3561|    564|				padding_len = chk->send_size - chk_len;
 3562|    564|				payload_len = chk->send_size - chkhdr_len - padding_len;
 3563|    564|			}
 3564|    564|		}
 3565|    564|	}
 3566|    564|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    564|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 564, False: 0]
  |  |  ------------------
  |  |   71|    564|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 564, False: 0]
  |  |  ------------------
  |  |   72|    564|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 0]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|      0|	  ((inp->sctp_features & feature) == feature)))
  |  |  ------------------
  |  |  |  Branch (73:4): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3567|    564|		ssfe = mtod(m_notify, struct sctp_send_failed_event *);
  ------------------
  |  |   96|    564|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    564|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3568|    564|		memset(ssfe, 0, notifhdr_len);
 3569|    564|		ssfe->ssfe_type = SCTP_SEND_FAILED_EVENT;
  ------------------
  |  |  568|    564|#define SCTP_SEND_FAILED_EVENT                  0x000e
  ------------------
 3570|    564|		if (sent) {
  ------------------
  |  Branch (3570:7): [True: 539, False: 25]
  ------------------
 3571|    539|			ssfe->ssfe_flags = SCTP_DATA_SENT;
  ------------------
  |  |  401|    539|#define SCTP_DATA_SENT		0x0002	/* on wire at failure */
  ------------------
 3572|    539|		} else {
 3573|     25|			ssfe->ssfe_flags = SCTP_DATA_UNSENT;
  ------------------
  |  |  400|     25|#define SCTP_DATA_UNSENT	0x0001	/* inqueue never on wire */
  ------------------
 3574|     25|		}
 3575|    564|		ssfe->ssfe_length = (uint32_t)(notifhdr_len + payload_len);
 3576|    564|		ssfe->ssfe_error = error;
 3577|       |		/* not exactly what the user sent in, but should be close :) */
 3578|    564|		ssfe->ssfe_info.snd_sid = chk->rec.data.sid;
 3579|    564|		ssfe->ssfe_info.snd_flags = chk->rec.data.rcv_flags;
 3580|    564|		ssfe->ssfe_info.snd_ppid = chk->rec.data.ppid;
 3581|    564|		ssfe->ssfe_info.snd_context = chk->rec.data.context;
 3582|    564|		ssfe->ssfe_info.snd_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    564|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3583|    564|		ssfe->ssfe_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    564|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3584|    564|	} else {
 3585|      0|		ssf = mtod(m_notify, struct sctp_send_failed *);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3586|      0|		memset(ssf, 0, notifhdr_len);
 3587|      0|		ssf->ssf_type = SCTP_SEND_FAILED;
  ------------------
  |  |  556|      0|#define SCTP_SEND_FAILED                        0x0004
  ------------------
 3588|      0|		if (sent) {
  ------------------
  |  Branch (3588:7): [True: 0, False: 0]
  ------------------
 3589|      0|			ssf->ssf_flags = SCTP_DATA_SENT;
  ------------------
  |  |  401|      0|#define SCTP_DATA_SENT		0x0002	/* on wire at failure */
  ------------------
 3590|      0|		} else {
 3591|      0|			ssf->ssf_flags = SCTP_DATA_UNSENT;
  ------------------
  |  |  400|      0|#define SCTP_DATA_UNSENT	0x0001	/* inqueue never on wire */
  ------------------
 3592|      0|		}
 3593|      0|		ssf->ssf_length = (uint32_t)(notifhdr_len + payload_len);
 3594|      0|		ssf->ssf_error = error;
 3595|       |		/* not exactly what the user sent in, but should be close :) */
 3596|      0|		ssf->ssf_info.sinfo_stream = chk->rec.data.sid;
 3597|      0|		ssf->ssf_info.sinfo_ssn = (uint16_t)chk->rec.data.mid;
 3598|      0|		ssf->ssf_info.sinfo_flags = chk->rec.data.rcv_flags;
 3599|      0|		ssf->ssf_info.sinfo_ppid = chk->rec.data.ppid;
 3600|      0|		ssf->ssf_info.sinfo_context = chk->rec.data.context;
 3601|      0|		ssf->ssf_info.sinfo_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|      0|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3602|      0|		ssf->ssf_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|      0|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3603|      0|	}
 3604|    564|	if (chk->data != NULL) {
  ------------------
  |  Branch (3604:6): [True: 564, False: 0]
  ------------------
 3605|       |		/* Trim off the sctp chunk header (it should be there) */
 3606|    564|		if (chk->send_size == chkhdr_len + payload_len + padding_len) {
  ------------------
  |  Branch (3606:7): [True: 564, False: 0]
  ------------------
 3607|    564|			m_adj(chk->data, chkhdr_len);
 3608|    564|			m_adj(chk->data, -padding_len);
 3609|    564|			sctp_mbuf_crush(chk->data);
  ------------------
  |  |  278|    564|#define sctp_mbuf_crush(data) do { \
  |  |  279|    564|	struct mbuf *_m; \
  |  |  280|    564|	_m = (data); \
  |  |  281|    564|	while (_m && (SCTP_BUF_LEN(_m) == 0)) { \
  |  |  ------------------
  |  |  |  |  801|    564|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|    564|#define	m_len		m_hdr.mh_len
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (281:9): [True: 564, False: 0]
  |  |  |  Branch (281:15): [True: 0, False: 564]
  |  |  ------------------
  |  |  282|      0|		(data)  = SCTP_BUF_NEXT(_m); \
  |  |  ------------------
  |  |  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  |  |  ------------------
  |  |  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  283|      0|		SCTP_BUF_NEXT(_m) = NULL; \
  |  |  ------------------
  |  |  |  |  802|      0|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  |  |  ------------------
  |  |  |  |  |  |  217|      0|#define	m_next		m_hdr.mh_next
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  284|      0|		sctp_m_free(_m); \
  |  |  ------------------
  |  |  |  |   51|      0|#define sctp_m_free m_free
  |  |  ------------------
  |  |  285|      0|		_m = (data); \
  |  |  286|      0|	} \
  |  |  287|    564|} while (0)
  |  |  ------------------
  |  |  |  Branch (287:10): [Folded, False: 564]
  |  |  ------------------
  ------------------
 3610|    564|			chk->send_size -= (chkhdr_len + padding_len);
 3611|    564|		}
 3612|    564|	}
 3613|    564|	SCTP_BUF_NEXT(m_notify) = chk->data;
  ------------------
  |  |  802|    564|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    564|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3614|       |	/* Steal off the mbuf */
 3615|    564|	chk->data = NULL;
 3616|       |	/*
 3617|       |	 * For this case, we check the actual socket buffer, since the assoc
 3618|       |	 * is going away we don't want to overfill the socket buffer for a
 3619|       |	 * non-reader
 3620|       |	 */
 3621|    564|	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   91|    564|#define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |   87|    564|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    564|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 564, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    564|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |   87|    557|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    557|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 557, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    557|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  |  |  ------------------
  |  |  |  Branch (91:46): [True: 557, False: 7]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|    564|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    564|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3621:6): [True: 11, False: 553]
  ------------------
 3622|     11|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|     11|#define sctp_m_freem m_freem
  ------------------
 3623|     11|		return;
 3624|     11|	}
 3625|       |	/* append to socket */
 3626|    553|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3627|    553|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3628|    553|	                                 m_notify);
 3629|    553|	if (control == NULL) {
  ------------------
  |  Branch (3629:6): [True: 0, False: 553]
  ------------------
 3630|       |		/* no memory */
 3631|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3632|      0|		return;
 3633|      0|	}
 3634|    553|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    553|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    553|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3635|    553|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    553|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    553|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3636|       |	/* not that we need this */
 3637|    553|	control->tail_mbuf = m_notify;
 3638|    553|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3639|    553|	                  &stcb->sctp_socket->so_rcv, 1,
 3640|    553|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    553|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3641|    553|}
sctputil.c:sctp_notify_partial_delivery_indication:
 3797|  1.26k|{
 3798|  1.26k|	struct mbuf *m_notify;
 3799|  1.26k|	struct sctp_pdapi_event *pdapi;
 3800|  1.26k|	struct sctp_queued_to_read *control;
 3801|  1.26k|	struct sockbuf *sb;
 3802|       |
 3803|  1.26k|	KASSERT(aborted_control != NULL, ("aborted_control is NULL"));
  ------------------
  |  |  112|  1.26k|	do {                         \
  |  |  113|  1.26k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.26k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  1.26k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.26k]
  |  |  ------------------
  ------------------
 3804|  1.26k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  1.26k|	do {                         \
  |  |  113|  1.26k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.26k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  1.26k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.26k]
  |  |  ------------------
  ------------------
 3805|  1.26k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.26k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.26k|	do {                         \
  |  |  |  |  113|  1.26k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.26k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.26k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.26k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3806|  1.26k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  1.26k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.26k|	do {                         \
  |  |  |  |  113|  1.26k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.26k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.26k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.26k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3807|       |
 3808|  1.26k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_PDAPIEVNT)) {
  ------------------
  |  |   75|  1.26k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 1.26k, False: 0]
  |  |  ------------------
  |  |   76|  1.26k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 1.26k]
  |  |  ------------------
  |  |   77|  1.26k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 1.26k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|  1.26k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  1.26k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 1.26k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3809|       |		/* event not enabled */
 3810|      0|		return;
 3811|      0|	}
 3812|       |
 3813|  1.26k|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_pdapi_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  1.26k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_pdapi_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  1.26k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3814|  1.26k|	if (m_notify == NULL)
  ------------------
  |  Branch (3814:6): [True: 0, False: 1.26k]
  ------------------
 3815|       |		/* no space left */
 3816|      0|		return;
 3817|  1.26k|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|  1.26k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.26k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3818|  1.26k|	pdapi = mtod(m_notify, struct sctp_pdapi_event *);
  ------------------
  |  |   96|  1.26k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.26k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3819|  1.26k|	memset(pdapi, 0, sizeof(struct sctp_pdapi_event));
 3820|  1.26k|	pdapi->pdapi_type = SCTP_PARTIAL_DELIVERY_EVENT;
  ------------------
  |  |  561|  1.26k|#define SCTP_PARTIAL_DELIVERY_EVENT             0x0007
  ------------------
 3821|  1.26k|	pdapi->pdapi_flags = 0;
 3822|  1.26k|	pdapi->pdapi_length = sizeof(struct sctp_pdapi_event);
 3823|  1.26k|	pdapi->pdapi_indication = error;
 3824|  1.26k|	pdapi->pdapi_stream = aborted_control->sinfo_stream;
 3825|  1.26k|	pdapi->pdapi_seq = (uint16_t)aborted_control->mid;
 3826|  1.26k|	pdapi->pdapi_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  1.26k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3827|       |
 3828|  1.26k|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_pdapi_event);
  ------------------
  |  |  801|  1.26k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.26k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3829|  1.26k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  1.26k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  1.26k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3830|  1.26k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3831|  1.26k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3832|  1.26k|	                                 m_notify);
 3833|  1.26k|	if (control == NULL) {
  ------------------
  |  Branch (3833:6): [True: 0, False: 1.26k]
  ------------------
 3834|       |		/* no memory */
 3835|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3836|      0|		return;
 3837|      0|	}
 3838|  1.26k|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  1.26k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.26k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3839|  1.26k|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  1.26k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  1.26k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3840|       |	/* not that we need this */
 3841|  1.26k|	control->tail_mbuf = m_notify;
 3842|  1.26k|	sb = &stcb->sctp_socket->so_rcv;
 3843|  1.26k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|  1.26k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|  1.26k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (3843:6): [True: 0, False: 1.26k]
  ------------------
 3844|      0|		sctp_sblog(sb, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBALLOC, SCTP_BUF_LEN(m_notify));
  ------------------
  |  |  157|      0|#define SCTP_LOG_SBALLOC            53
  ------------------
              		sctp_sblog(sb, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBALLOC, SCTP_BUF_LEN(m_notify));
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3844:18): [True: 0, False: 0]
  ------------------
 3845|      0|	}
 3846|  1.26k|	sctp_sballoc(stcb, sb, m_notify);
  ------------------
  |  |  256|  1.26k|#define sctp_sballoc(stcb, sb, m) { \
  |  |  257|  1.26k|	SCTP_SB_INCR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  969|  1.26k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|  1.26k|{						\
  |  |  |  |  971|  1.26k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.26k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|  1.26k|}
  |  |  ------------------
  |  |  258|  1.26k|	atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|  1.26k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  259|  1.26k|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (259:6): [True: 1.26k, False: 0]
  |  |  ------------------
  |  |  260|  1.26k|		atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |   94|  1.26k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  261|  1.26k|		atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|  1.26k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  262|  1.26k|	} \
  |  |  263|  1.26k|}
  ------------------
 3847|  1.26k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|  1.26k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|  1.26k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (3847:6): [True: 0, False: 1.26k]
  ------------------
 3848|      0|		sctp_sblog(sb, control->do_not_ref_stcb?NULL:stcb, SCTP_LOG_SBRESULT, 0);
  ------------------
  |  |  159|      0|#define SCTP_LOG_SBRESULT           55
  ------------------
  |  Branch (3848:18): [True: 0, False: 0]
  ------------------
 3849|      0|	}
 3850|  1.26k|	control->end_added = 1;
 3851|  1.26k|	TAILQ_INSERT_AFTER(&stcb->sctp_ep->read_queue, aborted_control, control, next);
  ------------------
  |  Branch (3851:2): [True: 1.21k, False: 47]
  |  Branch (3851:2): [Folded, False: 1.26k]
  ------------------
 3852|  1.26k|	if (stcb->sctp_ep && stcb->sctp_socket) {
  ------------------
  |  Branch (3852:6): [True: 1.26k, False: 0]
  |  Branch (3852:23): [True: 1.26k, False: 0]
  ------------------
 3853|       |		/* This should always be the case */
 3854|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3855|       |		struct socket *so;
 3856|       |
 3857|       |		so = SCTP_INP_SO(stcb->sctp_ep);
 3858|       |		if (!so_locked) {
 3859|       |			atomic_add_int(&stcb->asoc.refcnt, 1);
 3860|       |			SCTP_TCB_UNLOCK(stcb);
 3861|       |			SCTP_SOCKET_LOCK(so, 1);
 3862|       |			SCTP_TCB_LOCK(stcb);
 3863|       |			atomic_subtract_int(&stcb->asoc.refcnt, 1);
 3864|       |			if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
 3865|       |				SCTP_SOCKET_UNLOCK(so, 1);
 3866|       |				return;
 3867|       |			}
 3868|       |		}
 3869|       |#endif
 3870|  1.26k|		sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket);
  ------------------
  |  | 1032|  1.26k|#define sctp_sorwakeup(inp, so) \
  |  | 1033|  1.26k|do { \
  |  | 1034|  1.26k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  2.52k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 1.26k]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|  1.26k|	} else { \
  |  | 1037|  1.26k|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|  1.26k|#define	sorwakeup(so) do {						\
  |  |  |  |  520|  1.26k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.26k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  1.26k|	do {                         \
  |  |  |  |  |  |  |  |  113|  1.26k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.26k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  1.26k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.26k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|  1.26k|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|  1.26k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|  1.26k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|  1.26k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|  1.26k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|  1.26k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.26k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|  1.26k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.26k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|  1.26k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|  1.26k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|  1.26k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|  1.26k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|  1.26k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 1.26k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|  1.26k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|  1.26k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|  1.26k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|  1.26k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  1.26k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|  1.26k|	else								\
  |  |  |  |  |  |  516|  1.26k|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.26k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 1.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|  1.26k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 1.26k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|  1.26k|	} \
  |  | 1039|  1.26k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 1.26k]
  |  |  ------------------
  ------------------
 3871|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3872|       |		if (!so_locked) {
 3873|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3874|       |		}
 3875|       |#endif
 3876|  1.26k|	}
 3877|  1.26k|}
sctputil.c:sctp_notify_stream_reset:
 4121|    539|{
 4122|    539|	struct mbuf *m_notify;
 4123|    539|	struct sctp_queued_to_read *control;
 4124|    539|	struct sctp_stream_reset_event *strreset;
 4125|    539|	int len;
 4126|       |
 4127|    539|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    539|	do {                         \
  |  |  113|    539|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 539]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    539|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 539]
  |  |  ------------------
  ------------------
 4128|    539|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    539|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    539|	do {                         \
  |  |  |  |  113|    539|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 539]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    539|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 539]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4129|    539|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    539|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    539|	do {                         \
  |  |  |  |  113|    539|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 539]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    539|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 539]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4130|       |
 4131|    539|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_STREAM_RESETEVNT)) {
  ------------------
  |  |   75|    539|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 539, False: 0]
  |  |  ------------------
  |  |   76|    539|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 539]
  |  |  ------------------
  |  |   77|    539|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 539]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    539|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|    539|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 539]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4132|       |		/* event not enabled */
 4133|      0|		return;
 4134|      0|	}
 4135|       |
 4136|    539|	m_notify = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|    539|#define MCLBYTES 2048
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    539|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    539|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4137|    539|	if (m_notify == NULL)
  ------------------
  |  Branch (4137:6): [True: 0, False: 539]
  ------------------
 4138|       |		/* no space left */
 4139|      0|		return;
 4140|    539|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|    539|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    539|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4141|    539|	len = sizeof(struct sctp_stream_reset_event) + (number_entries * sizeof(uint16_t));
 4142|    539|	if (len > M_TRAILINGSPACE(m_notify)) {
  ------------------
  |  |  355|    539|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|    539|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|    539|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 539, False: 0]
  |  |  ------------------
  |  |  356|    539|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|    539|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    539|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|    539|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 539, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|    539|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    539|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|    539|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 539]
  |  |  |  |  ------------------
  |  |  |  |  328|    539|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|    539|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 539, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    539|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    539|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|    539|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|    539|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|    539|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|    539|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|      0|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (4142:6): [True: 0, False: 539]
  ------------------
 4143|       |		/* never enough room */
 4144|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4145|      0|		return;
 4146|      0|	}
 4147|    539|	strreset = mtod(m_notify, struct sctp_stream_reset_event *);
  ------------------
  |  |   96|    539|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    539|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4148|    539|	memset(strreset, 0, len);
 4149|    539|	strreset->strreset_type = SCTP_STREAM_RESET_EVENT;
  ------------------
  |  |  563|    539|#define SCTP_STREAM_RESET_EVENT                 0x0009
  ------------------
 4150|    539|	strreset->strreset_flags = flag;
 4151|    539|	strreset->strreset_length = len;
 4152|    539|	strreset->strreset_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    539|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4153|    539|	if (number_entries) {
  ------------------
  |  Branch (4153:6): [True: 194, False: 345]
  ------------------
 4154|    194|		int i;
 4155|       |
 4156|  4.18k|		for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (4156:15): [True: 3.98k, False: 194]
  ------------------
 4157|  3.98k|			strreset->strreset_stream_list[i] = ntohs(list[i]);
 4158|  3.98k|		}
 4159|    194|	}
 4160|    539|	SCTP_BUF_LEN(m_notify) = len;
  ------------------
  |  |  801|    539|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    539|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4161|    539|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|    539|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    539|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4162|    539|	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   89|    539|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    539|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    539|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 539, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    523|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    523|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 523, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 523, False: 16]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|    539|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    539|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (4162:6): [True: 31, False: 508]
  ------------------
 4163|       |		/* no space */
 4164|     31|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|     31|#define sctp_m_freem m_freem
  ------------------
 4165|     31|		return;
 4166|     31|	}
 4167|       |	/* append to socket */
 4168|    508|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4169|    508|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4170|    508|	                                 m_notify);
 4171|    508|	if (control == NULL) {
  ------------------
  |  Branch (4171:6): [True: 0, False: 508]
  ------------------
 4172|       |		/* no memory */
 4173|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4174|      0|		return;
 4175|      0|	}
 4176|    508|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    508|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    508|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4177|    508|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    508|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    508|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4178|       |	/* not that we need this */
 4179|    508|	control->tail_mbuf = m_notify;
 4180|    508|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4181|    508|	                  &stcb->sctp_socket->so_rcv, 1,
 4182|    508|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    508|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4183|    508|}
sctputil.c:sctp_notify_stream_reset_add:
 4006|     57|{
 4007|     57|	struct mbuf *m_notify;
 4008|     57|	struct sctp_queued_to_read *control;
 4009|     57|	struct sctp_stream_change_event *stradd;
 4010|       |
 4011|     57|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|     57|	do {                         \
  |  |  113|     57|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 57]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|     57|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 57]
  |  |  ------------------
  ------------------
 4012|     57|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     57|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     57|	do {                         \
  |  |  |  |  113|     57|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 57]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     57|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 57]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4013|     57|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|     57|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     57|	do {                         \
  |  |  |  |  113|     57|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 57]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     57|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 57]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4014|       |
 4015|     57|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_STREAM_CHANGEEVNT)) {
  ------------------
  |  |   75|     57|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 57, False: 0]
  |  |  ------------------
  |  |   76|     57|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 57]
  |  |  ------------------
  |  |   77|     57|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 57]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|     57|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|     57|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 57]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4016|       |		/* event not enabled */
 4017|      0|		return;
 4018|      0|	}
 4019|       |
 4020|     57|	if ((stcb->asoc.peer_req_out) && flag) {
  ------------------
  |  Branch (4020:6): [True: 1, False: 56]
  |  Branch (4020:35): [True: 0, False: 1]
  ------------------
 4021|       |		/* Peer made the request, don't tell the local user */
 4022|      0|		stcb->asoc.peer_req_out = 0;
 4023|      0|		return;
 4024|      0|	}
 4025|     57|	stcb->asoc.peer_req_out = 0;
 4026|     57|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_stream_change_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     57|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_stream_change_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     57|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4027|     57|	if (m_notify == NULL)
  ------------------
  |  Branch (4027:6): [True: 0, False: 57]
  ------------------
 4028|       |		/* no space left */
 4029|      0|		return;
 4030|     57|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|     57|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     57|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4031|     57|	stradd = mtod(m_notify, struct sctp_stream_change_event *);
  ------------------
  |  |   96|     57|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     57|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4032|     57|	memset(stradd, 0, sizeof(struct sctp_stream_change_event));
 4033|     57|	stradd->strchange_type = SCTP_STREAM_CHANGE_EVENT;
  ------------------
  |  |  567|     57|#define SCTP_STREAM_CHANGE_EVENT                0x000d
  ------------------
 4034|     57|	stradd->strchange_flags = flag;
 4035|     57|	stradd->strchange_length = sizeof(struct sctp_stream_change_event);
 4036|     57|	stradd->strchange_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|     57|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4037|     57|	stradd->strchange_instrms = stcb->asoc.streamincnt;
 4038|     57|	stradd->strchange_outstrms = stcb->asoc.streamoutcnt;
 4039|     57|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_stream_change_event);
  ------------------
  |  |  801|     57|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     57|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4040|     57|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|     57|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|     57|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4041|     57|	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   89|     57|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|     57|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|     57|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 57, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|     54|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|     54|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 54, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 54, False: 3]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|     57|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     57|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (4041:6): [True: 7, False: 50]
  ------------------
 4042|       |		/* no space */
 4043|      7|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      7|#define sctp_m_freem m_freem
  ------------------
 4044|      7|		return;
 4045|      7|	}
 4046|       |	/* append to socket */
 4047|     50|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4048|     50|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4049|     50|	                                 m_notify);
 4050|     50|	if (control == NULL) {
  ------------------
  |  Branch (4050:6): [True: 0, False: 50]
  ------------------
 4051|       |		/* no memory */
 4052|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4053|      0|		return;
 4054|      0|	}
 4055|     50|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|     50|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     50|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4056|     50|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|     50|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|     50|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4057|       |	/* not that we need this */
 4058|     50|	control->tail_mbuf = m_notify;
 4059|     50|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4060|     50|	                  &stcb->sctp_socket->so_rcv, 1,
 4061|     50|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|     50|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4062|     50|}
sctputil.c:sctp_notify_stream_reset_tsn:
 4066|     68|{
 4067|     68|	struct mbuf *m_notify;
 4068|     68|	struct sctp_queued_to_read *control;
 4069|     68|	struct sctp_assoc_reset_event *strasoc;
 4070|       |
 4071|     68|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|     68|	do {                         \
  |  |  113|     68|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 68]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|     68|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 68]
  |  |  ------------------
  ------------------
 4072|     68|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     68|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     68|	do {                         \
  |  |  |  |  113|     68|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 68]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     68|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 68]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4073|     68|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|     68|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     68|	do {                         \
  |  |  |  |  113|     68|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 68]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     68|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 68]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4074|       |
 4075|     68|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_ASSOC_RESETEVNT)) {
  ------------------
  |  |   75|     68|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 68, False: 0]
  |  |  ------------------
  |  |   76|     68|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 68]
  |  |  ------------------
  |  |   77|     68|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 68]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|     68|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|     68|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 68]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4076|       |		/* event not enabled */
 4077|      0|		return;
 4078|      0|	}
 4079|       |
 4080|     68|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_assoc_reset_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     68|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_assoc_reset_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     68|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4081|     68|	if (m_notify == NULL)
  ------------------
  |  Branch (4081:6): [True: 0, False: 68]
  ------------------
 4082|       |		/* no space left */
 4083|      0|		return;
 4084|     68|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|     68|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     68|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4085|     68|	strasoc = mtod(m_notify, struct sctp_assoc_reset_event  *);
  ------------------
  |  |   96|     68|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     68|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4086|     68|	memset(strasoc, 0, sizeof(struct sctp_assoc_reset_event));
 4087|     68|	strasoc->assocreset_type = SCTP_ASSOC_RESET_EVENT;
  ------------------
  |  |  566|     68|#define SCTP_ASSOC_RESET_EVENT                  0x000c
  ------------------
 4088|     68|	strasoc->assocreset_flags = flag;
 4089|     68|	strasoc->assocreset_length = sizeof(struct sctp_assoc_reset_event);
 4090|     68|	strasoc->assocreset_assoc_id= sctp_get_associd(stcb);
  ------------------
  |  |   60|     68|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4091|     68|	strasoc->assocreset_local_tsn = stcb->asoc.sending_seq;
 4092|     68|	strasoc->assocreset_remote_tsn = stcb->asoc.mapping_array_base_tsn + 1;
 4093|     68|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_assoc_reset_event);
  ------------------
  |  |  801|     68|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     68|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4094|     68|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|     68|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|     68|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4095|     68|	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   89|     68|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|     68|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|     68|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 68, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|     59|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|     59|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 59, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 59, False: 9]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|     68|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     68|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (4095:6): [True: 23, False: 45]
  ------------------
 4096|       |		/* no space */
 4097|     23|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|     23|#define sctp_m_freem m_freem
  ------------------
 4098|     23|		return;
 4099|     23|	}
 4100|       |	/* append to socket */
 4101|     45|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4102|     45|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4103|     45|	                                 m_notify);
 4104|     45|	if (control == NULL) {
  ------------------
  |  Branch (4104:6): [True: 0, False: 45]
  ------------------
 4105|       |		/* no memory */
 4106|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4107|      0|		return;
 4108|      0|	}
 4109|     45|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|     45|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     45|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4110|     45|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|     45|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|     45|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4111|       |	/* not that we need this */
 4112|     45|	control->tail_mbuf = m_notify;
 4113|     45|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4114|     45|	                  &stcb->sctp_socket->so_rcv, 1,
 4115|     45|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|     45|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4116|     45|}
sctputil.c:sctp_notify_shutdown_event:
 3881|    103|{
 3882|    103|	struct mbuf *m_notify;
 3883|    103|	struct sctp_shutdown_event *sse;
 3884|    103|	struct sctp_queued_to_read *control;
 3885|       |
 3886|    103|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    103|	do {                         \
  |  |  113|    103|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 103]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    103|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 103]
  |  |  ------------------
  ------------------
 3887|    103|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    103|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    103|	do {                         \
  |  |  |  |  113|    103|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 103]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    103|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 103]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3888|    103|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    103|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    103|	do {                         \
  |  |  |  |  113|    103|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 103]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    103|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 103]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3889|       |
 3890|       |	/*
 3891|       |	 * For TCP model AND UDP connected sockets we will send an error up
 3892|       |	 * when an SHUTDOWN completes
 3893|       |	 */
 3894|    103|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|    103|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3894:6): [True: 103, False: 0]
  ------------------
 3895|    103|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) {
  ------------------
  |  |  540|      0|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (3895:6): [True: 0, False: 0]
  ------------------
 3896|       |		/* mark socket closed for read/write and wakeup! */
 3897|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3898|       |		struct socket *so;
 3899|       |
 3900|       |		so = SCTP_INP_SO(stcb->sctp_ep);
 3901|       |		atomic_add_int(&stcb->asoc.refcnt, 1);
 3902|       |		SCTP_TCB_UNLOCK(stcb);
 3903|       |		SCTP_SOCKET_LOCK(so, 1);
 3904|       |		SCTP_TCB_LOCK(stcb);
 3905|       |		atomic_subtract_int(&stcb->asoc.refcnt, 1);
 3906|       |		if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
 3907|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3908|       |			return;
 3909|       |		}
 3910|       |#endif
 3911|    103|		socantsendmore(stcb->sctp_socket);
 3912|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3913|       |		SCTP_SOCKET_UNLOCK(so, 1);
 3914|       |#endif
 3915|    103|	}
 3916|       |
 3917|    103|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT)) {
  ------------------
  |  |   75|    103|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 103, False: 0]
  |  |  ------------------
  |  |   76|    103|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 103]
  |  |  ------------------
  |  |   77|    103|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 103]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    103|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|    103|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 103]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3918|       |		/* event not enabled */
 3919|      0|		return;
 3920|      0|	}
 3921|       |
 3922|    103|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    103|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    103|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3923|    103|	if (m_notify == NULL)
  ------------------
  |  Branch (3923:6): [True: 0, False: 103]
  ------------------
 3924|       |		/* no space left */
 3925|      0|		return;
 3926|    103|	sse = mtod(m_notify, struct sctp_shutdown_event *);
  ------------------
  |  |   96|    103|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    103|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3927|    103|	memset(sse, 0, sizeof(struct sctp_shutdown_event));
 3928|    103|	sse->sse_type = SCTP_SHUTDOWN_EVENT;
  ------------------
  |  |  557|    103|#define SCTP_SHUTDOWN_EVENT                     0x0005
  ------------------
 3929|    103|	sse->sse_flags = 0;
 3930|    103|	sse->sse_length = sizeof(struct sctp_shutdown_event);
 3931|    103|	sse->sse_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    103|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3932|       |
 3933|    103|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_shutdown_event);
  ------------------
  |  |  801|    103|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    103|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3934|    103|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|    103|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    103|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3935|       |
 3936|       |	/* append to socket */
 3937|    103|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3938|    103|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3939|    103|	                                 m_notify);
 3940|    103|	if (control == NULL) {
  ------------------
  |  Branch (3940:6): [True: 0, False: 103]
  ------------------
 3941|       |		/* no memory */
 3942|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3943|      0|		return;
 3944|      0|	}
 3945|    103|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    103|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    103|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3946|    103|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    103|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    103|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3947|       |	/* not that we need this */
 3948|    103|	control->tail_mbuf = m_notify;
 3949|    103|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3950|    103|	                  &stcb->sctp_socket->so_rcv, 1,
 3951|    103|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    103|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3952|    103|}
sctputil.c:sctp_notify_sender_dry_event:
 3956|     64|{
 3957|     64|	struct mbuf *m_notify;
 3958|     64|	struct sctp_sender_dry_event *event;
 3959|     64|	struct sctp_queued_to_read *control;
 3960|       |
 3961|     64|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|     64|	do {                         \
  |  |  113|     64|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 64]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|     64|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 64]
  |  |  ------------------
  ------------------
 3962|     64|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     64|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     64|	do {                         \
  |  |  |  |  113|     64|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     64|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3963|     64|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|     64|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     64|	do {                         \
  |  |  |  |  113|     64|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     64|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3964|       |
 3965|     64|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DRYEVNT)) {
  ------------------
  |  |   75|     64|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 64, False: 0]
  |  |  ------------------
  |  |   76|     64|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 64]
  |  |  ------------------
  |  |   77|     64|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 64]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|     64|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|     64|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 64]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3966|       |		/* event not enabled */
 3967|      0|		return;
 3968|      0|	}
 3969|       |
 3970|     64|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_sender_dry_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     64|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_sender_dry_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     64|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3971|     64|	if (m_notify == NULL) {
  ------------------
  |  Branch (3971:6): [True: 0, False: 64]
  ------------------
 3972|       |		/* no space left */
 3973|      0|		return;
 3974|      0|	}
 3975|     64|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|     64|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     64|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3976|     64|	event = mtod(m_notify, struct sctp_sender_dry_event *);
  ------------------
  |  |   96|     64|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     64|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3977|     64|	memset(event, 0, sizeof(struct sctp_sender_dry_event));
 3978|     64|	event->sender_dry_type = SCTP_SENDER_DRY_EVENT;
  ------------------
  |  |  564|     64|#define SCTP_SENDER_DRY_EVENT                   0x000a
  ------------------
 3979|     64|	event->sender_dry_flags = 0;
 3980|     64|	event->sender_dry_length = sizeof(struct sctp_sender_dry_event);
 3981|     64|	event->sender_dry_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|     64|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3982|       |
 3983|     64|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_sender_dry_event);
  ------------------
  |  |  801|     64|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     64|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3984|     64|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|     64|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|     64|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3985|       |
 3986|       |	/* append to socket */
 3987|     64|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3988|     64|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3989|     64|	                                 m_notify);
 3990|     64|	if (control == NULL) {
  ------------------
  |  Branch (3990:6): [True: 0, False: 64]
  ------------------
 3991|       |		/* no memory */
 3992|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3993|      0|		return;
 3994|      0|	}
 3995|     64|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|     64|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     64|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3996|     64|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|     64|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|     64|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3997|       |	/* not that we need this */
 3998|     64|	control->tail_mbuf = m_notify;
 3999|     64|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4000|     64|	                  &stcb->sctp_socket->so_rcv, 1,
 4001|     64|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|     64|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4002|     64|}
sctputil.c:sctp_notify_remote_error:
 4188|   397k|{
 4189|   397k|	struct mbuf *m_notify;
 4190|   397k|	struct sctp_remote_error *sre;
 4191|   397k|	struct sctp_queued_to_read *control;
 4192|   397k|	unsigned int notif_len;
 4193|   397k|	uint16_t chunk_len;
 4194|       |
 4195|   397k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|   397k|	do {                         \
  |  |  113|   397k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 397k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   397k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 397k]
  |  |  ------------------
  ------------------
 4196|   397k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   397k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   397k|	do {                         \
  |  |  |  |  113|   397k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 397k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   397k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 397k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4197|   397k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|   397k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   397k|	do {                         \
  |  |  |  |  113|   397k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 397k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   397k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 397k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4198|       |
 4199|   397k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVPEERERR)) {
  ------------------
  |  |   75|   397k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 397k, False: 0]
  |  |  ------------------
  |  |   76|   397k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 397k]
  |  |  ------------------
  |  |   77|   397k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 397k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|   397k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|   397k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 397k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4200|      0|		return;
 4201|      0|	}
 4202|       |
 4203|   397k|	if (chunk != NULL) {
  ------------------
  |  Branch (4203:6): [True: 397k, False: 0]
  ------------------
 4204|   397k|		chunk_len = ntohs(chunk->ch.chunk_length);
 4205|       |		/*
 4206|       |		 * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be
 4207|       |		 * contiguous.
 4208|       |		 */
 4209|   397k|		if (chunk_len > SCTP_CHUNK_BUFFER_SIZE) {
  ------------------
  |  |  689|   397k|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
  |  Branch (4209:7): [True: 150, False: 397k]
  ------------------
 4210|    150|			chunk_len = SCTP_CHUNK_BUFFER_SIZE;
  ------------------
  |  |  689|    150|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
 4211|    150|		}
 4212|   397k|	} else {
 4213|      0|		chunk_len = 0;
 4214|      0|	}
 4215|   397k|	notif_len = (unsigned int)(sizeof(struct sctp_remote_error) + chunk_len);
 4216|   397k|	m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|   397k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|   397k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4217|   397k|	if (m_notify == NULL) {
  ------------------
  |  Branch (4217:6): [True: 0, False: 397k]
  ------------------
 4218|       |		/* Retry with smaller value. */
 4219|      0|		notif_len = (unsigned int)sizeof(struct sctp_remote_error);
 4220|      0|		m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      0|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4221|      0|		if (m_notify == NULL) {
  ------------------
  |  Branch (4221:7): [True: 0, False: 0]
  ------------------
 4222|      0|			return;
 4223|      0|		}
 4224|      0|	}
 4225|   397k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|   397k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   397k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4226|   397k|	sre = mtod(m_notify, struct sctp_remote_error *);
  ------------------
  |  |   96|   397k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   397k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4227|   397k|	memset(sre, 0, notif_len);
 4228|   397k|	sre->sre_type = SCTP_REMOTE_ERROR;
  ------------------
  |  |  555|   397k|#define SCTP_REMOTE_ERROR                       0x0003
  ------------------
 4229|   397k|	sre->sre_flags = 0;
 4230|   397k|	sre->sre_length = sizeof(struct sctp_remote_error);
 4231|   397k|	sre->sre_error = error;
 4232|   397k|	sre->sre_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|   397k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4233|   397k|	if (notif_len > sizeof(struct sctp_remote_error)) {
  ------------------
  |  Branch (4233:6): [True: 397k, False: 0]
  ------------------
 4234|   397k|		memcpy(sre->sre_data, chunk, chunk_len);
 4235|   397k|		sre->sre_length += chunk_len;
 4236|   397k|	}
 4237|   397k|	SCTP_BUF_LEN(m_notify) = sre->sre_length;
  ------------------
  |  |  801|   397k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   397k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4238|   397k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4239|   397k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4240|   397k|	                                 m_notify);
 4241|   397k|	if (control != NULL) {
  ------------------
  |  Branch (4241:6): [True: 397k, False: 0]
  ------------------
 4242|   397k|		control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|   397k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   397k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4243|   397k|		control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|   397k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   397k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4244|       |		/* not that we need this */
 4245|   397k|		control->tail_mbuf = m_notify;
 4246|   397k|		sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4247|   397k|		                  &stcb->sctp_socket->so_rcv, 1,
 4248|   397k|		                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|   397k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4249|   397k|	} else {
 4250|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4251|      0|	}
 4252|   397k|}
sctputil.c:sctp_user_rcvd:
 5988|  10.8k|{
 5989|       |	/* User pulled some data, do we need a rwnd update? */
 5990|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5991|       |	struct epoch_tracker et;
 5992|       |#endif
 5993|  10.8k|	int r_unlocked = 0;
 5994|  10.8k|	uint32_t dif, rwnd;
 5995|  10.8k|	struct socket *so = NULL;
 5996|       |
 5997|  10.8k|	if (stcb == NULL)
  ------------------
  |  Branch (5997:6): [True: 0, False: 10.8k]
  ------------------
 5998|      0|		return;
 5999|       |
 6000|  10.8k|	atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  10.8k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6001|       |
 6002|  10.8k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  472|  10.8k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  10.8k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  462|  10.8k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (6002:6): [True: 4.38k, False: 6.44k]
  ------------------
 6003|  6.44k|	    (stcb->asoc.state & (SCTP_STATE_ABOUT_TO_BE_FREED | SCTP_STATE_SHUTDOWN_RECEIVED))) {
  ------------------
  |  |  465|  6.44k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
              	    (stcb->asoc.state & (SCTP_STATE_ABOUT_TO_BE_FREED | SCTP_STATE_SHUTDOWN_RECEIVED))) {
  ------------------
  |  |  461|  6.44k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (6003:6): [True: 264, False: 6.17k]
  ------------------
 6004|       |		/* Pre-check If we are freeing no update */
 6005|  4.64k|		goto no_lock;
 6006|  4.64k|	}
 6007|  6.17k|	SCTP_INP_INCR_REF(stcb->sctp_ep);
  ------------------
  |  |  411|  6.17k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  6.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 6008|  6.17k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  6.17k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6008:6): [True: 0, False: 6.17k]
  ------------------
 6009|  6.17k|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|  6.17k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (6009:6): [True: 0, False: 6.17k]
  ------------------
 6010|      0|		goto out;
 6011|      0|	}
 6012|  6.17k|	so = stcb->sctp_socket;
 6013|  6.17k|	if (so == NULL) {
  ------------------
  |  Branch (6013:6): [True: 0, False: 6.17k]
  ------------------
 6014|      0|		goto out;
 6015|      0|	}
 6016|  6.17k|	atomic_add_int(&stcb->freed_by_sorcv_sincelast, *freed_so_far);
  ------------------
  |  |   94|  6.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6017|       |	/* Have you have freed enough to look */
 6018|  6.17k|	*freed_so_far = 0;
 6019|       |	/* Yep, its worth a look and the lock overhead */
 6020|       |
 6021|       |	/* Figure out what the rwnd would be */
 6022|  6.17k|	rwnd = sctp_calc_rwnd(stcb, &stcb->asoc);
 6023|  6.17k|	if (rwnd >= stcb->asoc.my_last_reported_rwnd) {
  ------------------
  |  Branch (6023:6): [True: 5.76k, False: 412]
  ------------------
 6024|  5.76k|		dif = rwnd - stcb->asoc.my_last_reported_rwnd;
 6025|  5.76k|	} else {
 6026|    412|		dif = 0;
 6027|    412|	}
 6028|  6.17k|	if (dif >= rwnd_req) {
  ------------------
  |  Branch (6028:6): [True: 1.23k, False: 4.94k]
  ------------------
 6029|  1.23k|		if (hold_rlock) {
  ------------------
  |  Branch (6029:7): [True: 1.22k, False: 2]
  ------------------
 6030|  1.22k|			SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|  1.22k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.22k|	do {                         \
  |  |  |  |  113|  1.22k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.22k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.22k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6031|  1.22k|			r_unlocked = 1;
 6032|  1.22k|		}
 6033|  1.23k|		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.23k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6033:7): [True: 0, False: 1.23k]
  ------------------
 6034|       |			/*
 6035|       |			 * One last check before we allow the guy possibly
 6036|       |			 * to get in. There is a race, where the guy has not
 6037|       |			 * reached the gate. In that case
 6038|       |			 */
 6039|      0|			goto out;
 6040|      0|		}
 6041|  1.23k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  1.23k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.23k|	do {                         \
  |  |  |  |  113|  1.23k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.23k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.23k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.23k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6042|  1.23k|		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.23k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6042:7): [True: 0, False: 1.23k]
  ------------------
 6043|       |			/* No reports here */
 6044|      0|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      0|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6045|      0|			goto out;
 6046|      0|		}
 6047|  1.23k|		SCTP_STAT_INCR(sctps_wu_sacks_sent);
  ------------------
  |  | 1112|  1.23k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.23k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.23k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6048|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6049|       |		NET_EPOCH_ENTER(et);
 6050|       |#endif
 6051|  1.23k|		sctp_send_sack(stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  1.23k|#define SCTP_SO_LOCKED		1
  ------------------
 6052|       |
 6053|  1.23k|		sctp_chunk_output(stcb->sctp_ep, stcb,
 6054|  1.23k|				  SCTP_OUTPUT_FROM_USR_RCVD, SCTP_SO_LOCKED);
  ------------------
  |  |  374|  1.23k|#define SCTP_OUTPUT_FROM_USR_RCVD       13
  ------------------
              				  SCTP_OUTPUT_FROM_USR_RCVD, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  1.23k|#define SCTP_SO_LOCKED		1
  ------------------
 6055|       |		/* make sure no timer is running */
 6056|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6057|       |		NET_EPOCH_EXIT(et);
 6058|       |#endif
 6059|  1.23k|		sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|  1.23k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 6060|  1.23k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_6);
  ------------------
  |  |  760|  1.23k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_6);
  ------------------
  |  |  774|  1.23k|#define SCTP_LOC_6  0x00000006
  ------------------
 6061|  1.23k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  1.23k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.23k|	do {                         \
  |  |  |  |  113|  1.23k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.23k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.23k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.23k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6062|  4.94k|	} else {
 6063|       |		/* Update how much we have pending */
 6064|  4.94k|		stcb->freed_by_sorcv_sincelast = dif;
 6065|  4.94k|	}
 6066|  6.17k| out:
 6067|  6.17k|	if (so && r_unlocked && hold_rlock) {
  ------------------
  |  Branch (6067:6): [True: 6.17k, False: 0]
  |  Branch (6067:12): [True: 1.22k, False: 4.94k]
  |  Branch (6067:26): [True: 1.22k, False: 0]
  ------------------
 6068|  1.22k|		SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|  1.22k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.22k|	do {                         \
  |  |  |  |  113|  1.22k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.22k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.22k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6069|  1.22k|	}
 6070|       |
 6071|  6.17k|	SCTP_INP_DECR_REF(stcb->sctp_ep);
  ------------------
  |  |  412|  6.17k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  6.17k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 6072|  10.8k| no_lock:
 6073|  10.8k|	atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  10.8k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6074|  10.8k|	return;
 6075|  6.17k|}

sctp_pcb.c:atomic_init:
  135|      1|static inline void atomic_init(void) {} /* empty when we are not using atomic_mtx */

init_random:
   77|      1|{
   78|      1|	return;
   79|      1|}
read_random:
   83|  20.3k|{
   84|  20.3k|	memset(buf, 'A', size);
   85|  20.3k|	return;
   86|  20.3k|}

m_get:
  112|  1.17M|{
  113|  1.17M|	struct mbuf *mret;
  114|  1.17M|#if defined(SCTP_SIMPLE_ALLOCATOR)
  115|  1.17M|	struct mb_args mbuf_mb_args;
  116|       |
  117|       |	/* The following setter function is not yet being enclosed within
  118|       |	 * #if USING_MBUF_CONSTRUCTOR - #endif, until I have thoroughly tested
  119|       |	 * mb_dtor_mbuf. See comment there
  120|       |	 */
  121|  1.17M|	mbuf_mb_args.flags = 0;
  122|  1.17M|	mbuf_mb_args.type = type;
  123|  1.17M|#endif
  124|       |	/* Mbuf master zone, zone_mbuf, has already been
  125|       |	 * created in mbuf_initialize() */
  126|  1.17M|	mret = SCTP_ZONE_GET(zone_mbuf, struct mbuf);
  ------------------
  |  |  703|  1.17M|        (type *)malloc(zone);
  ------------------
  127|  1.17M|#if defined(SCTP_SIMPLE_ALLOCATOR)
  128|  1.17M|	mb_ctor_mbuf(mret, &mbuf_mb_args, 0);
  129|  1.17M|#endif
  130|       |	/*mret =  ((struct mbuf *)umem_cache_alloc(zone_mbuf, UMEM_DEFAULT));*/
  131|       |
  132|       |	/* There are cases when an object available in the current CPU's
  133|       |	 * loaded magazine and in those cases the object's constructor is not applied.
  134|       |	 * If that is the case, then we are duplicating constructor initialization here,
  135|       |	 * so that the mbuf is properly constructed before returning it.
  136|       |	 */
  137|  1.17M|	if (mret) {
  ------------------
  |  Branch (137:6): [True: 1.17M, False: 0]
  ------------------
  138|       |#if USING_MBUF_CONSTRUCTOR
  139|       |		if (! (mret->m_type == type) ) {
  140|       |			mbuf_constructor_dup(mret, 0, type);
  141|       |		}
  142|       |#else
  143|  1.17M|		mbuf_constructor_dup(mret, 0, type);
  144|  1.17M|#endif
  145|       |
  146|  1.17M|	}
  147|  1.17M|	return mret;
  148|  1.17M|}
m_gethdr:
  154|   148k|{
  155|   148k|	struct mbuf *mret;
  156|   148k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  157|   148k|	struct mb_args mbuf_mb_args;
  158|       |
  159|       |	/* The following setter function is not yet being enclosed within
  160|       |	 * #if USING_MBUF_CONSTRUCTOR - #endif, until I have thoroughly tested
  161|       |	 * mb_dtor_mbuf. See comment there
  162|       |	 */
  163|   148k|	mbuf_mb_args.flags = M_PKTHDR;
  ------------------
  |  |  234|   148k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  164|   148k|	mbuf_mb_args.type = type;
  165|   148k|#endif
  166|   148k|	mret = SCTP_ZONE_GET(zone_mbuf, struct mbuf);
  ------------------
  |  |  703|   148k|        (type *)malloc(zone);
  ------------------
  167|   148k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  168|   148k|	mb_ctor_mbuf(mret, &mbuf_mb_args, 0);
  169|   148k|#endif
  170|       |	/*mret = ((struct mbuf *)umem_cache_alloc(zone_mbuf, UMEM_DEFAULT));*/
  171|       |	/* There are cases when an object available in the current CPU's
  172|       |	 * loaded magazine and in those cases the object's constructor is not applied.
  173|       |	 * If that is the case, then we are duplicating constructor initialization here,
  174|       |	 * so that the mbuf is properly constructed before returning it.
  175|       |	 */
  176|   148k|	if (mret) {
  ------------------
  |  Branch (176:6): [True: 148k, False: 18.4E]
  ------------------
  177|       |#if USING_MBUF_CONSTRUCTOR
  178|       |		if (! ((mret->m_flags & M_PKTHDR) && (mret->m_type == type)) ) {
  179|       |			mbuf_constructor_dup(mret, M_PKTHDR, type);
  180|       |		}
  181|       |#else
  182|   148k|		mbuf_constructor_dup(mret, M_PKTHDR, type);
  ------------------
  |  |  234|   148k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  183|   148k|#endif
  184|   148k|	}
  185|   148k|	return mret;
  186|   148k|}
m_free:
  191|  1.31M|{
  192|       |
  193|  1.31M|	struct mbuf *n = m->m_next;
  ------------------
  |  |  217|  1.31M|#define	m_next		m_hdr.mh_next
  ------------------
  194|       |
  195|  1.31M|	if (m->m_flags & M_EXT)
  ------------------
  |  |  221|  1.31M|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_EXT)
  ------------------
  |  |  233|  1.31M|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  |  Branch (195:6): [True: 239k, False: 1.07M]
  ------------------
  196|   239k|		mb_free_ext(m);
  197|  1.07M|	else if ((m->m_flags & M_NOFREE) == 0) {
  ------------------
  |  |  221|  1.07M|#define	m_flags		m_hdr.mh_flags
  ------------------
              	else if ((m->m_flags & M_NOFREE) == 0) {
  ------------------
  |  |  264|  1.07M|#define	M_NOFREE	0x40000	/* do not free mbuf - it is embedded in the cluster */
  ------------------
  |  Branch (197:11): [True: 1.07M, False: 1]
  ------------------
  198|  1.07M|#if defined(SCTP_SIMPLE_ALLOCATOR)
  199|  1.07M|		mb_dtor_mbuf(m, NULL);
  200|  1.07M|#endif
  201|  1.07M|		SCTP_ZONE_FREE(zone_mbuf, m);
  ------------------
  |  |  707|  1.07M|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  1.07M|	free(element);  \
  |  |  709|  1.07M|}
  ------------------
  202|  1.07M|	}
  203|       |		/*umem_cache_free(zone_mbuf, m);*/
  204|  1.31M|	return (n);
  205|  1.31M|}
m_clget:
  246|  75.0k|{
  247|  75.0k|	caddr_t mclust_ret;
  248|  75.0k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  249|  75.0k|	struct clust_args clust_mb_args_l;
  250|  75.0k|#endif
  251|  75.0k|	if (m->m_flags & M_EXT) {
  ------------------
  |  |  221|  75.0k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_EXT) {
  ------------------
  |  |  233|  75.0k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  |  Branch (251:6): [True: 0, False: 75.0k]
  ------------------
  252|      0|		SCTPDBG(SCTP_DEBUG_USR, "%s: %p mbuf already has cluster\n", __func__, (void *)m);
  253|      0|	}
  254|  75.0k|	m->m_ext.ext_buf = (char *)NULL;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  255|  75.0k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  256|  75.0k|	clust_mb_args_l.parent_mbuf = m;
  257|  75.0k|#endif
  258|  75.0k|	mclust_ret = SCTP_ZONE_GET(zone_clust, char);
  ------------------
  |  |  703|  75.0k|        (type *)malloc(zone);
  ------------------
  259|  75.0k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  260|  75.0k|	mb_ctor_clust(mclust_ret, &clust_mb_args_l, 0);
  261|  75.0k|#endif
  262|       |	/*mclust_ret = umem_cache_alloc(zone_clust, UMEM_DEFAULT);*/
  263|       |	/*
  264|       |	 On a cluster allocation failure, call umem_reap() and retry.
  265|       |	 */
  266|       |
  267|  75.0k|	if (mclust_ret == NULL) {
  ------------------
  |  Branch (267:6): [True: 0, False: 75.0k]
  ------------------
  268|       |#if !defined(SCTP_SIMPLE_ALLOCATOR)
  269|       |	/*	mclust_ret = SCTP_ZONE_GET(zone_clust, char);
  270|       |		mb_ctor_clust(mclust_ret, &clust_mb_args, 0);
  271|       |#else*/
  272|       |		umem_reap();
  273|       |		mclust_ret = SCTP_ZONE_GET(zone_clust, char);
  274|       |#endif
  275|       |		/*mclust_ret = umem_cache_alloc(zone_clust, UMEM_DEFAULT);*/
  276|       |		/* if (NULL == mclust_ret) { */
  277|      0|		SCTPDBG(SCTP_DEBUG_USR, "Memory allocation failure in %s\n", __func__);
  278|       |		/* } */
  279|      0|	}
  280|       |
  281|       |#if USING_MBUF_CONSTRUCTOR
  282|       |	if ((m->m_ext.ext_buf == NULL)) {
  283|       |		clust_constructor_dup(mclust_ret, m);
  284|       |	}
  285|       |#else
  286|  75.0k|	clust_constructor_dup(mclust_ret, m);
  287|  75.0k|#endif
  288|  75.0k|}
m_getm2:
  292|   928k|{
  293|   928k|	struct mbuf *mb, *nm = NULL, *mtail = NULL;
  294|   928k|	int size, mbuf_threshold, space_needed = len;
  295|       |
  296|   928k|	KASSERT(len >= 0, ("%s: len is < 0", __func__));
  ------------------
  |  |  112|   928k|	do {                         \
  |  |  113|   928k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 928k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   928k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 928k]
  |  |  ------------------
  ------------------
  297|       |
  298|       |	/* Validate flags. */
  299|   928k|	flags &= (M_PKTHDR | M_EOR);
  ------------------
  |  |  234|   928k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
              	flags &= (M_PKTHDR | M_EOR);
  ------------------
  |  |  235|   928k|#define	M_EOR		0x0004	/* end of record */
  ------------------
  300|       |
  301|       |	/* Packet header mbuf must be first in chain. */
  302|   928k|	if ((flags & M_PKTHDR) && m != NULL) {
  ------------------
  |  |  234|   928k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (302:6): [True: 94.0k, False: 834k]
  |  Branch (302:28): [True: 0, False: 94.0k]
  ------------------
  303|      0|		flags &= ~M_PKTHDR;
  ------------------
  |  |  234|      0|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  304|      0|	}
  305|       |
  306|   928k|	if (allonebuf == 0)
  ------------------
  |  Branch (306:6): [True: 29.1k, False: 899k]
  ------------------
  307|  29.1k|		mbuf_threshold = SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count);
  ------------------
  |  |  590|  29.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  308|   899k|	else
  309|   899k|		mbuf_threshold = 1;
  310|       |
  311|       |	/* Loop and append maximum sized mbufs to the chain tail. */
  312|  1.88M|	while (len > 0) {
  ------------------
  |  Branch (312:9): [True: 954k, False: 928k]
  ------------------
  313|   954k|		if ((!allonebuf && len >= MCLBYTES) || (len > (int)(((mbuf_threshold - 1) * MLEN) + MHLEN))) {
  ------------------
  |  |   51|  55.6k|#define MCLBYTES 2048
  ------------------
              		if ((!allonebuf && len >= MCLBYTES) || (len > (int)(((mbuf_threshold - 1) * MLEN) + MHLEN))) {
  ------------------
  |  |  138|   948k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   948k|#define MSIZE 256
  |  |  ------------------
  ------------------
              		if ((!allonebuf && len >= MCLBYTES) || (len > (int)(((mbuf_threshold - 1) * MLEN) + MHLEN))) {
  ------------------
  |  |  139|   948k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|   948k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   948k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (313:8): [True: 55.6k, False: 899k]
  |  Branch (313:22): [True: 6.15k, False: 49.5k]
  |  Branch (313:42): [True: 68.8k, False: 879k]
  ------------------
  314|  75.0k|			mb = m_gethdr(how, type);
  315|  75.0k|			MCLGET(mb, how);
  ------------------
  |  |   69|  75.0k|#define	MCLGET(m, how)		m_clget((m), (how))
  ------------------
  316|  75.0k|			size = MCLBYTES;
  ------------------
  |  |   51|  75.0k|#define MCLBYTES 2048
  ------------------
  317|       |			/* SCTP_BUF_LEN(mb) = MCLBYTES; */
  318|   879k|		} else if (flags & M_PKTHDR) {
  ------------------
  |  |  234|   879k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (318:14): [True: 73.4k, False: 806k]
  ------------------
  319|  73.4k|			mb = m_gethdr(how, type);
  320|  73.4k|			if (len < MHLEN) {
  ------------------
  |  |  139|  73.4k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  73.4k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  73.4k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (320:8): [True: 62.6k, False: 10.8k]
  ------------------
  321|  62.6k|				size = len;
  322|  62.6k|			} else {
  323|  10.8k|				size = MHLEN;
  ------------------
  |  |  139|  10.8k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  10.8k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  10.8k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  324|  10.8k|			}
  325|   806k|		} else {
  326|   806k|			mb = m_get(how, type);
  327|   806k|			if (len < MLEN) {
  ------------------
  |  |  138|   806k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   806k|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (327:8): [True: 796k, False: 9.55k]
  ------------------
  328|   796k|				size = len;
  329|   796k|			} else {
  330|  9.55k|				size = MLEN;
  ------------------
  |  |  138|  9.55k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  9.55k|#define MSIZE 256
  |  |  ------------------
  ------------------
  331|  9.55k|			}
  332|   806k|		}
  333|       |
  334|       |		/* Fail the whole operation if one mbuf can't be allocated. */
  335|   954k|		if (mb == NULL) {
  ------------------
  |  Branch (335:7): [True: 0, False: 954k]
  ------------------
  336|      0|			if (nm != NULL)
  ------------------
  |  Branch (336:8): [True: 0, False: 0]
  ------------------
  337|      0|				m_freem(nm);
  338|      0|			return (NULL);
  339|      0|		}
  340|       |
  341|   954k|		if (allonebuf != 0 && size < space_needed) {
  ------------------
  |  Branch (341:7): [True: 899k, False: 55.6k]
  |  Branch (341:25): [True: 0, False: 899k]
  ------------------
  342|      0|			m_freem(mb);
  343|      0|			return (NULL);
  344|      0|		}
  345|       |
  346|       |		/* Book keeping. */
  347|   954k|		len -= size;
  348|   954k|		if (mtail != NULL)
  ------------------
  |  Branch (348:7): [True: 26.5k, False: 928k]
  ------------------
  349|  26.5k|			mtail->m_next = mb;
  ------------------
  |  |  217|  26.5k|#define	m_next		m_hdr.mh_next
  ------------------
  350|   928k|		else
  351|   928k|			nm = mb;
  352|   954k|		mtail = mb;
  353|   954k|		flags &= ~M_PKTHDR;     /* Only valid on the first mbuf. */
  ------------------
  |  |  234|   954k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  354|   954k|	}
  355|   928k|	if (flags & M_EOR) {
  ------------------
  |  |  235|   928k|#define	M_EOR		0x0004	/* end of record */
  ------------------
  |  Branch (355:6): [True: 0, False: 928k]
  ------------------
  356|      0|		mtail->m_flags |= M_EOR;  /* Only valid on the last mbuf. */
  ------------------
  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  ------------------
              		mtail->m_flags |= M_EOR;  /* Only valid on the last mbuf. */
  ------------------
  |  |  235|      0|#define	M_EOR		0x0004	/* end of record */
  ------------------
  357|      0|	}
  358|       |
  359|       |	/* If mbuf was supplied, append new chain to the end of it. */
  360|   928k|	if (m != NULL) {
  ------------------
  |  Branch (360:6): [True: 0, False: 928k]
  ------------------
  361|      0|		for (mtail = m; mtail->m_next != NULL; mtail = mtail->m_next);
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
              		for (mtail = m; mtail->m_next != NULL; mtail = mtail->m_next);
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (361:19): [True: 0, False: 0]
  ------------------
  362|      0|		mtail->m_next = nm;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  363|      0|		mtail->m_flags &= ~M_EOR;
  ------------------
  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  ------------------
              		mtail->m_flags &= ~M_EOR;
  ------------------
  |  |  235|      0|#define	M_EOR		0x0004	/* end of record */
  ------------------
  364|   928k|	} else {
  365|   928k|		m = nm;
  366|   928k|	}
  367|       |
  368|   928k|	return (m);
  369|   928k|}
m_uiotombuf:
  376|  5.42k|{
  377|  5.42k|	struct mbuf *m, *mb;
  378|  5.42k|	int error, length;
  379|  5.42k|	ssize_t total;
  380|  5.42k|	int progress = 0;
  381|       |
  382|       |	/*
  383|       |	 * len can be zero or an arbitrary large value bound by
  384|       |	 * the total data supplied by the uio.
  385|       |	 */
  386|  5.42k|	if (len > 0)
  ------------------
  |  Branch (386:6): [True: 5.42k, False: 0]
  ------------------
  387|  5.42k|		total = min(uio->uio_resid, len);
  ------------------
  |  |   66|  5.42k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 5.42k]
  |  |  ------------------
  ------------------
  388|      0|	else
  389|      0|		total = uio->uio_resid;
  390|       |	/*
  391|       |	 * The smallest unit returned by m_getm2() is a single mbuf
  392|       |	 * with pkthdr.  We can't align past it.
  393|       |	 */
  394|  5.42k|	if (align >= MHLEN)
  ------------------
  |  |  139|  5.42k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  5.42k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  5.42k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (394:6): [True: 0, False: 5.42k]
  ------------------
  395|      0|		return (NULL);
  396|       |	/*
  397|       |	 * Give us the full allocation or nothing.
  398|       |	 * If len is zero return the smallest empty mbuf.
  399|       |	 */
  400|  5.42k|	m = m_getm2(NULL, (int)max(total + align, 1), how, MT_DATA, flags, 0);
  ------------------
  |  |   67|  5.42k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 5.42k, False: 0]
  |  |  ------------------
  ------------------
              	m = m_getm2(NULL, (int)max(total + align, 1), how, MT_DATA, flags, 0);
  ------------------
  |  |  287|  5.42k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  401|  5.42k|	if (m == NULL)
  ------------------
  |  Branch (401:6): [True: 0, False: 5.42k]
  ------------------
  402|      0|		return (NULL);
  403|  5.42k|	m->m_data += align;
  ------------------
  |  |  219|  5.42k|#define	m_data		m_hdr.mh_data
  ------------------
  404|       |
  405|       |	/* Fill all mbufs with uio data and update header information. */
  406|  10.8k|	for (mb = m; mb != NULL; mb = mb->m_next) {
  ------------------
  |  |  217|  5.42k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (406:15): [True: 5.42k, False: 5.42k]
  ------------------
  407|  5.42k|		length = (int)min(M_TRAILINGSPACE(mb), total - progress);
  ------------------
  |  |   66|  10.8k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 5.42k, False: 0]
  |  |  |  Branch (66:21): [True: 0, False: 0]
  |  |  |  Branch (66:21): [True: 0, False: 0]
  |  |  |  Branch (66:21): [True: 0, False: 0]
  |  |  |  Branch (66:21): [True: 0, False: 5.42k]
  |  |  |  Branch (66:34): [True: 0, False: 0]
  |  |  |  Branch (66:34): [True: 0, False: 0]
  |  |  |  Branch (66:34): [True: 0, False: 0]
  |  |  |  Branch (66:34): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  408|  5.42k|		error = uiomove(mtod(mb, void *), length, uio);
  ------------------
  |  |   96|  5.42k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.42k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  409|  5.42k|		if (error) {
  ------------------
  |  Branch (409:7): [True: 0, False: 5.42k]
  ------------------
  410|      0|			m_freem(m);
  411|      0|			return (NULL);
  412|      0|		}
  413|       |
  414|  5.42k|		mb->m_len = length;
  ------------------
  |  |  218|  5.42k|#define	m_len		m_hdr.mh_len
  ------------------
  415|  5.42k|		progress += length;
  416|  5.42k|		if (flags & M_PKTHDR)
  ------------------
  |  |  234|  5.42k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (416:7): [True: 0, False: 5.42k]
  ------------------
  417|      0|			m->m_pkthdr.len += length;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  418|  5.42k|	}
  419|  5.42k|	KASSERT(progress == total, ("%s: progress != total", __func__));
  ------------------
  |  |  112|  5.42k|	do {                         \
  |  |  113|  5.42k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.42k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  5.42k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.42k]
  |  |  ------------------
  ------------------
  420|       |
  421|  5.42k|	return (m);
  422|  5.42k|}
m_last:
  443|  5.42k|{
  444|  5.42k|	while (m->m_next) {
  ------------------
  |  |  217|  5.42k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (444:9): [True: 0, False: 5.42k]
  ------------------
  445|      0|		m = m->m_next;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  446|      0|	}
  447|  5.42k|	return (m);
  448|  5.42k|}
mbuf_initialize:
  493|      1|{
  494|       |
  495|       |	/*
  496|       |	 * __Userspace__Configure UMA zones for Mbufs and Clusters.
  497|       |	 * (TODO: m_getcl() - using packet secondary zone).
  498|       |	 * There is no provision for trash_init and trash_fini in umem.
  499|       |	 *
  500|       |	 */
  501|       | /* zone_mbuf = umem_cache_create(MBUF_MEM_NAME, MSIZE, 0,
  502|       |				mb_ctor_mbuf, mb_dtor_mbuf, NULL,
  503|       |				&mbuf_mb_args,
  504|       |				NULL, 0);
  505|       |	zone_mbuf = umem_cache_create(MBUF_MEM_NAME, MSIZE, 0, NULL, NULL, NULL, NULL, NULL, 0);*/
  506|      1|#if defined(SCTP_SIMPLE_ALLOCATOR)
  507|      1|	SCTP_ZONE_INIT(zone_mbuf, MBUF_MEM_NAME, MSIZE, 0);
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
  508|       |#else
  509|       |	zone_mbuf = umem_cache_create(MBUF_MEM_NAME, MSIZE, 0,
  510|       |	                              mb_ctor_mbuf, mb_dtor_mbuf, NULL,
  511|       |	                              NULL,
  512|       |	                              NULL, 0);
  513|       |#endif
  514|       |	/*zone_ext_refcnt = umem_cache_create(MBUF_EXTREFCNT_MEM_NAME, sizeof(u_int), 0,
  515|       |				NULL, NULL, NULL,
  516|       |				NULL,
  517|       |				NULL, 0);*/
  518|      1|	SCTP_ZONE_INIT(zone_ext_refcnt, MBUF_EXTREFCNT_MEM_NAME, sizeof(u_int), 0);
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
  519|       |
  520|       |  /*zone_clust = umem_cache_create(MBUF_CLUSTER_MEM_NAME, MCLBYTES, 0,
  521|       |				 mb_ctor_clust, mb_dtor_clust, NULL,
  522|       |				 &clust_mb_args,
  523|       |				 NULL, 0);
  524|       |	zone_clust = umem_cache_create(MBUF_CLUSTER_MEM_NAME, MCLBYTES, 0, NULL, NULL, NULL, NULL, NULL,0);*/
  525|      1|#if defined(SCTP_SIMPLE_ALLOCATOR)
  526|      1|	SCTP_ZONE_INIT(zone_clust, MBUF_CLUSTER_MEM_NAME, MCLBYTES, 0);
  ------------------
  |  |  697|      1|#define SCTP_ZONE_INIT(zone, name, size, number) { \
  |  |  698|      1|	zone = size; \
  |  |  699|      1|}
  ------------------
  527|       |#else
  528|       |	zone_clust = umem_cache_create(MBUF_CLUSTER_MEM_NAME, MCLBYTES, 0,
  529|       |								   mb_ctor_clust, mb_dtor_clust, NULL,
  530|       |								   &clust_mb_args,
  531|       |								   NULL, 0);
  532|       |#endif
  533|       |
  534|       |	/* uma_prealloc() goes here... */
  535|       |
  536|       |	/* __Userspace__ Add umem_reap here for low memory situation?
  537|       |	 *
  538|       |	 */
  539|       |
  540|      1|}
m_tag_delete_chain:
  703|   148k|{
  704|       |
  705|   148k|	struct m_tag *p, *q;
  706|       |
  707|   148k|	KASSERT(m, ("m_tag_delete_chain: null mbuf"));
  ------------------
  |  |  112|   148k|	do {                         \
  |  |  113|   148k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 148k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   148k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 148k]
  |  |  ------------------
  ------------------
  708|   148k|	if (t != NULL)
  ------------------
  |  Branch (708:6): [True: 0, False: 148k]
  ------------------
  709|      0|		p = t;
  710|   148k|	else
  711|   148k|		p = SLIST_FIRST(&m->m_pkthdr.tags);
  712|   148k|	if (p == NULL)
  ------------------
  |  Branch (712:6): [True: 148k, False: 0]
  ------------------
  713|   148k|		return;
  714|      0|	while ((q = SLIST_NEXT(p, m_tag_link)) != NULL)
  ------------------
  |  Branch (714:9): [True: 0, False: 0]
  ------------------
  715|      0|		m_tag_delete(m, q);
  716|      0|	m_tag_delete(m, p);
  717|      0|}
m_freem:
  738|   287k|{
  739|  1.10M|	while (mb != NULL)
  ------------------
  |  Branch (739:9): [True: 818k, False: 287k]
  ------------------
  740|   818k|		mb = m_free(mb);
  741|   287k|}
mb_free_ext:
  750|   239k|{
  751|       |
  752|   239k|	int skipmbuf;
  753|       |
  754|   239k|	KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__));
  ------------------
  |  |  112|   239k|	do {                         \
  |  |  113|   239k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 239k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   239k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 239k]
  |  |  ------------------
  ------------------
  755|   239k|	KASSERT(m->m_ext.ref_cnt != NULL, ("%s: ref_cnt not set", __func__));
  ------------------
  |  |  112|   239k|	do {                         \
  |  |  113|   239k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 239k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   239k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 239k]
  |  |  ------------------
  ------------------
  756|       |
  757|       |	/*
  758|       |	 * check if the header is embedded in the cluster
  759|       |	 */
  760|   239k|	skipmbuf = (m->m_flags & M_NOFREE);
  ------------------
  |  |  221|   239k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	skipmbuf = (m->m_flags & M_NOFREE);
  ------------------
  |  |  264|   239k|#define	M_NOFREE	0x40000	/* do not free mbuf - it is embedded in the cluster */
  ------------------
  761|       |
  762|       |	/* Free the external attached storage if this
  763|       |	 * mbuf is the only reference to it.
  764|       |	 *__Userspace__ TODO: jumbo frames
  765|       |	 *
  766|       |	*/
  767|       |	/* NOTE: We had the same code that SCTP_DECREMENT_AND_CHECK_REFCOUNT
  768|       |	         reduces to here before but the IPHONE malloc commit had changed
  769|       |	         this to compare to 0 instead of 1 (see next line).  Why?
  770|       |	        . .. this caused a huge memory leak in Linux.
  771|       |	*/
  772|       |#ifdef IPHONE
  773|       |	if (atomic_fetchadd_int(m->m_ext.ref_cnt, -1) == 0)
  774|       |#else
  775|   239k|	if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(m->m_ext.ref_cnt))
  ------------------
  |  |  115|   239k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  ------------------
  |  |  |  |  103|   239k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  ------------------
  |  |  |  Branch (115:49): [True: 74.7k, False: 165k]
  |  |  ------------------
  ------------------
  776|  74.7k|#endif
  777|  74.7k|	{
  778|  74.7k|		if (m->m_ext.ext_type == EXT_CLUSTER){
  ------------------
  |  |  225|  74.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              		if (m->m_ext.ext_type == EXT_CLUSTER){
  ------------------
  |  |  270|  74.7k|#define	EXT_CLUSTER	1	/* mbuf cluster */
  ------------------
  |  Branch (778:7): [True: 74.7k, False: 0]
  ------------------
  779|  74.7k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  780|  74.7k|			mb_dtor_clust(m->m_ext.ext_buf, &clust_mb_args);
  ------------------
  |  |  225|  74.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  781|  74.7k|#endif
  782|  74.7k|			SCTP_ZONE_FREE(zone_clust, m->m_ext.ext_buf);
  ------------------
  |  |  707|  74.7k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  74.7k|	free(element);  \
  |  |  709|  74.7k|}
  ------------------
  783|  74.7k|			SCTP_ZONE_FREE(zone_ext_refcnt, (u_int*)m->m_ext.ref_cnt);
  ------------------
  |  |  707|  74.7k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  74.7k|	free(element);  \
  |  |  709|  74.7k|}
  ------------------
  784|  74.7k|			m->m_ext.ref_cnt = NULL;
  ------------------
  |  |  225|  74.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  785|  74.7k|		}
  786|  74.7k|	}
  787|       |
  788|   239k|	if (skipmbuf)
  ------------------
  |  Branch (788:6): [True: 0, False: 239k]
  ------------------
  789|      0|		return;
  790|       |
  791|       |
  792|       |	/* __Userspace__ Also freeing the storage for ref_cnt
  793|       |	 * Free this mbuf back to the mbuf zone with all m_ext
  794|       |	 * information purged.
  795|       |	 */
  796|   239k|	m->m_ext.ext_buf = NULL;
  ------------------
  |  |  225|   239k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  797|   239k|	m->m_ext.ext_free = NULL;
  ------------------
  |  |  225|   239k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  798|   239k|	m->m_ext.ext_args = NULL;
  ------------------
  |  |  225|   239k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  799|   239k|	m->m_ext.ref_cnt = NULL;
  ------------------
  |  |  225|   239k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  800|   239k|	m->m_ext.ext_size = 0;
  ------------------
  |  |  225|   239k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  801|   239k|	m->m_ext.ext_type = 0;
  ------------------
  |  |  225|   239k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  802|   239k|	m->m_flags &= ~M_EXT;
  ------------------
  |  |  221|   239k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	m->m_flags &= ~M_EXT;
  ------------------
  |  |  233|   239k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  803|   239k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  804|   239k|	mb_dtor_mbuf(m, NULL);
  805|   239k|#endif
  806|   239k|	SCTP_ZONE_FREE(zone_mbuf, m);
  ------------------
  |  |  707|   239k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|   239k|	free(element);  \
  |  |  709|   239k|}
  ------------------
  807|       |
  808|       |	/*umem_cache_free(zone_mbuf, m);*/
  809|   239k|}
m_copym:
 1113|   189k|{
 1114|   189k|	struct mbuf *n, **np;
 1115|   189k|	int off = off0;
 1116|   189k|	struct mbuf *top;
 1117|   189k|	int copyhdr = 0;
 1118|       |
 1119|   189k|	KASSERT(off >= 0, ("m_copym, negative off %d", off));
  ------------------
  |  |  112|   189k|	do {                         \
  |  |  113|   189k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 189k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   189k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 189k]
  |  |  ------------------
  ------------------
 1120|   189k|	KASSERT(len >= 0, ("m_copym, negative len %d", len));
  ------------------
  |  |  112|   189k|	do {                         \
  |  |  113|   189k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 189k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   189k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 189k]
  |  |  ------------------
  ------------------
 1121|   189k|	KASSERT(m != NULL, ("m_copym, m is NULL"));
  ------------------
  |  |  112|   189k|	do {                         \
  |  |  113|   189k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 189k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   189k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 189k]
  |  |  ------------------
  ------------------
 1122|       |
 1123|       |#if !defined(INVARIANTS)
 1124|       |	if (m == NULL) {
 1125|       |		return (NULL);
 1126|       |	}
 1127|       |#endif
 1128|   189k|	if (off == 0 && m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|    858|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (off == 0 && m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|    858|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1128:6): [True: 858, False: 188k]
  |  Branch (1128:18): [True: 0, False: 858]
  ------------------
 1129|      0|		copyhdr = 1;
 1130|  1.51M|	while (off > 0) {
  ------------------
  |  Branch (1130:9): [True: 1.51M, False: 1.42k]
  ------------------
 1131|  1.51M|		KASSERT(m != NULL, ("m_copym, offset > size of mbuf chain"));
  ------------------
  |  |  112|  1.51M|	do {                         \
  |  |  113|  1.51M|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.51M]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  1.51M|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.51M]
  |  |  ------------------
  ------------------
 1132|  1.51M|		if (off < m->m_len)
  ------------------
  |  |  218|  1.51M|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1132:7): [True: 188k, False: 1.32M]
  ------------------
 1133|   188k|			break;
 1134|  1.32M|		off -= m->m_len;
  ------------------
  |  |  218|  1.32M|#define	m_len		m_hdr.mh_len
  ------------------
 1135|  1.32M|		m = m->m_next;
  ------------------
  |  |  217|  1.32M|#define	m_next		m_hdr.mh_next
  ------------------
 1136|  1.32M|	}
 1137|   189k|	np = &top;
 1138|   189k|	top = 0;
 1139|   418k|	while (len > 0) {
  ------------------
  |  Branch (1139:9): [True: 229k, False: 188k]
  ------------------
 1140|   229k|		if (m == NULL) {
  ------------------
  |  Branch (1140:7): [True: 858, False: 229k]
  ------------------
 1141|    858|			KASSERT(len == M_COPYALL, ("m_copym, length > size of mbuf chain"));
  ------------------
  |  |  112|    858|	do {                         \
  |  |  113|    858|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 858]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    858|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 858]
  |  |  ------------------
  ------------------
 1142|    858|			break;
 1143|    858|		}
 1144|   229k|		if (copyhdr)
  ------------------
  |  Branch (1144:7): [True: 0, False: 229k]
  ------------------
 1145|      0|			MGETHDR(n, wait, m->m_type);
  ------------------
  |  |   68|      0|#define	MGETHDR(m, how, type)	((m) = m_gethdr((how), (type)))
  ------------------
 1146|   229k|		else
 1147|   229k|			MGET(n, wait, m->m_type);
  ------------------
  |  |   67|   229k|#define	MGET(m, how, type)	((m) = m_get((how), (type)))
  ------------------
 1148|   229k|		*np = n;
 1149|   229k|		if (n == NULL)
  ------------------
  |  Branch (1149:7): [True: 0, False: 229k]
  ------------------
 1150|      0|			goto nospace;
 1151|   229k|		if (copyhdr) {
  ------------------
  |  Branch (1151:7): [True: 0, False: 229k]
  ------------------
 1152|      0|			if (!m_dup_pkthdr(n, m, wait))
  ------------------
  |  Branch (1152:8): [True: 0, False: 0]
  ------------------
 1153|      0|				goto nospace;
 1154|      0|			if (len == M_COPYALL)
  ------------------
  |  |   75|      0|#define	M_COPYALL	1000000000
  ------------------
  |  Branch (1154:8): [True: 0, False: 0]
  ------------------
 1155|      0|				n->m_pkthdr.len -= off0;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1156|      0|			else
 1157|      0|				n->m_pkthdr.len = len;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1158|      0|			copyhdr = 0;
 1159|      0|		}
 1160|   229k|		n->m_len = min(len, m->m_len - off);
  ------------------
  |  |  218|   229k|#define	m_len		m_hdr.mh_len
  ------------------
              		n->m_len = min(len, m->m_len - off);
  ------------------
  |  |   66|   229k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 40.2k, False: 188k]
  |  |  ------------------
  ------------------
 1161|   229k|		if (m->m_flags & M_EXT) {
  ------------------
  |  |  221|   229k|#define	m_flags		m_hdr.mh_flags
  ------------------
              		if (m->m_flags & M_EXT) {
  ------------------
  |  |  233|   229k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  |  Branch (1161:7): [True: 165k, False: 63.9k]
  ------------------
 1162|   165k|			n->m_data = m->m_data + off;
  ------------------
  |  |  219|   165k|#define	m_data		m_hdr.mh_data
  ------------------
              			n->m_data = m->m_data + off;
  ------------------
  |  |  219|   165k|#define	m_data		m_hdr.mh_data
  ------------------
 1163|   165k|			mb_dupcl(n, m);
 1164|   165k|		} else
 1165|  63.9k|			memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + off, (u_int)n->m_len);
  ------------------
  |  |   96|  63.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  63.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + off, (u_int)n->m_len);
  ------------------
  |  |   96|  63.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  63.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + off, (u_int)n->m_len);
  ------------------
  |  |  218|  63.9k|#define	m_len		m_hdr.mh_len
  ------------------
 1166|   229k|		if (len != M_COPYALL)
  ------------------
  |  |   75|   229k|#define	M_COPYALL	1000000000
  ------------------
  |  Branch (1166:7): [True: 205k, False: 23.7k]
  ------------------
 1167|   205k|			len -= n->m_len;
  ------------------
  |  |  218|   205k|#define	m_len		m_hdr.mh_len
  ------------------
 1168|   229k|		off = 0;
 1169|   229k|		m = m->m_next;
  ------------------
  |  |  217|   229k|#define	m_next		m_hdr.mh_next
  ------------------
 1170|   229k|		np = &n->m_next;
  ------------------
  |  |  217|   229k|#define	m_next		m_hdr.mh_next
  ------------------
 1171|   229k|	}
 1172|       |
 1173|   189k|	return (top);
 1174|      0|nospace:
 1175|      0|	m_freem(top);
 1176|       |	return (NULL);
 1177|   189k|}
m_copyback:
 1265|  23.7k|{
 1266|  23.7k|	int mlen;
 1267|  23.7k|	struct mbuf *m = m0, *n;
 1268|  23.7k|	int totlen = 0;
 1269|       |
 1270|  23.7k|	if (m0 == NULL)
  ------------------
  |  Branch (1270:6): [True: 0, False: 23.7k]
  ------------------
 1271|      0|		return;
 1272|  23.7k|	while (off > (mlen = m->m_len)) {
  ------------------
  |  |  218|  23.7k|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1272:9): [True: 0, False: 23.7k]
  ------------------
 1273|      0|		off -= mlen;
 1274|      0|		totlen += mlen;
 1275|      0|		if (m->m_next == NULL) {
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1275:7): [True: 0, False: 0]
  ------------------
 1276|      0|			n = m_get(M_NOWAIT, m->m_type);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			n = m_get(M_NOWAIT, m->m_type);
  ------------------
  |  |  220|      0|#define	m_type		m_hdr.mh_type
  ------------------
 1277|      0|			if (n == NULL)
  ------------------
  |  Branch (1277:8): [True: 0, False: 0]
  ------------------
 1278|      0|				goto out;
 1279|      0|			memset(mtod(n, caddr_t), 0, MLEN);
  ------------------
  |  |   96|      0|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			memset(mtod(n, caddr_t), 0, MLEN);
  ------------------
  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|      0|#define MSIZE 256
  |  |  ------------------
  ------------------
 1280|      0|			n->m_len = min(MLEN, len + off);
  ------------------
  |  |  218|      0|#define	m_len		m_hdr.mh_len
  ------------------
              			n->m_len = min(MLEN, len + off);
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1281|      0|			m->m_next = n;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
 1282|      0|		}
 1283|      0|		m = m->m_next;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
 1284|      0|	}
 1285|  50.2k|	while (len > 0) {
  ------------------
  |  Branch (1285:9): [True: 50.2k, False: 0]
  ------------------
 1286|  50.2k|		mlen = min (m->m_len - off, len);
  ------------------
  |  |   66|  50.2k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 50.2k]
  |  |  ------------------
  ------------------
 1287|  50.2k|		memcpy(off + mtod(m, caddr_t), cp, (u_int)mlen);
  ------------------
  |  |   96|  50.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  50.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1288|  50.2k|		cp += mlen;
 1289|  50.2k|		len -= mlen;
 1290|  50.2k|		mlen += off;
 1291|  50.2k|		off = 0;
 1292|  50.2k|		totlen += mlen;
 1293|  50.2k|		if (len == 0)
  ------------------
  |  Branch (1293:7): [True: 23.7k, False: 26.5k]
  ------------------
 1294|  23.7k|			break;
 1295|  26.5k|		if (m->m_next == NULL) {
  ------------------
  |  |  217|  26.5k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1295:7): [True: 0, False: 26.5k]
  ------------------
 1296|      0|			n = m_get(M_NOWAIT, m->m_type);
  ------------------
  |  |   60|      0|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			n = m_get(M_NOWAIT, m->m_type);
  ------------------
  |  |  220|      0|#define	m_type		m_hdr.mh_type
  ------------------
 1297|      0|			if (n == NULL)
  ------------------
  |  Branch (1297:8): [True: 0, False: 0]
  ------------------
 1298|      0|				break;
 1299|      0|			n->m_len = min(MLEN, len);
  ------------------
  |  |  218|      0|#define	m_len		m_hdr.mh_len
  ------------------
              			n->m_len = min(MLEN, len);
  ------------------
  |  |   66|      0|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1300|      0|			m->m_next = n;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
 1301|      0|		}
 1302|  26.5k|		m = m->m_next;
  ------------------
  |  |  217|  26.5k|#define	m_next		m_hdr.mh_next
  ------------------
 1303|  26.5k|	}
 1304|  23.7k|out:	if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
  ------------------
  |  |  221|  23.7k|#define	m_flags		m_hdr.mh_flags
  ------------------
              out:	if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
  ------------------
  |  |  234|  23.7k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
              out:	if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
  ------------------
  |  |  224|  23.7k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  |  Branch (1304:10): [True: 23.7k, False: 0]
  |  Branch (1304:44): [True: 0, False: 23.7k]
  ------------------
 1305|      0|		m->m_pkthdr.len = totlen;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1306|  23.7k|}
m_prepend:
 1348|   134k|{
 1349|   134k|	struct mbuf *mn;
 1350|       |
 1351|   134k|	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|   134k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|   134k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1351:6): [True: 0, False: 134k]
  ------------------
 1352|      0|		MGETHDR(mn, how, m->m_type);
  ------------------
  |  |   68|      0|#define	MGETHDR(m, how, type)	((m) = m_gethdr((how), (type)))
  ------------------
 1353|   134k|	else
 1354|   134k|		MGET(mn, how, m->m_type);
  ------------------
  |  |   67|   134k|#define	MGET(m, how, type)	((m) = m_get((how), (type)))
  ------------------
 1355|   134k|	if (mn == NULL) {
  ------------------
  |  Branch (1355:6): [True: 0, False: 134k]
  ------------------
 1356|      0|		m_freem(m);
 1357|      0|		return (NULL);
 1358|      0|	}
 1359|   134k|	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|   134k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|   134k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1359:6): [True: 0, False: 134k]
  ------------------
 1360|      0|		M_MOVE_PKTHDR(mn, m);
  ------------------
  |  |   66|      0|#define	M_MOVE_PKTHDR(to, from)	m_move_pkthdr((to), (from))
  ------------------
 1361|   134k|	mn->m_next = m;
  ------------------
  |  |  217|   134k|#define	m_next		m_hdr.mh_next
  ------------------
 1362|   134k|	m = mn;
 1363|   134k|	if (m->m_flags & M_PKTHDR) {
  ------------------
  |  |  221|   134k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_PKTHDR) {
  ------------------
  |  |  234|   134k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1363:6): [True: 0, False: 134k]
  ------------------
 1364|      0|		if (len < MHLEN)
  ------------------
  |  |  139|      0|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1364:7): [True: 0, False: 0]
  ------------------
 1365|      0|			MH_ALIGN(m, len);
  ------------------
  |  |  399|      0|#define	MH_ALIGN(m, len) do {						\
  |  |  400|      0|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  401|      0|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  402|      0|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  403|      0|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  404|      0|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  219|      0|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  139|      0|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  ------------------
  |  |  |  |  |  |  138|      0|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   47|      0|#define MSIZE 256
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  405|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (405:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1366|   134k|	} else {
 1367|   134k|		if (len < MLEN)
  ------------------
  |  |  138|   134k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   134k|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (1367:7): [True: 134k, False: 0]
  ------------------
 1368|   134k|			M_ALIGN(m, len);
  ------------------
  |  |  387|   134k|#define	M_ALIGN(m, len) do {						\
  |  |  388|   134k|        KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)),                     \
  |  |  ------------------
  |  |  |  |  112|   134k|	do {                         \
  |  |  |  |  113|   134k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 134k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   134k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 134k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  389|   134k|                ("%s: M_ALIGN not normal mbuf", __func__));             \
  |  |  390|   134k|        KASSERT((m)->m_data == (m)->m_dat,                              \
  |  |  ------------------
  |  |  |  |  112|   134k|	do {                         \
  |  |  |  |  113|   134k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 134k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   134k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 134k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  391|   134k|                ("%s: M_ALIGN not a virgin mbuf", __func__));           \
  |  |  392|   134k|	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  219|   134k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  138|   134k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   134k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  393|   134k|} while (0)
  |  |  ------------------
  |  |  |  Branch (393:10): [Folded, False: 134k]
  |  |  ------------------
  ------------------
 1369|   134k|	}
 1370|   134k|	m->m_len = len;
  ------------------
  |  |  218|   134k|#define	m_len		m_hdr.mh_len
  ------------------
 1371|   134k|	return (m);
 1372|   134k|}
m_copydata:
 1380|   166k|{
 1381|   166k|	u_int count;
 1382|       |
 1383|   166k|	KASSERT(off >= 0, ("m_copydata, negative off %d", off));
  ------------------
  |  |  112|   166k|	do {                         \
  |  |  113|   166k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 166k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   166k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 166k]
  |  |  ------------------
  ------------------
 1384|   166k|	KASSERT(len >= 0, ("m_copydata, negative len %d", len));
  ------------------
  |  |  112|   166k|	do {                         \
  |  |  113|   166k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 166k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   166k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 166k]
  |  |  ------------------
  ------------------
 1385|   167k|	while (off > 0) {
  ------------------
  |  Branch (1385:9): [True: 1.59k, False: 165k]
  ------------------
 1386|  1.59k|		KASSERT(m != NULL, ("m_copydata, offset > size of mbuf chain"));
  ------------------
  |  |  112|  1.59k|	do {                         \
  |  |  113|  1.59k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.59k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  1.59k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.59k]
  |  |  ------------------
  ------------------
 1387|  1.59k|		if (off < m->m_len)
  ------------------
  |  |  218|  1.59k|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1387:7): [True: 892, False: 706]
  ------------------
 1388|    892|			break;
 1389|    706|		off -= m->m_len;
  ------------------
  |  |  218|    706|#define	m_len		m_hdr.mh_len
  ------------------
 1390|    706|		m = m->m_next;
  ------------------
  |  |  217|    706|#define	m_next		m_hdr.mh_next
  ------------------
 1391|    706|	}
 1392|   670k|	while (len > 0) {
  ------------------
  |  Branch (1392:9): [True: 503k, False: 166k]
  ------------------
 1393|   503k|		KASSERT(m != NULL, ("m_copydata, length > size of mbuf chain"));
  ------------------
  |  |  112|   503k|	do {                         \
  |  |  113|   503k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 503k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   503k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 503k]
  |  |  ------------------
  ------------------
 1394|   503k|		count = min(m->m_len - off, len);
  ------------------
  |  |   66|   503k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 1.14k, False: 502k]
  |  |  ------------------
  ------------------
 1395|   503k|		memcpy(cp, mtod(m, caddr_t) + off, count);
  ------------------
  |  |   96|   503k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   503k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1396|   503k|		len -= count;
 1397|   503k|		cp += count;
 1398|   503k|		off = 0;
 1399|   503k|		m = m->m_next;
  ------------------
  |  |  217|   503k|#define	m_next		m_hdr.mh_next
  ------------------
 1400|   503k|	}
 1401|   166k|}
m_adj:
 1431|  1.44k|{
 1432|  1.44k|	int len = req_len;
 1433|  1.44k|	struct mbuf *m;
 1434|  1.44k|	int count;
 1435|       |
 1436|  1.44k|	if ((m = mp) == NULL)
  ------------------
  |  Branch (1436:6): [True: 0, False: 1.44k]
  ------------------
 1437|      0|		return;
 1438|  1.44k|	if (len >= 0) {
  ------------------
  |  Branch (1438:6): [True: 741, False: 700]
  ------------------
 1439|       |		/*
 1440|       |		 * Trim from head.
 1441|       |		 */
 1442|  2.22k|		while (m != NULL && len > 0) {
  ------------------
  |  Branch (1442:10): [True: 2.22k, False: 0]
  |  Branch (1442:23): [True: 1.47k, False: 741]
  ------------------
 1443|  1.47k|			if (m->m_len <= len) {
  ------------------
  |  |  218|  1.47k|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1443:8): [True: 769, False: 710]
  ------------------
 1444|    769|				len -= m->m_len;
  ------------------
  |  |  218|    769|#define	m_len		m_hdr.mh_len
  ------------------
 1445|    769|				m->m_len = 0;
  ------------------
  |  |  218|    769|#define	m_len		m_hdr.mh_len
  ------------------
 1446|    769|				m = m->m_next;
  ------------------
  |  |  217|    769|#define	m_next		m_hdr.mh_next
  ------------------
 1447|    769|			} else {
 1448|    710|				m->m_len -= len;
  ------------------
  |  |  218|    710|#define	m_len		m_hdr.mh_len
  ------------------
 1449|    710|				m->m_data += len;
  ------------------
  |  |  219|    710|#define	m_data		m_hdr.mh_data
  ------------------
 1450|    710|				len = 0;
 1451|    710|			}
 1452|  1.47k|		}
 1453|    741|		m = mp;
 1454|    741|		if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  221|    741|#define	m_flags		m_hdr.mh_flags
  ------------------
              		if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  234|    741|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1454:7): [True: 118, False: 623]
  ------------------
 1455|    118|			m->m_pkthdr.len -= (req_len - len);
  ------------------
  |  |  224|    118|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1456|    741|	} else {
 1457|       |		/*
 1458|       |		 * Trim from tail.  Scan the mbuf chain,
 1459|       |		 * calculating its length and finding the last mbuf.
 1460|       |		 * If the adjustment only affects this mbuf, then just
 1461|       |		 * adjust and return.  Otherwise, rescan and truncate
 1462|       |		 * after the remaining size.
 1463|       |		 */
 1464|    700|		len = -len;
 1465|    700|		count = 0;
 1466|  1.33k|		for (;;) {
 1467|  1.33k|			count += m->m_len;
  ------------------
  |  |  218|  1.33k|#define	m_len		m_hdr.mh_len
  ------------------
 1468|  1.33k|			if (m->m_next == (struct mbuf *)0)
  ------------------
  |  |  217|  1.33k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1468:8): [True: 700, False: 635]
  ------------------
 1469|    700|				break;
 1470|    635|			m = m->m_next;
  ------------------
  |  |  217|    635|#define	m_next		m_hdr.mh_next
  ------------------
 1471|    635|		}
 1472|    700|		if (m->m_len >= len) {
  ------------------
  |  |  218|    700|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1472:7): [True: 700, False: 0]
  ------------------
 1473|    700|			m->m_len -= len;
  ------------------
  |  |  218|    700|#define	m_len		m_hdr.mh_len
  ------------------
 1474|    700|			if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  221|    700|#define	m_flags		m_hdr.mh_flags
  ------------------
              			if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  234|    700|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1474:8): [True: 83, False: 617]
  ------------------
 1475|     83|				mp->m_pkthdr.len -= len;
  ------------------
  |  |  224|     83|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1476|    700|			return;
 1477|    700|		}
 1478|      0|		count -= len;
 1479|      0|		if (count < 0)
  ------------------
  |  Branch (1479:7): [True: 0, False: 0]
  ------------------
 1480|      0|			count = 0;
 1481|       |		/*
 1482|       |		 * Correct length for chain is "count".
 1483|       |		 * Find the mbuf with last data, adjust its length,
 1484|       |		 * and toss data from remaining mbufs on chain.
 1485|       |		 */
 1486|      0|		m = mp;
 1487|      0|		if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|      0|#define	m_flags		m_hdr.mh_flags
  ------------------
              		if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|      0|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1487:7): [True: 0, False: 0]
  ------------------
 1488|      0|			m->m_pkthdr.len = count;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1489|      0|		for (; m; m = m->m_next) {
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1489:10): [True: 0, False: 0]
  ------------------
 1490|      0|			if (m->m_len >= count) {
  ------------------
  |  |  218|      0|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1490:8): [True: 0, False: 0]
  ------------------
 1491|      0|				m->m_len = count;
  ------------------
  |  |  218|      0|#define	m_len		m_hdr.mh_len
  ------------------
 1492|      0|				if (m->m_next != NULL) {
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1492:9): [True: 0, False: 0]
  ------------------
 1493|      0|					m_freem(m->m_next);
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
 1494|      0|					m->m_next = NULL;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
 1495|      0|				}
 1496|      0|				break;
 1497|      0|			}
 1498|      0|			count -= m->m_len;
  ------------------
  |  |  218|      0|#define	m_len		m_hdr.mh_len
  ------------------
 1499|      0|		}
 1500|      0|	}
 1501|  1.44k|}
user_mbuf.c:mbuf_constructor_dup:
   85|  1.31M|{
   86|  1.31M|	int flags = pkthdr;
   87|       |
   88|  1.31M|	m->m_next = NULL;
  ------------------
  |  |  217|  1.31M|#define	m_next		m_hdr.mh_next
  ------------------
   89|  1.31M|	m->m_nextpkt = NULL;
  ------------------
  |  |  222|  1.31M|#define	m_nextpkt	m_hdr.mh_nextpkt
  ------------------
   90|  1.31M|	m->m_len = 0;
  ------------------
  |  |  218|  1.31M|#define	m_len		m_hdr.mh_len
  ------------------
   91|  1.31M|	m->m_flags = flags;
  ------------------
  |  |  221|  1.31M|#define	m_flags		m_hdr.mh_flags
  ------------------
   92|  1.31M|	m->m_type = type;
  ------------------
  |  |  220|  1.31M|#define	m_type		m_hdr.mh_type
  ------------------
   93|  1.31M|	if (flags & M_PKTHDR) {
  ------------------
  |  |  234|  1.31M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (93:6): [True: 148k, False: 1.17M]
  ------------------
   94|   148k|		m->m_data = m->m_pktdat;
  ------------------
  |  |  219|   148k|#define	m_data		m_hdr.mh_data
  ------------------
              		m->m_data = m->m_pktdat;
  ------------------
  |  |  226|   148k|#define	m_pktdat	M_dat.MH.MH_dat.MH_databuf
  ------------------
   95|   148k|		m->m_pkthdr.rcvif = NULL;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   96|   148k|		m->m_pkthdr.len = 0;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   97|   148k|		m->m_pkthdr.header = NULL;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   98|   148k|		m->m_pkthdr.csum_flags = 0;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   99|   148k|		m->m_pkthdr.csum_data = 0;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  100|   148k|		m->m_pkthdr.tso_segsz = 0;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  101|   148k|		m->m_pkthdr.ether_vtag = 0;
  ------------------
  |  |  224|   148k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  102|   148k|		SLIST_INIT(&m->m_pkthdr.tags);
  ------------------
  |  Branch (102:3): [Folded, False: 148k]
  ------------------
  103|   148k|	} else
  104|  1.17M|		m->m_data = m->m_dat;
  ------------------
  |  |  219|  1.17M|#define	m_data		m_hdr.mh_data
  ------------------
              		m->m_data = m->m_dat;
  ------------------
  |  |  227|  1.17M|#define	m_dat		M_dat.M_databuf
  ------------------
  105|       |
  106|  1.31M|	return (0);
  107|  1.31M|}
user_mbuf.c:clust_constructor_dup:
  210|  75.0k|{
  211|  75.0k|	u_int *refcnt;
  212|  75.0k|	int type, size;
  213|       |
  214|  75.0k|	if (m == NULL) {
  ------------------
  |  Branch (214:6): [True: 0, False: 75.0k]
  ------------------
  215|      0|		return;
  216|      0|	}
  217|       |	/* Assigning cluster of MCLBYTES. TODO: Add jumbo frame functionality */
  218|  75.0k|	type = EXT_CLUSTER;
  ------------------
  |  |  270|  75.0k|#define	EXT_CLUSTER	1	/* mbuf cluster */
  ------------------
  219|  75.0k|	size = MCLBYTES;
  ------------------
  |  |   51|  75.0k|#define MCLBYTES 2048
  ------------------
  220|       |
  221|  75.0k|	refcnt = SCTP_ZONE_GET(zone_ext_refcnt, u_int);
  ------------------
  |  |  703|  75.0k|        (type *)malloc(zone);
  ------------------
  222|       |	/*refcnt = (u_int *)umem_cache_alloc(zone_ext_refcnt, UMEM_DEFAULT);*/
  223|       |#if !defined(SCTP_SIMPLE_ALLOCATOR)
  224|       |	if (refcnt == NULL) {
  225|       |		umem_reap();
  226|       |		refcnt = SCTP_ZONE_GET(zone_ext_refcnt, u_int);
  227|       |		/*refcnt = (u_int *)umem_cache_alloc(zone_ext_refcnt, UMEM_DEFAULT);*/
  228|       |	}
  229|       |#endif
  230|  75.0k|	*refcnt = 1;
  231|  75.0k|	m->m_ext.ext_buf = (caddr_t)m_clust;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  232|  75.0k|	m->m_data = m->m_ext.ext_buf;
  ------------------
  |  |  219|  75.0k|#define	m_data		m_hdr.mh_data
  ------------------
              	m->m_data = m->m_ext.ext_buf;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  233|  75.0k|	m->m_flags |= M_EXT;
  ------------------
  |  |  221|  75.0k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	m->m_flags |= M_EXT;
  ------------------
  |  |  233|  75.0k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  234|  75.0k|	m->m_ext.ext_free = NULL;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  235|  75.0k|	m->m_ext.ext_args = NULL;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  236|  75.0k|	m->m_ext.ext_size = size;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  237|  75.0k|	m->m_ext.ext_type = type;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  238|  75.0k|	m->m_ext.ref_cnt = refcnt;
  ------------------
  |  |  225|  75.0k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  239|  75.0k|	return;
  240|  75.0k|}
user_mbuf.c:mb_ctor_mbuf:
  569|  1.31M|{
  570|       |#if USING_MBUF_CONSTRUCTOR
  571|       |	struct mbuf *m;
  572|       |	struct mb_args *args;
  573|       |
  574|       |	int flags;
  575|       |	short type;
  576|       |
  577|       |	m = (struct mbuf *)mem;
  578|       |	args = (struct mb_args *)arg;
  579|       |	flags = args->flags;
  580|       |	type = args->type;
  581|       |
  582|       |	m->m_next = NULL;
  583|       |	m->m_nextpkt = NULL;
  584|       |	m->m_len = 0;
  585|       |	m->m_flags = flags;
  586|       |	m->m_type = type;
  587|       |	if (flags & M_PKTHDR) {
  588|       |		m->m_data = m->m_pktdat;
  589|       |		m->m_pkthdr.rcvif = NULL;
  590|       |		m->m_pkthdr.len = 0;
  591|       |		m->m_pkthdr.header = NULL;
  592|       |		m->m_pkthdr.csum_flags = 0;
  593|       |		m->m_pkthdr.csum_data = 0;
  594|       |		m->m_pkthdr.tso_segsz = 0;
  595|       |		m->m_pkthdr.ether_vtag = 0;
  596|       |		SLIST_INIT(&m->m_pkthdr.tags);
  597|       |	} else
  598|       |		m->m_data = m->m_dat;
  599|       |#endif
  600|  1.31M|	return (0);
  601|  1.31M|}
user_mbuf.c:mb_dtor_mbuf:
  614|  1.31M|{
  615|  1.31M|	struct mbuf *m;
  616|       |
  617|  1.31M|	m = (struct mbuf *)mem;
  618|  1.31M|	if ((m->m_flags & M_PKTHDR) != 0) {
  ------------------
  |  |  221|  1.31M|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if ((m->m_flags & M_PKTHDR) != 0) {
  ------------------
  |  |  234|  1.31M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (618:6): [True: 148k, False: 1.17M]
  ------------------
  619|       |		m_tag_delete_chain(m, NULL);
  620|   148k|	}
  621|  1.31M|}
user_mbuf.c:mb_ctor_clust:
  634|  75.0k|{
  635|       |
  636|       |#if USING_MBUF_CONSTRUCTOR
  637|       |	struct mbuf *m;
  638|       |	struct clust_args * cla;
  639|       |	u_int *refcnt;
  640|       |	int type, size;
  641|       |	sctp_zone_t zone;
  642|       |
  643|       |	/* Assigning cluster of MCLBYTES. TODO: Add jumbo frame functionality */
  644|       |	type = EXT_CLUSTER;
  645|       |	zone = zone_clust;
  646|       |	size = MCLBYTES;
  647|       |
  648|       |	cla = (struct clust_args *)arg;
  649|       |	m = cla->parent_mbuf;
  650|       |
  651|       |	refcnt = SCTP_ZONE_GET(zone_ext_refcnt, u_int);
  652|       |	/*refcnt = (u_int *)umem_cache_alloc(zone_ext_refcnt, UMEM_DEFAULT);*/
  653|       |	*refcnt = 1;
  654|       |
  655|       |	if (m != NULL) {
  656|       |		m->m_ext.ext_buf = (caddr_t)mem;
  657|       |		m->m_data = m->m_ext.ext_buf;
  658|       |		m->m_flags |= M_EXT;
  659|       |		m->m_ext.ext_free = NULL;
  660|       |		m->m_ext.ext_args = NULL;
  661|       |		m->m_ext.ext_size = size;
  662|       |		m->m_ext.ext_type = type;
  663|       |		m->m_ext.ref_cnt = refcnt;
  664|       |	}
  665|       |#endif
  666|  75.0k|	return (0);
  667|  75.0k|}
user_mbuf.c:mb_dtor_clust:
  672|  74.7k|{
  673|       |
  674|       |  /* mem is of type caddr_t.  In sys/types.h we have typedef char * caddr_t;  */
  675|       |  /* mb_dtor_clust is called at time of umem_cache_destroy() (the number of times
  676|       |   * mb_dtor_clust is called is equal to the number of individual mbufs allocated
  677|       |   * from zone_clust. Similarly for mb_dtor_mbuf).
  678|       |   * At this point the following:
  679|       |   *  struct mbuf *m;
  680|       |   *   m = (struct mbuf *)arg;
  681|       |   *  assert (*(m->m_ext.ref_cnt) == 0); is not meaningful since  m->m_ext.ref_cnt = NULL;
  682|       |   *  has been done in mb_free_ext().
  683|       |   */
  684|       |
  685|  74.7k|}
user_mbuf.c:mb_dupcl:
 1084|   165k|{
 1085|   165k|	KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__));
  ------------------
  |  |  112|   165k|	do {                         \
  |  |  113|   165k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 165k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   165k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 165k]
  |  |  ------------------
  ------------------
 1086|   165k|	KASSERT(m->m_ext.ref_cnt != NULL, ("%s: ref_cnt not set", __func__));
  ------------------
  |  |  112|   165k|	do {                         \
  |  |  113|   165k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 165k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   165k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 165k]
  |  |  ------------------
  ------------------
 1087|   165k|	KASSERT((n->m_flags & M_EXT) == 0, ("%s: M_EXT set", __func__));
  ------------------
  |  |  112|   165k|	do {                         \
  |  |  113|   165k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 165k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   165k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 165k]
  |  |  ------------------
  ------------------
 1088|       |
 1089|   165k|	if (*(m->m_ext.ref_cnt) == 1)
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  |  Branch (1089:6): [True: 3.13k, False: 162k]
  ------------------
 1090|  3.13k|		*(m->m_ext.ref_cnt) += 1;
  ------------------
  |  |  225|  3.13k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1091|   162k|	else
 1092|   162k|		atomic_add_int(m->m_ext.ref_cnt, 1);
  ------------------
  |  |   94|   162k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 1093|   165k|	n->m_ext.ext_buf = m->m_ext.ext_buf;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_buf = m->m_ext.ext_buf;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1094|   165k|	n->m_ext.ext_free = m->m_ext.ext_free;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_free = m->m_ext.ext_free;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1095|   165k|	n->m_ext.ext_args = m->m_ext.ext_args;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_args = m->m_ext.ext_args;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1096|   165k|	n->m_ext.ext_size = m->m_ext.ext_size;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_size = m->m_ext.ext_size;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1097|   165k|	n->m_ext.ref_cnt = m->m_ext.ref_cnt;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ref_cnt = m->m_ext.ref_cnt;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1098|   165k|	n->m_ext.ext_type = m->m_ext.ext_type;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_type = m->m_ext.ext_type;
  ------------------
  |  |  225|   165k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1099|   165k|	n->m_flags |= M_EXT;
  ------------------
  |  |  221|   165k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	n->m_flags |= M_EXT;
  ------------------
  |  |  233|   165k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
 1100|   165k|}

recv_thread_init:
 1108|      1|{
 1109|      1|#if defined(INET)
 1110|      1|	struct sockaddr_in addr_ipv4;
 1111|      1|	const int hdrincl = 1;
 1112|      1|#endif
 1113|      1|#if defined(INET6)
 1114|      1|	struct sockaddr_in6 addr_ipv6;
 1115|      1|#endif
 1116|      1|#if defined(INET) || defined(INET6)
 1117|      1|	const int on = 1;
 1118|      1|#endif
 1119|      1|#if !defined(_WIN32)
 1120|      1|	struct timeval timeout;
 1121|       |
 1122|      1|	memset(&timeout, 0, sizeof(struct timeval));
 1123|      1|	timeout.tv_sec  = (SOCKET_TIMEOUT / 1000);
  ------------------
  |  | 1105|      1|#define SOCKET_TIMEOUT 100 /* in ms */
  ------------------
 1124|      1|	timeout.tv_usec = (SOCKET_TIMEOUT % 1000) * 1000;
  ------------------
  |  | 1105|      1|#define SOCKET_TIMEOUT 100 /* in ms */
  ------------------
 1125|       |#else
 1126|       |	unsigned int timeout = SOCKET_TIMEOUT; /* Timeout in milliseconds */
 1127|       |#endif
 1128|       |#if defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__)
 1129|       |	if (SCTP_BASE_VAR(userspace_route) == -1) {
 1130|       |		if ((SCTP_BASE_VAR(userspace_route) = socket(AF_ROUTE, SOCK_RAW, 0)) == -1) {
 1131|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't create routing socket (errno = %d).\n", errno);
 1132|       |		}
 1133|       |#if 0
 1134|       |		struct sockaddr_nl sanl;
 1135|       |
 1136|       |		if ((SCTP_BASE_VAR(userspace_route) = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE)) < 0) {
 1137|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't create routing socket (errno = %d.\n", errno);
 1138|       |		}
 1139|       |		memset(&sanl, 0, sizeof(sanl));
 1140|       |		sanl.nl_family = AF_NETLINK;
 1141|       |		sanl.nl_groups = 0;
 1142|       |#ifdef INET
 1143|       |		sanl.nl_groups |= RTMGRP_IPV4_IFADDR;
 1144|       |#endif
 1145|       |#ifdef INET6
 1146|       |		sanl.nl_groups |= RTMGRP_IPV6_IFADDR;
 1147|       |#endif
 1148|       |		if (bind(SCTP_BASE_VAR(userspace_route), (struct sockaddr *) &sanl, sizeof(sanl)) < 0) {
 1149|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't bind routing socket (errno = %d).\n", errno);
 1150|       |			close(SCTP_BASE_VAR(userspace_route));
 1151|       |			SCTP_BASE_VAR(userspace_route) = -1;
 1152|       |		}
 1153|       |#endif
 1154|       |		if (SCTP_BASE_VAR(userspace_route) != -1) {
 1155|       |			if (setsockopt(SCTP_BASE_VAR(userspace_route), SOL_SOCKET, SO_RCVTIMEO,(const void*)&timeout, sizeof(struct timeval)) < 0) {
 1156|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on routing socket (errno = %d).\n", errno);
 1157|       |#if defined(_WIN32)
 1158|       |				closesocket(SCTP_BASE_VAR(userspace_route));
 1159|       |#else
 1160|       |				close(SCTP_BASE_VAR(userspace_route));
 1161|       |#endif
 1162|       |				SCTP_BASE_VAR(userspace_route) = -1;
 1163|       |			}
 1164|       |		}
 1165|       |	}
 1166|       |#endif
 1167|      1|#if defined(INET)
 1168|      1|	if (SCTP_BASE_VAR(userspace_rawsctp) == -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1168:6): [True: 1, False: 0]
  ------------------
 1169|      1|		if ((SCTP_BASE_VAR(userspace_rawsctp) = socket(AF_INET, SOCK_RAW, IPPROTO_SCTP)) == -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1169:7): [True: 0, False: 1]
  ------------------
 1170|       |#if defined(_WIN32)
 1171|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't create raw socket for IPv4 (errno = %d).\n", WSAGetLastError());
 1172|       |#else
 1173|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't create raw socket for IPv4 (errno = %d).\n", errno);
 1174|      0|#endif
 1175|      1|		} else {
 1176|       |			/* complete setting up the raw SCTP socket */
 1177|      1|			if (setsockopt(SCTP_BASE_VAR(userspace_rawsctp), IPPROTO_IP, IP_HDRINCL,(const void*)&hdrincl, sizeof(int)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1177:8): [True: 0, False: 1]
  ------------------
 1178|       |#if defined(_WIN32)
 1179|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IP_HDRINCL (errno = %d).\n", WSAGetLastError());
 1180|       |				closesocket(SCTP_BASE_VAR(userspace_rawsctp));
 1181|       |#else
 1182|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set IP_HDRINCL (errno = %d).\n", errno);
 1183|      0|				close(SCTP_BASE_VAR(userspace_rawsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1184|      0|#endif
 1185|      0|				SCTP_BASE_VAR(userspace_rawsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1186|      1|			} else if (setsockopt(SCTP_BASE_VAR(userspace_rawsctp), SOL_SOCKET, SO_RCVTIMEO, (const void *)&timeout, sizeof(timeout)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1186:15): [True: 0, False: 1]
  ------------------
 1187|       |#if defined(_WIN32)
 1188|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/IPv4 (errno = %d).\n", WSAGetLastError());
 1189|       |				closesocket(SCTP_BASE_VAR(userspace_rawsctp));
 1190|       |#else
 1191|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/IPv4 (errno = %d).\n", errno);
 1192|      0|				close(SCTP_BASE_VAR(userspace_rawsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1193|      0|#endif
 1194|      0|				SCTP_BASE_VAR(userspace_rawsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1195|      1|			} else {
 1196|      1|				memset((void *)&addr_ipv4, 0, sizeof(struct sockaddr_in));
 1197|       |#ifdef HAVE_SIN_LEN
 1198|       |				addr_ipv4.sin_len         = sizeof(struct sockaddr_in);
 1199|       |#endif
 1200|      1|				addr_ipv4.sin_family      = AF_INET;
 1201|      1|				addr_ipv4.sin_port        = htons(0);
 1202|      1|				addr_ipv4.sin_addr.s_addr = htonl(INADDR_ANY);
 1203|      1|				if (bind(SCTP_BASE_VAR(userspace_rawsctp), (const struct sockaddr *)&addr_ipv4, sizeof(struct sockaddr_in)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1203:9): [True: 0, False: 1]
  ------------------
 1204|       |#if defined(_WIN32)
 1205|       |					SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/IPv4 (errno = %d).\n", WSAGetLastError());
 1206|       |					closesocket(SCTP_BASE_VAR(userspace_rawsctp));
 1207|       |#else
 1208|      0|					SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/IPv4 (errno = %d).\n", errno);
 1209|      0|					close(SCTP_BASE_VAR(userspace_rawsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1210|      0|#endif
 1211|      0|					SCTP_BASE_VAR(userspace_rawsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1212|      1|				} else {
 1213|      1|					setReceiveBufferSize(SCTP_BASE_VAR(userspace_rawsctp), SB_RAW); /* 128K */
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              					setReceiveBufferSize(SCTP_BASE_VAR(userspace_rawsctp), SB_RAW); /* 128K */
  ------------------
  |  |  199|      1|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1214|      1|					setSendBufferSize(SCTP_BASE_VAR(userspace_rawsctp), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              					setSendBufferSize(SCTP_BASE_VAR(userspace_rawsctp), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  199|      1|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1215|      1|				}
 1216|      1|			}
 1217|      1|		}
 1218|      1|	}
 1219|      1|	if ((SCTP_BASE_VAR(userspace_udpsctp) == -1) && (SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) != 0)) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              	if ((SCTP_BASE_VAR(userspace_udpsctp) == -1) && (SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) != 0)) {
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (1219:6): [True: 1, False: 0]
  |  Branch (1219:50): [True: 0, False: 1]
  ------------------
 1220|      0|		if ((SCTP_BASE_VAR(userspace_udpsctp) = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1220:7): [True: 0, False: 0]
  ------------------
 1221|       |#if defined(_WIN32)
 1222|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't create socket for SCTP/UDP/IPv4 (errno = %d).\n", WSAGetLastError());
 1223|       |#else
 1224|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't create socket for SCTP/UDP/IPv4 (errno = %d).\n", errno);
 1225|      0|#endif
 1226|      0|		} else {
 1227|      0|#if defined(IP_PKTINFO)
 1228|      0|			if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp), IPPROTO_IP, IP_PKTINFO, (const void *)&on, (int)sizeof(int)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1228:8): [True: 0, False: 0]
  ------------------
 1229|       |#else
 1230|       |			if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp), IPPROTO_IP, IP_RECVDSTADDR, (const void *)&on, (int)sizeof(int)) < 0) {
 1231|       |#endif
 1232|       |#if defined(_WIN32)
 1233|       |#if defined(IP_PKTINFO)
 1234|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IP_PKTINFO on socket for SCTP/UDP/IPv4 (errno = %d).\n", WSAGetLastError());
 1235|       |#else
 1236|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IP_RECVDSTADDR on socket for SCTP/UDP/IPv4 (errno = %d).\n", WSAGetLastError());
 1237|       |#endif
 1238|       |				closesocket(SCTP_BASE_VAR(userspace_udpsctp));
 1239|       |#else
 1240|      0|#if defined(IP_PKTINFO)
 1241|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set IP_PKTINFO on socket for SCTP/UDP/IPv4 (errno = %d).\n", errno);
 1242|       |#else
 1243|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IP_RECVDSTADDR on socket for SCTP/UDP/IPv4 (errno = %d).\n", errno);
 1244|       |#endif
 1245|      0|				close(SCTP_BASE_VAR(userspace_udpsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1246|      0|#endif
 1247|      0|				SCTP_BASE_VAR(userspace_udpsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1248|      0|			} else if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp), SOL_SOCKET, SO_RCVTIMEO, (const void *)&timeout, sizeof(timeout)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1248:15): [True: 0, False: 0]
  ------------------
 1249|       |#if defined(_WIN32)
 1250|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/UDP/IPv4 (errno = %d).\n", WSAGetLastError());
 1251|       |				closesocket(SCTP_BASE_VAR(userspace_udpsctp));
 1252|       |#else
 1253|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/UDP/IPv4 (errno = %d).\n", errno);
 1254|      0|				close(SCTP_BASE_VAR(userspace_udpsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1255|      0|#endif
 1256|      0|				SCTP_BASE_VAR(userspace_udpsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1257|      0|			} else {
 1258|      0|				memset((void *)&addr_ipv4, 0, sizeof(struct sockaddr_in));
 1259|       |#ifdef HAVE_SIN_LEN
 1260|       |				addr_ipv4.sin_len         = sizeof(struct sockaddr_in);
 1261|       |#endif
 1262|      0|				addr_ipv4.sin_family      = AF_INET;
 1263|      0|				addr_ipv4.sin_port        = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port));
 1264|      0|				addr_ipv4.sin_addr.s_addr = htonl(INADDR_ANY);
 1265|      0|				if (bind(SCTP_BASE_VAR(userspace_udpsctp), (const struct sockaddr *)&addr_ipv4, sizeof(struct sockaddr_in)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1265:9): [True: 0, False: 0]
  ------------------
 1266|       |#if defined(_WIN32)
 1267|       |					SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/UDP/IPv4 (errno = %d).\n", WSAGetLastError());
 1268|       |					closesocket(SCTP_BASE_VAR(userspace_udpsctp));
 1269|       |#else
 1270|      0|					SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/UDP/IPv4 (errno = %d).\n", errno);
 1271|      0|					close(SCTP_BASE_VAR(userspace_udpsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1272|      0|#endif
 1273|      0|					SCTP_BASE_VAR(userspace_udpsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1274|      0|				} else {
 1275|      0|					setReceiveBufferSize(SCTP_BASE_VAR(userspace_udpsctp), SB_RAW); /* 128K */
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              					setReceiveBufferSize(SCTP_BASE_VAR(userspace_udpsctp), SB_RAW); /* 128K */
  ------------------
  |  |  199|      0|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1276|      0|					setSendBufferSize(SCTP_BASE_VAR(userspace_udpsctp), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              					setSendBufferSize(SCTP_BASE_VAR(userspace_udpsctp), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  199|      0|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1277|      0|				}
 1278|      0|			}
 1279|      0|		}
 1280|      0|	}
 1281|      1|#endif
 1282|      1|#if defined(INET6)
 1283|      1|	if (SCTP_BASE_VAR(userspace_rawsctp6) == -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1283:6): [True: 1, False: 0]
  ------------------
 1284|      1|		if ((SCTP_BASE_VAR(userspace_rawsctp6) = socket(AF_INET6, SOCK_RAW, IPPROTO_SCTP)) == -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1284:7): [True: 0, False: 1]
  ------------------
 1285|       |#if defined(_WIN32)
 1286|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't create socket for SCTP/IPv6 (errno = %d).\n", WSAGetLastError());
 1287|       |#else
 1288|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't create socket for SCTP/IPv6 (errno = %d).\n", errno);
 1289|      0|#endif
 1290|      1|		} else {
 1291|       |			/* complete setting up the raw SCTP socket */
 1292|      1|#if defined(IPV6_RECVPKTINFO)
 1293|      1|			if (setsockopt(SCTP_BASE_VAR(userspace_rawsctp6), IPPROTO_IPV6, IPV6_RECVPKTINFO, (const void *)&on, sizeof(on)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1293:8): [True: 0, False: 1]
  ------------------
 1294|       |#if defined(_WIN32)
 1295|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_RECVPKTINFO on socket for SCTP/IPv6 (errno = %d).\n", WSAGetLastError());
 1296|       |				closesocket(SCTP_BASE_VAR(userspace_rawsctp6));
 1297|       |#else
 1298|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_RECVPKTINFO on socket for SCTP/IPv6 (errno = %d).\n", errno);
 1299|      0|				close(SCTP_BASE_VAR(userspace_rawsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1300|      0|#endif
 1301|      0|				SCTP_BASE_VAR(userspace_rawsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1302|      1|			} else {
 1303|       |#else
 1304|       |			if (setsockopt(SCTP_BASE_VAR(userspace_rawsctp6), IPPROTO_IPV6, IPV6_PKTINFO,(const void*)&on, sizeof(on)) < 0) {
 1305|       |#if defined(_WIN32)
 1306|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_PKTINFO on socket for SCTP/IPv6 (errno = %d).\n", WSAGetLastError());
 1307|       |				closesocket(SCTP_BASE_VAR(userspace_rawsctp6));
 1308|       |#else
 1309|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_PKTINFO on socket for SCTP/IPv6 (errno = %d).\n", errno);
 1310|       |				close(SCTP_BASE_VAR(userspace_rawsctp6));
 1311|       |#endif
 1312|       |				SCTP_BASE_VAR(userspace_rawsctp6) = -1;
 1313|       |			} else {
 1314|       |#endif
 1315|      1|				if (setsockopt(SCTP_BASE_VAR(userspace_rawsctp6), IPPROTO_IPV6, IPV6_V6ONLY, (const void*)&on, (socklen_t)sizeof(on)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1315:9): [True: 1, False: 0]
  ------------------
 1316|       |#if defined(_WIN32)
 1317|       |					SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_V6ONLY on socket for SCTP/IPv6 (errno = %d).\n", WSAGetLastError());
 1318|       |#else
 1319|      1|					SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_V6ONLY on socket for SCTP/IPv6 (errno = %d).\n", errno);
 1320|      1|#endif
 1321|      1|				}
 1322|      1|				if (setsockopt(SCTP_BASE_VAR(userspace_rawsctp6), SOL_SOCKET, SO_RCVTIMEO, (const void *)&timeout, sizeof(timeout)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1322:9): [True: 0, False: 1]
  ------------------
 1323|       |#if defined(_WIN32)
 1324|       |					SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/IPv6 (errno = %d).\n", WSAGetLastError());
 1325|       |					closesocket(SCTP_BASE_VAR(userspace_rawsctp6));
 1326|       |#else
 1327|      0|					SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/IPv6 (errno = %d).\n", errno);
 1328|      0|					close(SCTP_BASE_VAR(userspace_rawsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1329|      0|#endif
 1330|      0|					SCTP_BASE_VAR(userspace_rawsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1331|      1|				} else {
 1332|      1|					memset((void *)&addr_ipv6, 0, sizeof(struct sockaddr_in6));
 1333|       |#ifdef HAVE_SIN6_LEN
 1334|       |					addr_ipv6.sin6_len         = sizeof(struct sockaddr_in6);
 1335|       |#endif
 1336|      1|					addr_ipv6.sin6_family      = AF_INET6;
 1337|      1|					addr_ipv6.sin6_port        = htons(0);
 1338|      1|					addr_ipv6.sin6_addr        = in6addr_any;
 1339|      1|					if (bind(SCTP_BASE_VAR(userspace_rawsctp6), (const struct sockaddr *)&addr_ipv6, sizeof(struct sockaddr_in6)) < 0) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1339:10): [True: 0, False: 1]
  ------------------
 1340|       |#if defined(_WIN32)
 1341|       |						SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/IPv6 (errno = %d).\n", WSAGetLastError());
 1342|       |						closesocket(SCTP_BASE_VAR(userspace_rawsctp6));
 1343|       |#else
 1344|      0|						SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/IPv6 (errno = %d).\n", errno);
 1345|      0|						close(SCTP_BASE_VAR(userspace_rawsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1346|      0|#endif
 1347|      0|						SCTP_BASE_VAR(userspace_rawsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1348|      1|					} else {
 1349|      1|						setReceiveBufferSize(SCTP_BASE_VAR(userspace_rawsctp6), SB_RAW); /* 128K */
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              						setReceiveBufferSize(SCTP_BASE_VAR(userspace_rawsctp6), SB_RAW); /* 128K */
  ------------------
  |  |  199|      1|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1350|      1|						setSendBufferSize(SCTP_BASE_VAR(userspace_rawsctp6), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              						setSendBufferSize(SCTP_BASE_VAR(userspace_rawsctp6), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  199|      1|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1351|      1|					}
 1352|      1|				}
 1353|      1|			}
 1354|      1|		}
 1355|      1|	}
 1356|      1|	if ((SCTP_BASE_VAR(userspace_udpsctp6) == -1) && (SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) != 0)) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              	if ((SCTP_BASE_VAR(userspace_udpsctp6) == -1) && (SCTP_BASE_SYSCTL(sctp_udp_tunneling_port) != 0)) {
  ------------------
  |  |  590|      1|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (1356:6): [True: 1, False: 0]
  |  Branch (1356:51): [True: 0, False: 1]
  ------------------
 1357|      0|		if ((SCTP_BASE_VAR(userspace_udpsctp6) = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1357:7): [True: 0, False: 0]
  ------------------
 1358|       |#if defined(_WIN32)
 1359|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't create socket for SCTP/UDP/IPv6 (errno = %d).\n", WSAGetLastError());
 1360|       |#else
 1361|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't create socket for SCTP/UDP/IPv6 (errno = %d).\n", errno);
 1362|      0|#endif
 1363|      0|		}
 1364|      0|#if defined(IPV6_RECVPKTINFO)
 1365|      0|		if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp6), IPPROTO_IPV6, IPV6_RECVPKTINFO, (const void *)&on, (int)sizeof(int)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1365:7): [True: 0, False: 0]
  ------------------
 1366|       |#if defined(_WIN32)
 1367|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_RECVPKTINFO on socket for SCTP/UDP/IPv6 (errno = %d).\n", WSAGetLastError());
 1368|       |			closesocket(SCTP_BASE_VAR(userspace_udpsctp6));
 1369|       |#else
 1370|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_RECVPKTINFO on socket for SCTP/UDP/IPv6 (errno = %d).\n", errno);
 1371|      0|			close(SCTP_BASE_VAR(userspace_udpsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1372|      0|#endif
 1373|      0|			SCTP_BASE_VAR(userspace_udpsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1374|      0|		} else {
 1375|       |#else
 1376|       |		if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp6), IPPROTO_IPV6, IPV6_PKTINFO, (const void *)&on, (int)sizeof(int)) < 0) {
 1377|       |#if defined(_WIN32)
 1378|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_PKTINFO on socket for SCTP/UDP/IPv6 (errno = %d).\n", WSAGetLastError());
 1379|       |			closesocket(SCTP_BASE_VAR(userspace_udpsctp6));
 1380|       |#else
 1381|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_PKTINFO on socket for SCTP/UDP/IPv6 (errno = %d).\n", errno);
 1382|       |			close(SCTP_BASE_VAR(userspace_udpsctp6));
 1383|       |#endif
 1384|       |			SCTP_BASE_VAR(userspace_udpsctp6) = -1;
 1385|       |		} else {
 1386|       |#endif
 1387|      0|			if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp6), IPPROTO_IPV6, IPV6_V6ONLY, (const void *)&on, (socklen_t)sizeof(on)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1387:8): [True: 0, False: 0]
  ------------------
 1388|       |#if defined(_WIN32)
 1389|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_V6ONLY on socket for SCTP/UDP/IPv6 (errno = %d).\n", WSAGetLastError());
 1390|       |#else
 1391|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set IPV6_V6ONLY on socket for SCTP/UDP/IPv6 (errno = %d).\n", errno);
 1392|      0|#endif
 1393|      0|			}
 1394|      0|			if (setsockopt(SCTP_BASE_VAR(userspace_udpsctp6), SOL_SOCKET, SO_RCVTIMEO, (const void *)&timeout, sizeof(timeout)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1394:8): [True: 0, False: 0]
  ------------------
 1395|       |#if defined(_WIN32)
 1396|       |				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/UDP/IPv6 (errno = %d).\n", WSAGetLastError());
 1397|       |				closesocket(SCTP_BASE_VAR(userspace_udpsctp6));
 1398|       |#else
 1399|      0|				SCTPDBG(SCTP_DEBUG_USR, "Can't set timeout on socket for SCTP/UDP/IPv6 (errno = %d).\n", errno);
 1400|      0|				close(SCTP_BASE_VAR(userspace_udpsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1401|      0|#endif
 1402|      0|				SCTP_BASE_VAR(userspace_udpsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1403|      0|			} else {
 1404|      0|				memset((void *)&addr_ipv6, 0, sizeof(struct sockaddr_in6));
 1405|       |#ifdef HAVE_SIN6_LEN
 1406|       |				addr_ipv6.sin6_len         = sizeof(struct sockaddr_in6);
 1407|       |#endif
 1408|      0|				addr_ipv6.sin6_family      = AF_INET6;
 1409|      0|				addr_ipv6.sin6_port        = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port));
 1410|      0|				addr_ipv6.sin6_addr        = in6addr_any;
 1411|      0|				if (bind(SCTP_BASE_VAR(userspace_udpsctp6), (const struct sockaddr *)&addr_ipv6, sizeof(struct sockaddr_in6)) < 0) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1411:9): [True: 0, False: 0]
  ------------------
 1412|       |#if defined(_WIN32)
 1413|       |					SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/UDP/IPv6 (errno = %d).\n", WSAGetLastError());
 1414|       |					closesocket(SCTP_BASE_VAR(userspace_udpsctp6));
 1415|       |#else
 1416|      0|					SCTPDBG(SCTP_DEBUG_USR, "Can't bind socket for SCTP/UDP/IPv6 (errno = %d).\n", errno);
 1417|      0|					close(SCTP_BASE_VAR(userspace_udpsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1418|      0|#endif
 1419|      0|					SCTP_BASE_VAR(userspace_udpsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1420|      0|				} else {
 1421|      0|					setReceiveBufferSize(SCTP_BASE_VAR(userspace_udpsctp6), SB_RAW); /* 128K */
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              					setReceiveBufferSize(SCTP_BASE_VAR(userspace_udpsctp6), SB_RAW); /* 128K */
  ------------------
  |  |  199|      0|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1422|      0|					setSendBufferSize(SCTP_BASE_VAR(userspace_udpsctp6), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
              					setSendBufferSize(SCTP_BASE_VAR(userspace_udpsctp6), SB_RAW); /* 128K Is this setting net.inet.raw.maxdgram value? Should it be set to 64K? */
  ------------------
  |  |  199|      0|#define SB_RAW          (64*1024*2)    /*Aligning so->so_rcv.sb_hiwat with the receive buffer size of raw socket*/
  ------------------
 1423|      0|				}
 1424|      0|			}
 1425|      0|		}
 1426|      0|	}
 1427|      1|#endif
 1428|       |#if defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__)
 1429|       |#if defined(INET) || defined(INET6)
 1430|       |	if (SCTP_BASE_VAR(userspace_route) != -1) {
 1431|       |		int rc;
 1432|       |
 1433|       |		if ((rc = sctp_userspace_thread_create(&SCTP_BASE_VAR(recvthreadroute), &recv_function_route))) {
 1434|       |			SCTPDBG(SCTP_DEBUG_USR, "Can't start routing thread (%d).\n", rc);
 1435|       |			close(SCTP_BASE_VAR(userspace_route));
 1436|       |			SCTP_BASE_VAR(userspace_route) = -1;
 1437|       |		}
 1438|       |	}
 1439|       |#endif
 1440|       |#endif
 1441|      1|#if defined(INET)
 1442|      1|	if (SCTP_BASE_VAR(userspace_rawsctp) != -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1442:6): [True: 1, False: 0]
  ------------------
 1443|      1|		int rc;
 1444|       |
 1445|      1|		if ((rc = sctp_userspace_thread_create(&SCTP_BASE_VAR(recvthreadraw), &recv_function_raw))) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1445:7): [True: 0, False: 1]
  ------------------
 1446|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't start SCTP/IPv4 recv thread (%d).\n", rc);
 1447|       |#if defined(_WIN32)
 1448|       |			closesocket(SCTP_BASE_VAR(userspace_rawsctp));
 1449|       |#else
 1450|      0|			close(SCTP_BASE_VAR(userspace_rawsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1451|      0|#endif
 1452|      0|			SCTP_BASE_VAR(userspace_rawsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1453|      0|		}
 1454|      1|	}
 1455|      1|	if (SCTP_BASE_VAR(userspace_udpsctp) != -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1455:6): [True: 0, False: 1]
  ------------------
 1456|      0|		int rc;
 1457|       |
 1458|      0|		if ((rc = sctp_userspace_thread_create(&SCTP_BASE_VAR(recvthreadudp), &recv_function_udp))) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1458:7): [True: 0, False: 0]
  ------------------
 1459|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't start SCTP/UDP/IPv4 recv thread (%d).\n", rc);
 1460|       |#if defined(_WIN32)
 1461|       |			closesocket(SCTP_BASE_VAR(userspace_udpsctp));
 1462|       |#else
 1463|      0|			close(SCTP_BASE_VAR(userspace_udpsctp));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1464|      0|#endif
 1465|      0|			SCTP_BASE_VAR(userspace_udpsctp) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1466|      0|		}
 1467|      0|	}
 1468|      1|#endif
 1469|      1|#if defined(INET6)
 1470|      1|	if (SCTP_BASE_VAR(userspace_rawsctp6) != -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1470:6): [True: 1, False: 0]
  ------------------
 1471|      1|		int rc;
 1472|       |
 1473|      1|		if ((rc = sctp_userspace_thread_create(&SCTP_BASE_VAR(recvthreadraw6), &recv_function_raw6))) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1473:7): [True: 0, False: 1]
  ------------------
 1474|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't start SCTP/IPv6 recv thread (%d).\n", rc);
 1475|       |#if defined(_WIN32)
 1476|       |			closesocket(SCTP_BASE_VAR(userspace_rawsctp6));
 1477|       |#else
 1478|      0|			close(SCTP_BASE_VAR(userspace_rawsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1479|      0|#endif
 1480|      0|			SCTP_BASE_VAR(userspace_rawsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1481|      0|		}
 1482|      1|	}
 1483|      1|	if (SCTP_BASE_VAR(userspace_udpsctp6) != -1) {
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1483:6): [True: 0, False: 1]
  ------------------
 1484|      0|		int rc;
 1485|       |
 1486|      0|		if ((rc = sctp_userspace_thread_create(&SCTP_BASE_VAR(recvthreadudp6), &recv_function_udp6))) {
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1486:7): [True: 0, False: 0]
  ------------------
 1487|      0|			SCTPDBG(SCTP_DEBUG_USR, "Can't start SCTP/UDP/IPv6 recv thread (%d).\n", rc);
 1488|       |#if defined(_WIN32)
 1489|       |			closesocket(SCTP_BASE_VAR(userspace_udpsctp6));
 1490|       |#else
 1491|      0|			close(SCTP_BASE_VAR(userspace_udpsctp6));
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1492|      0|#endif
 1493|      0|			SCTP_BASE_VAR(userspace_udpsctp6) = -1;
  ------------------
  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 1494|      0|		}
 1495|      0|	}
 1496|      1|#endif
 1497|      1|}
user_recv_thread.c:setReceiveBufferSize:
 1072|      2|{
 1073|      2|	int ch = new_size;
 1074|       |
 1075|      2|	if (setsockopt (sfd, SOL_SOCKET, SO_RCVBUF, (void*)&ch, sizeof(ch)) < 0) {
  ------------------
  |  Branch (1075:6): [True: 0, False: 2]
  ------------------
 1076|       |#if defined(_WIN32)
 1077|       |		SCTPDBG(SCTP_DEBUG_USR, "Can't set recv-buffers size (errno = %d).\n", WSAGetLastError());
 1078|       |#else
 1079|      0|		SCTPDBG(SCTP_DEBUG_USR, "Can't set recv-buffers size (errno = %d).\n", errno);
 1080|      0|#endif
 1081|      0|	}
 1082|      2|	return;
 1083|      2|}
user_recv_thread.c:setSendBufferSize:
 1092|      2|{
 1093|      2|	int ch = new_size;
 1094|       |
 1095|      2|	if (setsockopt (sfd, SOL_SOCKET, SO_SNDBUF, (void*)&ch, sizeof(ch)) < 0) {
  ------------------
  |  Branch (1095:6): [True: 0, False: 2]
  ------------------
 1096|       |#if defined(_WIN32)
 1097|       |		SCTPDBG(SCTP_DEBUG_USR, "Can't set send-buffers size (errno = %d).\n", WSAGetLastError());
 1098|       |#else
 1099|      0|		SCTPDBG(SCTP_DEBUG_USR, "Can't set send-buffers size (errno = %d).\n", errno);
 1100|      0|#endif
 1101|      0|	}
 1102|      2|	return;
 1103|      2|}
user_recv_thread.c:recv_function_raw:
  272|      1|{
  273|      1|	struct mbuf **recvmbuf;
  274|      1|	struct ip *iphdr;
  275|      1|	struct sctphdr *sh;
  276|      1|	uint16_t port;
  277|      1|	int offset, ecn = 0;
  278|      1|	int compute_crc = 1;
  279|      1|	struct sctp_chunkhdr *ch;
  280|      1|	struct sockaddr_in src, dst;
  281|      1|#if !defined(_WIN32)
  282|      1|	ssize_t res;
  283|      1|	unsigned int ncounter;
  284|      1|	struct msghdr msg;
  285|      1|	struct iovec recv_iovec[MAXLEN_MBUF_CHAIN];
  286|       |#else
  287|       |	WSABUF recv_iovec[MAXLEN_MBUF_CHAIN];
  288|       |	int nResult, m_ErrorCode;
  289|       |	DWORD flags;
  290|       |	DWORD ncounter;
  291|       |	struct sockaddr_in from;
  292|       |	int fromlen;
  293|       |#endif
  294|       |	/*Initially the entire set of mbufs is to be allocated.
  295|       |	  to_fill indicates this amount. */
  296|      1|	int to_fill = MAXLEN_MBUF_CHAIN;
  ------------------
  |  |   75|      1|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  297|       |	/* iovlen is the size of each mbuf in the chain */
  298|      1|	int i, n;
  299|      1|	unsigned int iovlen = MCLBYTES;
  ------------------
  |  |   51|      1|#define MCLBYTES 2048
  ------------------
  300|      1|	int want_ext = (iovlen > MLEN)? 1 : 0;
  ------------------
  |  |  138|      1|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|      1|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (300:17): [True: 1, False: 0]
  ------------------
  301|      1|	int want_header = 0;
  302|       |
  303|      1|	sctp_userspace_set_threadname("SCTP/IP4 rcv");
  304|       |
  305|      1|	memset(&src, 0, sizeof(struct sockaddr_in));
  306|      1|	memset(&dst, 0, sizeof(struct sockaddr_in));
  307|       |
  308|      1|	recvmbuf = malloc(sizeof(struct mbuf *) * MAXLEN_MBUF_CHAIN);
  ------------------
  |  |   75|      1|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  309|       |
  310|     53|	while (1) {
  ------------------
  |  Branch (310:9): [True: 52, Folded]
  ------------------
  311|    180|		for (i = 0; i < to_fill; i++) {
  ------------------
  |  Branch (311:15): [True: 128, False: 52]
  ------------------
  312|       |			/* Not getting the packet header. Tests with chain of one run
  313|       |			   as usual without having the packet header.
  314|       |			   Have tried both sending and receiving
  315|       |			 */
  316|    128|			recvmbuf[i] = sctp_get_mbuf_for_msg(iovlen, want_header, M_NOWAIT, want_ext, MT_DATA);
  ------------------
  |  |   60|    128|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			recvmbuf[i] = sctp_get_mbuf_for_msg(iovlen, want_header, M_NOWAIT, want_ext, MT_DATA);
  ------------------
  |  |  287|    128|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  317|    128|#if !defined(_WIN32)
  318|    128|			recv_iovec[i].iov_base = (caddr_t)recvmbuf[i]->m_data;
  ------------------
  |  |  219|    128|#define	m_data		m_hdr.mh_data
  ------------------
  319|    128|			recv_iovec[i].iov_len = iovlen;
  320|       |#else
  321|       |			recv_iovec[i].buf = (caddr_t)recvmbuf[i]->m_data;
  322|       |			recv_iovec[i].len = iovlen;
  323|       |#endif
  324|    128|		}
  325|     52|		to_fill = 0;
  326|       |#if defined(_WIN32)
  327|       |		flags = 0;
  328|       |		ncounter = 0;
  329|       |		fromlen = sizeof(struct sockaddr_in);
  330|       |		memset(&from, 0, sizeof(struct sockaddr_in));
  331|       |
  332|       |		nResult = WSARecvFrom(SCTP_BASE_VAR(userspace_rawsctp), recv_iovec, MAXLEN_MBUF_CHAIN, &ncounter, &flags, (struct sockaddr *)&from, &fromlen, NULL, NULL);
  333|       |		if (nResult != 0) {
  334|       |			m_ErrorCode = WSAGetLastError();
  335|       |			if ((m_ErrorCode == WSAENOTSOCK) || (m_ErrorCode == WSAEINTR)) {
  336|       |				break;
  337|       |			}
  338|       |			continue;
  339|       |		}
  340|       |		n = ncounter;
  341|       |#else
  342|     52|		memset(&msg, 0, sizeof(struct msghdr));
  343|     52|		msg.msg_name = NULL;
  344|     52|		msg.msg_namelen = 0;
  345|     52|		msg.msg_iov = recv_iovec;
  346|     52|		msg.msg_iovlen = MAXLEN_MBUF_CHAIN;
  ------------------
  |  |   75|     52|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  347|     52|		msg.msg_control = NULL;
  348|     52|		msg.msg_controllen = 0;
  349|     52|		res = recvmsg(SCTP_BASE_VAR(userspace_rawsctp), &msg, 0);
  ------------------
  |  |  591|     52|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  350|     52|		if (res < 0) {
  ------------------
  |  Branch (350:7): [True: 51, False: 1]
  ------------------
  351|     51|			if (errno == EAGAIN || errno == EINTR) {
  ------------------
  |  Branch (351:8): [True: 51, False: 0]
  |  Branch (351:27): [True: 0, False: 0]
  ------------------
  352|     51|				continue;
  353|     51|			} else {
  354|      0|				break;
  355|      0|			}
  356|     51|		}
  357|      1|		ncounter = (unsigned int)res;
  358|      1|		n = (int)res;
  359|      1|#endif
  360|      1|		SCTP_HEADER_LEN(recvmbuf[0]) = n; /* length of total packet */
  ------------------
  |  |  921|      1|#define SCTP_HEADER_LEN(m) ((m)->m_pkthdr.len)
  |  |  ------------------
  |  |  |  |  224|      1|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  ------------------
  361|      1|		SCTP_STAT_INCR(sctps_recvpackets);
  ------------------
  |  | 1112|      1|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      1|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  362|      1|		SCTP_STAT_INCR_COUNTER64(sctps_inpackets);
  ------------------
  |  | 1128|      1|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      1|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      1|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  363|       |
  364|      1|		if ((unsigned int)n <= iovlen) {
  ------------------
  |  Branch (364:7): [True: 0, False: 1]
  ------------------
  365|      0|			SCTP_BUF_LEN(recvmbuf[0]) = n;
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  366|      0|			(to_fill)++;
  367|      1|		} else {
  368|      1|			i = 0;
  369|      1|			SCTP_BUF_LEN(recvmbuf[0]) = iovlen;
  ------------------
  |  |  801|      1|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      1|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  370|       |
  371|      1|			ncounter -= min(ncounter, iovlen);
  ------------------
  |  |   66|      1|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  372|      1|			(to_fill)++;
  373|      1|			do {
  374|      1|				recvmbuf[i]->m_next = recvmbuf[i+1];
  ------------------
  |  |  217|      1|#define	m_next		m_hdr.mh_next
  ------------------
  375|      1|				SCTP_BUF_LEN(recvmbuf[i]->m_next) = min(ncounter, iovlen);
  ------------------
  |  |  801|      1|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      1|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              				SCTP_BUF_LEN(recvmbuf[i]->m_next) = min(ncounter, iovlen);
  ------------------
  |  |   66|      1|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  376|      1|				i++;
  377|      1|				ncounter -= min(ncounter, iovlen);
  ------------------
  |  |   66|      1|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  378|      1|				(to_fill)++;
  379|      1|			} while (ncounter > 0);
  ------------------
  |  Branch (379:13): [True: 0, False: 1]
  ------------------
  380|      1|		}
  381|       |
  382|      1|		offset = sizeof(struct ip) + sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr);
  383|      1|		if (SCTP_BUF_LEN(recvmbuf[0]) < offset) {
  ------------------
  |  |  801|      1|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      1|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (383:7): [True: 0, False: 1]
  ------------------
  384|      0|				if ((recvmbuf[0] = m_pullup(recvmbuf[0], offset)) == NULL) {
  ------------------
  |  Branch (384:9): [True: 0, False: 0]
  ------------------
  385|      0|				SCTP_STAT_INCR(sctps_hdrops);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  386|      0|				continue;
  387|      0|			}
  388|      0|		}
  389|      1|		iphdr = mtod(recvmbuf[0], struct ip *);
  ------------------
  |  |   96|      1|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      1|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  390|      1|		sh = (struct sctphdr *)((caddr_t)iphdr + sizeof(struct ip));
  391|      1|		ch = (struct sctp_chunkhdr *)((caddr_t)sh + sizeof(struct sctphdr));
  392|      1|		offset -= sizeof(struct sctp_chunkhdr);
  393|       |
  394|      1|		if (iphdr->ip_tos != 0) {
  ------------------
  |  Branch (394:7): [True: 0, False: 1]
  ------------------
  395|      0|			ecn = iphdr->ip_tos & 0x03;
  396|      0|		}
  397|       |
  398|      1|		dst.sin_family = AF_INET;
  399|       |#ifdef HAVE_SIN_LEN
  400|       |		dst.sin_len = sizeof(struct sockaddr_in);
  401|       |#endif
  402|      1|		dst.sin_addr = iphdr->ip_dst;
  403|      1|		dst.sin_port = sh->dest_port;
  404|       |
  405|      1|		src.sin_family = AF_INET;
  406|       |#ifdef HAVE_SIN_LEN
  407|       |		src.sin_len = sizeof(struct sockaddr_in);
  408|       |#endif
  409|      1|		src.sin_addr = iphdr->ip_src;
  410|      1|		src.sin_port = sh->src_port;
  411|       |
  412|       |		/* SCTP does not allow broadcasts or multicasts */
  413|      1|		if (IN_MULTICAST(ntohl(dst.sin_addr.s_addr))) {
  ------------------
  |  Branch (413:7): [True: 0, False: 1]
  ------------------
  414|      0|			m_freem(recvmbuf[0]);
  415|      0|			continue;
  416|      0|		}
  417|      1|		if (SCTP_IS_IT_BROADCAST(dst.sin_addr, recvmbuf[0])) {
  ------------------
  |  |  938|      1|#define SCTP_IS_IT_BROADCAST(dst, m) 0
  |  |  ------------------
  |  |  |  Branch (938:38): [Folded, False: 1]
  |  |  ------------------
  ------------------
  418|      0|			m_freem(recvmbuf[0]);
  419|      0|			continue;
  420|      0|		}
  421|       |
  422|      1|		port = 0;
  423|       |
  424|      1|		if (SCTP_BASE_SYSCTL(sctp_no_csum_on_loopback) &&
  ------------------
  |  |  590|      2|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  425|      0|		    ((IN4_ISLOOPBACK_ADDRESS(&src.sin_addr) &&
  ------------------
  |  |  977|      0|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  |  |  ------------------
  |  |  |  Branch (977:5): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  426|      0|		      IN4_ISLOOPBACK_ADDRESS(&dst.sin_addr)) ||
  ------------------
  |  |  977|      0|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  |  |  ------------------
  |  |  |  Branch (977:5): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  427|      0|		     (src.sin_addr.s_addr == dst.sin_addr.s_addr))) {
  ------------------
  |  Branch (427:8): [True: 0, False: 0]
  ------------------
  428|      0|			compute_crc = 0;
  429|      0|			SCTP_STAT_INCR(sctps_recvhwcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  430|      1|		} else {
  431|      1|			SCTP_STAT_INCR(sctps_recvswcrc);
  ------------------
  |  | 1112|      1|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      1|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  432|      1|		}
  433|      1|		SCTPDBG(SCTP_DEBUG_USR, "%s: Received %d bytes.", __func__, n);
  434|      1|		SCTPDBG(SCTP_DEBUG_USR, " - calling sctp_common_input_processing with off=%d\n", offset);
  435|      1|		sctp_common_input_processing(&recvmbuf[0], sizeof(struct ip), offset, n,
  436|      1|		                             (struct sockaddr *)&src,
  437|      1|		                             (struct sockaddr *)&dst,
  438|      1|		                             sh, ch,
  439|      1|		                             compute_crc,
  440|      1|		                             ecn,
  441|      1|		                             SCTP_DEFAULT_VRFID, port);
  ------------------
  |  |  650|      1|#define SCTP_DEFAULT_VRFID	0
  ------------------
  442|      1|		if (recvmbuf[0]) {
  ------------------
  |  Branch (442:7): [True: 0, False: 1]
  ------------------
  443|      0|			m_freem(recvmbuf[0]);
  444|      0|		}
  445|      1|	}
  446|      1|	for (i = 0; i < MAXLEN_MBUF_CHAIN; i++) {
  ------------------
  |  |   75|      1|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  |  Branch (446:14): [True: 0, False: 1]
  ------------------
  447|      0|		m_free(recvmbuf[i]);
  448|      0|	}
  449|       |	/* free the array itself */
  450|      1|	free(recvmbuf);
  451|      1|	SCTPDBG(SCTP_DEBUG_USR, "%s: Exiting SCTP/IP4 rcv\n", __func__);
  452|       |	return (NULL);
  453|      1|}
user_recv_thread.c:recv_function_raw6:
  459|      1|{
  460|      1|	struct mbuf **recvmbuf6;
  461|      1|#if !defined(_WIN32)
  462|      1|	ssize_t res;
  463|      1|	unsigned int ncounter;
  464|      1|	struct iovec recv_iovec[MAXLEN_MBUF_CHAIN];
  465|      1|	struct msghdr msg;
  466|      1|	struct cmsghdr *cmsgptr;
  467|      1|	char cmsgbuf[CMSG_SPACE(sizeof (struct in6_pktinfo))];
  468|       |#else
  469|       |	WSABUF recv_iovec[MAXLEN_MBUF_CHAIN];
  470|       |	int nResult, m_ErrorCode;
  471|       |	DWORD ncounter = 0;
  472|       |	struct sockaddr_in6 from;
  473|       |	GUID WSARecvMsg_GUID = WSAID_WSARECVMSG;
  474|       |	LPFN_WSARECVMSG WSARecvMsg;
  475|       |	WSACMSGHDR *cmsgptr;
  476|       |	WSAMSG msg;
  477|       |	char ControlBuffer[1024];
  478|       |#endif
  479|      1|	struct sockaddr_in6 src, dst;
  480|      1|	struct sctphdr *sh;
  481|      1|	int offset;
  482|      1|	struct sctp_chunkhdr *ch;
  483|       |	/*Initially the entire set of mbufs is to be allocated.
  484|       |	  to_fill indicates this amount. */
  485|      1|	int to_fill = MAXLEN_MBUF_CHAIN;
  ------------------
  |  |   75|      1|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  486|       |	/* iovlen is the size of each mbuf in the chain */
  487|      1|	int i, n;
  488|      1|	int compute_crc = 1;
  489|      1|	unsigned int iovlen = MCLBYTES;
  ------------------
  |  |   51|      1|#define MCLBYTES 2048
  ------------------
  490|      1|	int want_ext = (iovlen > MLEN)? 1 : 0;
  ------------------
  |  |  138|      1|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|      1|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (490:17): [True: 1, False: 0]
  ------------------
  491|      1|	int want_header = 0;
  492|       |
  493|      1|	sctp_userspace_set_threadname("SCTP/IP6 rcv");
  494|       |
  495|      1|	recvmbuf6 = malloc(sizeof(struct mbuf *) * MAXLEN_MBUF_CHAIN);
  ------------------
  |  |   75|      1|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  496|       |
  497|     52|	for (;;) {
  498|    180|		for (i = 0; i < to_fill; i++) {
  ------------------
  |  Branch (498:15): [True: 128, False: 52]
  ------------------
  499|       |			/* Not getting the packet header. Tests with chain of one run
  500|       |			   as usual without having the packet header.
  501|       |			   Have tried both sending and receiving
  502|       |			 */
  503|    128|			recvmbuf6[i] = sctp_get_mbuf_for_msg(iovlen, want_header, M_NOWAIT, want_ext, MT_DATA);
  ------------------
  |  |   60|    128|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			recvmbuf6[i] = sctp_get_mbuf_for_msg(iovlen, want_header, M_NOWAIT, want_ext, MT_DATA);
  ------------------
  |  |  287|    128|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  504|    128|#if !defined(_WIN32)
  505|    128|			recv_iovec[i].iov_base = (caddr_t)recvmbuf6[i]->m_data;
  ------------------
  |  |  219|    128|#define	m_data		m_hdr.mh_data
  ------------------
  506|    128|			recv_iovec[i].iov_len = iovlen;
  507|       |#else
  508|       |			recv_iovec[i].buf = (caddr_t)recvmbuf6[i]->m_data;
  509|       |			recv_iovec[i].len = iovlen;
  510|       |#endif
  511|    128|		}
  512|     52|		to_fill = 0;
  513|       |#if defined(_WIN32)
  514|       |		ncounter = 0;
  515|       |		memset(&from, 0, sizeof(struct sockaddr_in6));
  516|       |		nResult = WSAIoctl(SCTP_BASE_VAR(userspace_rawsctp6), SIO_GET_EXTENSION_FUNCTION_POINTER,
  517|       |		                   &WSARecvMsg_GUID, sizeof WSARecvMsg_GUID,
  518|       |		                   &WSARecvMsg, sizeof WSARecvMsg,
  519|       |		                   &ncounter, NULL, NULL);
  520|       |		if (nResult == 0) {
  521|       |			msg.name = (void *)&src;
  522|       |			msg.namelen = sizeof(struct sockaddr_in6);
  523|       |			msg.lpBuffers = recv_iovec;
  524|       |			msg.dwBufferCount = MAXLEN_MBUF_CHAIN;
  525|       |			msg.Control.len = sizeof ControlBuffer;
  526|       |			msg.Control.buf = ControlBuffer;
  527|       |			msg.dwFlags = 0;
  528|       |			nResult = WSARecvMsg(SCTP_BASE_VAR(userspace_rawsctp6), &msg, &ncounter, NULL, NULL);
  529|       |		}
  530|       |		if (nResult != 0) {
  531|       |			m_ErrorCode = WSAGetLastError();
  532|       |			if ((m_ErrorCode == WSAENOTSOCK) || (m_ErrorCode == WSAEINTR)) {
  533|       |				break;
  534|       |			}
  535|       |			continue;
  536|       |		}
  537|       |		n = ncounter;
  538|       |#else
  539|     52|		memset(&msg, 0, sizeof(struct msghdr));
  540|     52|		memset(&src, 0, sizeof(struct sockaddr_in6));
  541|     52|		memset(&dst, 0, sizeof(struct sockaddr_in6));
  542|     52|		memset(cmsgbuf, 0, CMSG_SPACE(sizeof (struct in6_pktinfo)));
  543|     52|		msg.msg_name = (void *)&src;
  544|     52|		msg.msg_namelen = sizeof(struct sockaddr_in6);
  545|     52|		msg.msg_iov = recv_iovec;
  546|     52|		msg.msg_iovlen = MAXLEN_MBUF_CHAIN;
  ------------------
  |  |   75|     52|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  547|     52|		msg.msg_control = (void *)cmsgbuf;
  548|     52|		msg.msg_controllen = (socklen_t)CMSG_SPACE(sizeof (struct in6_pktinfo));
  549|     52|		msg.msg_flags = 0;
  550|     52|		res = recvmsg(SCTP_BASE_VAR(userspace_rawsctp6), &msg, 0);
  ------------------
  |  |  591|     52|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  551|     52|		if (res < 0) {
  ------------------
  |  Branch (551:7): [True: 51, False: 1]
  ------------------
  552|     51|			if (errno == EAGAIN || errno == EINTR) {
  ------------------
  |  Branch (552:8): [True: 51, False: 0]
  |  Branch (552:27): [True: 0, False: 0]
  ------------------
  553|     51|				continue;
  554|     51|			} else {
  555|      0|				break;
  556|      0|			}
  557|     51|		}
  558|      1|		ncounter = (unsigned int)res;
  559|      1|		n = (int)res;
  560|      1|#endif
  561|      1|		SCTP_HEADER_LEN(recvmbuf6[0]) = n; /* length of total packet */
  ------------------
  |  |  921|      1|#define SCTP_HEADER_LEN(m) ((m)->m_pkthdr.len)
  |  |  ------------------
  |  |  |  |  224|      1|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  ------------------
  562|      1|		SCTP_STAT_INCR(sctps_recvpackets);
  ------------------
  |  | 1112|      1|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      1|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  563|      1|		SCTP_STAT_INCR_COUNTER64(sctps_inpackets);
  ------------------
  |  | 1128|      1|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      1|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      1|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  564|       |
  565|      1|		if ((unsigned int)n <= iovlen) {
  ------------------
  |  Branch (565:7): [True: 0, False: 1]
  ------------------
  566|      0|			SCTP_BUF_LEN(recvmbuf6[0]) = n;
  ------------------
  |  |  801|      0|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      0|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  567|      0|			(to_fill)++;
  568|      1|		} else {
  569|      1|			i = 0;
  570|      1|			SCTP_BUF_LEN(recvmbuf6[0]) = iovlen;
  ------------------
  |  |  801|      1|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      1|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  571|       |
  572|      1|			ncounter -= min(ncounter, iovlen);
  ------------------
  |  |   66|      1|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  573|      1|			(to_fill)++;
  574|      1|			do {
  575|      1|				recvmbuf6[i]->m_next = recvmbuf6[i+1];
  ------------------
  |  |  217|      1|#define	m_next		m_hdr.mh_next
  ------------------
  576|      1|				SCTP_BUF_LEN(recvmbuf6[i]->m_next) = min(ncounter, iovlen);
  ------------------
  |  |  801|      1|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      1|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              				SCTP_BUF_LEN(recvmbuf6[i]->m_next) = min(ncounter, iovlen);
  ------------------
  |  |   66|      1|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  577|      1|				i++;
  578|      1|				ncounter -= min(ncounter, iovlen);
  ------------------
  |  |   66|      1|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  579|      1|				(to_fill)++;
  580|      1|			} while (ncounter > 0);
  ------------------
  |  Branch (580:13): [True: 0, False: 1]
  ------------------
  581|      1|		}
  582|       |
  583|      1|		for (cmsgptr = CMSG_FIRSTHDR(&msg); cmsgptr != NULL; cmsgptr = CMSG_NXTHDR(&msg, cmsgptr)) {
  ------------------
  |  Branch (583:18): [True: 0, False: 1]
  |  Branch (583:39): [True: 0, False: 1]
  ------------------
  584|      0|			if ((cmsgptr->cmsg_level == IPPROTO_IPV6) && (cmsgptr->cmsg_type == IPV6_PKTINFO)) {
  ------------------
  |  Branch (584:8): [True: 0, False: 0]
  |  Branch (584:49): [True: 0, False: 0]
  ------------------
  585|      0|				struct in6_pktinfo * info;
  586|       |
  587|      0|				info = (struct in6_pktinfo *)CMSG_DATA(cmsgptr);
  588|      0|				memcpy((void *)&dst.sin6_addr, (const void *) &(info->ipi6_addr), sizeof(struct in6_addr));
  589|      0|				break;
  590|      0|			}
  591|      0|		}
  592|       |
  593|       |		/* SCTP does not allow broadcasts or multicasts */
  594|      1|		if (IN6_IS_ADDR_MULTICAST(&dst.sin6_addr)) {
  ------------------
  |  Branch (594:7): [True: 0, False: 1]
  ------------------
  595|      0|			m_freem(recvmbuf6[0]);
  596|      0|			continue;
  597|      0|		}
  598|       |
  599|      1|		offset = sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr);
  600|      1|		if (SCTP_BUF_LEN(recvmbuf6[0]) < offset) {
  ------------------
  |  |  801|      1|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      1|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (600:7): [True: 0, False: 1]
  ------------------
  601|      0|			if ((recvmbuf6[0] = m_pullup(recvmbuf6[0], offset)) == NULL) {
  ------------------
  |  Branch (601:8): [True: 0, False: 0]
  ------------------
  602|      0|				SCTP_STAT_INCR(sctps_hdrops);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  603|      0|				continue;
  604|      0|			}
  605|      0|		}
  606|      1|		sh = mtod(recvmbuf6[0], struct sctphdr *);
  ------------------
  |  |   96|      1|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      1|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  607|      1|		ch = (struct sctp_chunkhdr *)((caddr_t)sh + sizeof(struct sctphdr));
  608|      1|		offset -= sizeof(struct sctp_chunkhdr);
  609|       |
  610|      1|		dst.sin6_family = AF_INET6;
  611|       |#ifdef HAVE_SIN6_LEN
  612|       |		dst.sin6_len = sizeof(struct sockaddr_in6);
  613|       |#endif
  614|      1|		dst.sin6_port = sh->dest_port;
  615|       |
  616|      1|		src.sin6_family = AF_INET6;
  617|       |#ifdef HAVE_SIN6_LEN
  618|       |		src.sin6_len = sizeof(struct sockaddr_in6);
  619|       |#endif
  620|      1|		src.sin6_port = sh->src_port;
  621|      1|		if (SCTP_BASE_SYSCTL(sctp_no_csum_on_loopback) &&
  ------------------
  |  |  590|      2|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  622|      0|		    (memcmp(&src.sin6_addr, &dst.sin6_addr, sizeof(struct in6_addr)) == 0)) {
  ------------------
  |  Branch (622:7): [True: 0, False: 0]
  ------------------
  623|      0|			compute_crc = 0;
  624|      0|			SCTP_STAT_INCR(sctps_recvhwcrc);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  625|      1|		} else {
  626|      1|			SCTP_STAT_INCR(sctps_recvswcrc);
  ------------------
  |  | 1112|      1|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      1|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      1|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  627|      1|		}
  628|      1|		SCTPDBG(SCTP_DEBUG_USR, "%s: Received %d bytes.", __func__, n);
  629|      1|		SCTPDBG(SCTP_DEBUG_USR, " - calling sctp_common_input_processing with off=%d\n", offset);
  630|      1|		sctp_common_input_processing(&recvmbuf6[0], 0, offset, n,
  631|      1|		                             (struct sockaddr *)&src,
  632|      1|		                             (struct sockaddr *)&dst,
  633|      1|		                             sh, ch,
  634|      1|		                             compute_crc,
  635|      1|		                             0,
  636|      1|		                             SCTP_DEFAULT_VRFID, 0);
  ------------------
  |  |  650|      1|#define SCTP_DEFAULT_VRFID	0
  ------------------
  637|      1|		if (recvmbuf6[0]) {
  ------------------
  |  Branch (637:7): [True: 0, False: 1]
  ------------------
  638|      0|			m_freem(recvmbuf6[0]);
  639|      0|		}
  640|      1|	}
  641|      1|	for (i = 0; i < MAXLEN_MBUF_CHAIN; i++) {
  ------------------
  |  |   75|      1|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  |  Branch (641:14): [True: 0, False: 1]
  ------------------
  642|      0|		m_free(recvmbuf6[i]);
  643|      0|	}
  644|       |	/* free the array itself */
  645|      1|	free(recvmbuf6);
  646|      1|	SCTPDBG(SCTP_DEBUG_USR, "%s: Exiting SCTP/IP6 rcv\n", __func__);
  647|       |	return (NULL);
  648|      1|}

usrsctp_init:
  113|      1|{
  114|      1|	init_sync();
  115|      1|	sctp_init(port, conn_output, debug_printf, 1);
  116|      1|}
socantrcvmore_locked:
  141|  3.30k|{
  142|  3.30k|	SOCKBUF_LOCK_ASSERT(&so->so_rcv);
  ------------------
  |  |  514|  3.30k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  3.30k|	do {                         \
  |  |  |  |  113|  3.30k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.30k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  3.30k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3.30k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  143|  3.30k|	so->so_rcv.sb_state |= SBS_CANTRCVMORE;
  ------------------
  |  |  360|  3.30k|#define	SBS_CANTRCVMORE		0x0020	/* can't receive more data from peer */
  ------------------
  144|  3.30k|	sorwakeup_locked(so);
  ------------------
  |  |  511|  3.30k|#define	sorwakeup_locked(so) do {					\
  |  |  512|  3.30k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  ------------------
  |  |  |  |  514|  3.30k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  3.30k|	do {                         \
  |  |  |  |  |  |  113|  3.30k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  3.30k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 3.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  513|  3.30k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  ------------------
  |  |  |  |  499|  3.30k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  203|  3.30k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  ------------------
  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  204|  3.30k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  ------------------
  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  205|  3.30k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (499:23): [True: 3.30k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  500|  3.30k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  206|  3.30k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  208|  3.30k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  209|  3.30k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  514|  3.30k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  515|  3.30k|	else								\
  |  |  516|  3.30k|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  517|  3.30k|} while (0)
  |  |  ------------------
  |  |  |  Branch (517:10): [Folded, False: 3.30k]
  |  |  ------------------
  ------------------
  145|  3.30k|}
socantrcvmore:
  148|  1.66k|{
  149|  1.66k|	SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|  1.66k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.66k|	do {                         \
  |  |  |  |  113|  1.66k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.66k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.66k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.66k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  150|  1.66k|	socantrcvmore_locked(so);
  151|  1.66k|}
socantsendmore_locked:
  155|  1.74k|{
  156|  1.74k|	SOCKBUF_LOCK_ASSERT(&so->so_snd);
  ------------------
  |  |  514|  1.74k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.74k|	do {                         \
  |  |  |  |  113|  1.74k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.74k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.74k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.74k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  157|  1.74k|	so->so_snd.sb_state |= SBS_CANTSENDMORE;
  ------------------
  |  |  359|  1.74k|#define	SBS_CANTSENDMORE	0x0010	/* can't send more data to peer */
  ------------------
  158|  1.74k|	sowwakeup_locked(so);
  ------------------
  |  |  524|  1.74k|#define	sowwakeup_locked(so) do {					\
  |  |  525|  1.74k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  ------------------
  |  |  |  |  514|  1.74k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.74k|	do {                         \
  |  |  |  |  |  |  113|  1.74k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.74k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  1.74k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.74k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  526|  1.74k|	if (sb_notify(&(so)->so_snd))					\
  |  |  ------------------
  |  |  |  |  499|  1.74k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  203|  1.74k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  ------------------
  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  204|  1.74k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  ------------------
  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  205|  1.74k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (499:23): [True: 1.74k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  500|  1.74k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  206|  1.74k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  208|  1.74k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  209|  1.74k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  527|  1.74k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  528|  1.74k|	else								\
  |  |  529|  1.74k|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  530|  1.74k|} while (0)
  |  |  ------------------
  |  |  |  Branch (530:10): [Folded, False: 1.74k]
  |  |  ------------------
  ------------------
  159|  1.74k|}
socantsendmore:
  163|  1.74k|{
  164|  1.74k|	SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|  1.74k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.74k|	do {                         \
  |  |  |  |  113|  1.74k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.74k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  1.74k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.74k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  165|  1.74k|	socantsendmore_locked(so);
  166|  1.74k|}
sofree:
  252|  10.1k|{
  253|  10.1k|	struct socket *head;
  254|       |
  255|  10.1k|	ACCEPT_LOCK_ASSERT();
  ------------------
  |  |  263|  10.1k|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|  10.1k|	SOCK_LOCK_ASSERT(so);
  ------------------
  |  |  325|  10.1k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  514|  10.1k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  257|       |	/* SS_NOFDREF unset in accept call.  this condition seems irrelevant
  258|       |	 *  for __Userspace__...
  259|       |	 */
  260|  10.1k|	if (so->so_count != 0 ||
  ------------------
  |  Branch (260:6): [True: 0, False: 10.1k]
  ------------------
  261|  10.1k|	    (so->so_state & SS_PROTOREF) || (so->so_qstate & SQ_COMP)) {
  ------------------
  |  |  354|  10.1k|#define	SS_PROTOREF		0x4000	/* strong protocol reference */
  ------------------
              	    (so->so_state & SS_PROTOREF) || (so->so_qstate & SQ_COMP)) {
  ------------------
  |  |  367|  10.1k|#define	SQ_COMP			0x1000	/* unaccepted, complete connection */
  ------------------
  |  Branch (261:6): [True: 0, False: 10.1k]
  |  Branch (261:38): [True: 0, False: 10.1k]
  ------------------
  262|      0|		SOCK_UNLOCK(so);
  ------------------
  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  263|      0|		ACCEPT_UNLOCK();
  ------------------
  |  |  257|      0|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|      0|		return;
  265|      0|	}
  266|  10.1k|	head = so->so_head;
  267|  10.1k|	if (head != NULL) {
  ------------------
  |  Branch (267:6): [True: 0, False: 10.1k]
  ------------------
  268|      0|		KASSERT((so->so_qstate & SQ_COMP) != 0 ||
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
  269|      0|		    (so->so_qstate & SQ_INCOMP) != 0,
  270|      0|		    ("sofree: so_head != NULL, but neither SQ_COMP nor "
  271|      0|		    "SQ_INCOMP"));
  272|      0|		KASSERT((so->so_qstate & SQ_COMP) == 0 ||
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
  273|      0|		    (so->so_qstate & SQ_INCOMP) == 0,
  274|      0|		    ("sofree: so->so_qstate is SQ_COMP and also SQ_INCOMP"));
  275|      0|		TAILQ_REMOVE(&head->so_incomp, so, so_list);
  ------------------
  |  Branch (275:3): [True: 0, False: 0]
  |  Branch (275:3): [Folded, False: 0]
  ------------------
  276|      0|		head->so_incqlen--;
  277|      0|		so->so_qstate &= ~SQ_INCOMP;
  ------------------
  |  |  366|      0|#define	SQ_INCOMP		0x0800	/* unaccepted, incomplete connection */
  ------------------
  278|      0|		so->so_head = NULL;
  279|      0|	}
  280|  10.1k|	KASSERT((so->so_qstate & SQ_COMP) == 0 &&
  ------------------
  |  |  112|  10.1k|	do {                         \
  |  |  113|  20.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 10.1k, False: 0]
  |  |  |  Branch (113:9): [True: 10.1k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
  281|  10.1k|	    (so->so_qstate & SQ_INCOMP) == 0,
  282|  10.1k|	    ("sofree: so_head == NULL, but still SQ_COMP(%d) or SQ_INCOMP(%d)",
  283|  10.1k|	    so->so_qstate & SQ_COMP, so->so_qstate & SQ_INCOMP));
  284|  10.1k|	if (so->so_options & SCTP_SO_ACCEPTCONN) {
  ------------------
  |  |   53|  10.1k|#define SCTP_SO_ACCEPTCONN 0x0002
  ------------------
  |  Branch (284:6): [True: 0, False: 10.1k]
  ------------------
  285|      0|		KASSERT((TAILQ_EMPTY(&so->so_comp)), ("sofree: so_comp populated"));
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
  286|      0|		KASSERT((TAILQ_EMPTY(&so->so_incomp)), ("sofree: so_comp populated"));
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
  287|      0|	}
  288|  10.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  10.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  289|  10.1k|	ACCEPT_UNLOCK();
  ------------------
  |  |  257|  10.1k|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  290|  10.1k|	sctp_close(so); /* was...    sctp_detach(so); */
  291|       |	/*
  292|       |	 * From this point on, we assume that no other references to this
  293|       |	 * socket exist anywhere else in the stack.  Therefore, no locks need
  294|       |	 * to be acquired or held.
  295|       |	 *
  296|       |	 * We used to do a lot of socket buffer and socket locking here, as
  297|       |	 * well as invoke sorflush() and perform wakeups.  The direct call to
  298|       |	 * dom_dispose() and sbrelease_internal() are an inlining of what was
  299|       |	 * necessary from sorflush().
  300|       |	 *
  301|       |	 * Notice that the socket buffer and kqueue state are torn down
  302|       |	 * before calling pru_detach.  This means that protocols should not
  303|       |	 * assume they can perform socket wakeups, etc, in their detach code.
  304|       |	 */
  305|  10.1k|	sodealloc(so);
  306|  10.1k|}
soisconnecting:
  326|  10.1k|{
  327|       |
  328|  10.1k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  10.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  329|  10.1k|	so->so_state &= ~(SS_ISCONNECTED|SS_ISDISCONNECTING);
  ------------------
  |  |  340|  10.1k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
              	so->so_state &= ~(SS_ISCONNECTED|SS_ISDISCONNECTING);
  ------------------
  |  |  342|  10.1k|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
  330|  10.1k|	so->so_state |= SS_ISCONNECTING;
  ------------------
  |  |  341|  10.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  331|  10.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  10.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  332|  10.1k|}
wakeup:
  372|  6.81k|{
  373|  6.81k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  6.81k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  6.81k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  6.81k|	do {                         \
  |  |  |  |  |  |  113|  6.81k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.81k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  6.81k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 6.81k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  374|       |#if defined(_WIN32)
  375|       |	WakeAllConditionVariable(&(so)->timeo_cond);
  376|       |#else
  377|  6.81k|	pthread_cond_broadcast(&(so)->timeo_cond);
  378|  6.81k|#endif
  379|  6.81k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  6.81k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  6.81k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  6.81k|	do {                         \
  |  |  |  |  |  |  113|  6.81k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.81k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  6.81k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 6.81k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  380|  6.81k|}
soisconnected:
  412|  5.17k|{
  413|  5.17k|	struct socket *head;
  414|       |
  415|  5.17k|	ACCEPT_LOCK();
  ------------------
  |  |  256|  5.17k|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  416|  5.17k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  5.17k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  5.17k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  417|  5.17k|	so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING);
  ------------------
  |  |  341|  5.17k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
              	so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING);
  ------------------
  |  |  342|  5.17k|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
              	so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING);
  ------------------
  |  |  345|  5.17k|#define	SS_ISCONFIRMING		0x0400	/* deciding to accept connection req */
  ------------------
  418|  5.17k|	so->so_state |= SS_ISCONNECTED;
  ------------------
  |  |  340|  5.17k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
  419|  5.17k|	head = so->so_head;
  420|  5.17k|	if (head != NULL && (so->so_qstate & SQ_INCOMP)) {
  ------------------
  |  |  366|      0|#define	SQ_INCOMP		0x0800	/* unaccepted, incomplete connection */
  ------------------
  |  Branch (420:6): [True: 0, False: 5.17k]
  |  Branch (420:22): [True: 0, False: 0]
  ------------------
  421|      0|		SOCK_UNLOCK(so);
  ------------------
  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  422|      0|		TAILQ_REMOVE(&head->so_incomp, so, so_list);
  ------------------
  |  Branch (422:3): [True: 0, False: 0]
  |  Branch (422:3): [Folded, False: 0]
  ------------------
  423|      0|		head->so_incqlen--;
  424|      0|		so->so_qstate &= ~SQ_INCOMP;
  ------------------
  |  |  366|      0|#define	SQ_INCOMP		0x0800	/* unaccepted, incomplete connection */
  ------------------
  425|      0|		TAILQ_INSERT_TAIL(&head->so_comp, so, so_list);
  ------------------
  |  Branch (425:3): [Folded, False: 0]
  ------------------
  426|      0|		head->so_qlen++;
  427|      0|		so->so_qstate |= SQ_COMP;
  ------------------
  |  |  367|      0|#define	SQ_COMP			0x1000	/* unaccepted, complete connection */
  ------------------
  428|      0|		ACCEPT_UNLOCK();
  ------------------
  |  |  257|      0|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  429|      0|		sorwakeup(head);
  ------------------
  |  |  519|      0|#define	sorwakeup(so) do {						\
  |  |  520|      0|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  ------------------
  |  |  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  521|      0|	sorwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  511|      0|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  512|      0|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|      0|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  513|      0|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|      0|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|      0|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|      0|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|      0|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|      0|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|      0|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|      0|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|      0|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  514|      0|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  515|      0|	else								\
  |  |  |  |  516|      0|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  517|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (517:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  522|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (522:10): [Folded, False: 0]
  |  |  ------------------
  ------------------
  430|      0|		wakeup_one(&head->so_timeo);
  431|      0|		return;
  432|      0|	}
  433|  5.17k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  5.17k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  5.17k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  434|  5.17k|	ACCEPT_UNLOCK();
  ------------------
  |  |  257|  5.17k|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  435|  5.17k|	wakeup(&so->so_timeo, so);
  436|  5.17k|	sorwakeup(so);
  ------------------
  |  |  519|  5.17k|#define	sorwakeup(so) do {						\
  |  |  520|  5.17k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  ------------------
  |  |  |  |  517|  5.17k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  521|  5.17k|	sorwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  511|  5.17k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  512|  5.17k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  5.17k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  513|  5.17k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  5.17k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  5.17k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|  5.17k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  5.17k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 5.17k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  5.17k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  5.17k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  5.17k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  5.17k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  514|  5.17k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  515|  5.17k|	else								\
  |  |  |  |  516|  5.17k|		SOCKBUF_UNLOCK(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  517|  5.17k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (517:10): [Folded, False: 5.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  522|  5.17k|} while (0)
  |  |  ------------------
  |  |  |  Branch (522:10): [Folded, False: 5.17k]
  |  |  ------------------
  ------------------
  437|  5.17k|	sowwakeup(so);
  ------------------
  |  |  532|  5.17k|#define	sowwakeup(so) do {						\
  |  |  533|  5.17k|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  ------------------
  |  |  |  |  517|  5.17k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  534|  5.17k|	sowwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  524|  5.17k|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  525|  5.17k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  5.17k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  5.17k|	do {                         \
  |  |  |  |  |  |  |  |  113|  5.17k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.17k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  5.17k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.17k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  526|  5.17k|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  5.17k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  5.17k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|  5.17k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  5.17k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 5.17k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  5.17k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  5.17k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  5.17k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  5.17k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  527|  5.17k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  528|  5.17k|	else								\
  |  |  |  |  529|  5.17k|		SOCKBUF_UNLOCK(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  530|  5.17k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (530:10): [Folded, False: 5.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  535|  5.17k|} while (0)
  |  |  ------------------
  |  |  |  Branch (535:10): [Folded, False: 5.17k]
  |  |  ------------------
  ------------------
  438|       |
  439|  5.17k|}
uiomove:
  600|   504k|{
  601|   504k|	struct iovec *iov;
  602|   504k|	size_t cnt;
  603|   504k|	int error = 0;
  604|       |
  605|   504k|	if ((uio->uio_rw != UIO_READ) &&
  ------------------
  |  Branch (605:6): [True: 5.42k, False: 499k]
  ------------------
  606|  5.42k|	    (uio->uio_rw != UIO_WRITE)) {
  ------------------
  |  Branch (606:6): [True: 0, False: 5.42k]
  ------------------
  607|      0|		return (EINVAL);
  608|      0|	}
  609|       |
  610|  1.00M|	while (n > 0 && uio->uio_resid) {
  ------------------
  |  Branch (610:9): [True: 504k, False: 504k]
  |  Branch (610:18): [True: 504k, False: 0]
  ------------------
  611|   504k|		iov = uio->uio_iov;
  612|   504k|		cnt = iov->iov_len;
  613|   504k|		if (cnt == 0) {
  ------------------
  |  Branch (613:7): [True: 0, False: 504k]
  ------------------
  614|      0|			uio->uio_iov++;
  615|      0|			uio->uio_iovcnt--;
  616|      0|			continue;
  617|      0|		}
  618|   504k|		if (cnt > (size_t)n)
  ------------------
  |  Branch (618:7): [True: 499k, False: 5.60k]
  ------------------
  619|   499k|			cnt = n;
  620|       |
  621|   504k|		switch (uio->uio_segflg) {
  ------------------
  |  Branch (621:11): [True: 504k, False: 0]
  ------------------
  622|       |
  623|   504k|		case UIO_USERSPACE:
  ------------------
  |  Branch (623:3): [True: 504k, False: 0]
  ------------------
  624|   504k|			if (uio->uio_rw == UIO_READ)
  ------------------
  |  Branch (624:8): [True: 499k, False: 5.42k]
  ------------------
  625|   499k|				error = copyout(cp, iov->iov_base, cnt);
  ------------------
  |  |  575|   499k|# define copyout(k, u, len)	copy_to_user(u, k, len)
  ------------------
  626|  5.42k|			else
  627|  5.42k|				error = copyin(iov->iov_base, cp, cnt);
  ------------------
  |  |  569|  5.42k|# define copyin(u, k, len)	copy_from_user(k, u, len)
  ------------------
  628|   504k|			if (error)
  ------------------
  |  Branch (628:8): [True: 0, False: 504k]
  ------------------
  629|      0|				goto out;
  630|   504k|			break;
  631|       |
  632|   504k|		case UIO_SYSSPACE:
  ------------------
  |  Branch (632:3): [True: 0, False: 504k]
  ------------------
  633|      0|			if (uio->uio_rw == UIO_READ)
  ------------------
  |  Branch (633:8): [True: 0, False: 0]
  ------------------
  634|      0|				memcpy(iov->iov_base, cp, cnt);
  635|      0|			else
  636|      0|				memcpy(cp, iov->iov_base, cnt);
  637|      0|			break;
  638|   504k|		}
  639|   504k|		iov->iov_base = (char *)iov->iov_base + cnt;
  640|   504k|		iov->iov_len -= cnt;
  641|   504k|		uio->uio_resid -= cnt;
  642|   504k|		uio->uio_offset += (off_t)cnt;
  643|   504k|		cp = (char *)cp + cnt;
  644|   504k|		n -= (int)cnt;
  645|   504k|	}
  646|   504k|out:
  647|   504k|	return (error);
  648|   504k|}
getsockaddr:
  654|  20.3k|{
  655|  20.3k|	struct sockaddr *sa;
  656|  20.3k|	int error;
  657|       |
  658|  20.3k|	if (len > SOCK_MAXADDRLEN)
  ------------------
  |  |   48|  20.3k|#define SOCK_MAXADDRLEN 255
  ------------------
  |  Branch (658:6): [True: 0, False: 20.3k]
  ------------------
  659|      0|		return (ENAMETOOLONG);
  660|  20.3k|	if (len < offsetof(struct sockaddr, sa_data))
  ------------------
  |  Branch (660:6): [True: 0, False: 20.3k]
  ------------------
  661|      0|		return (EINVAL);
  662|  20.3k|	MALLOC(sa, struct sockaddr *, len, M_SONAME, M_WAITOK);
  ------------------
  |  |  196|  20.3k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  197|  20.3k|    do {								\
  |  |  198|  20.3k|        if (flags & M_ZERO) {                                            \
  |  |  ------------------
  |  |  |  |   62|  40.6k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  ------------------
  |  |  |  Branch (198:13): [Folded, False: 20.3k]
  |  |  ------------------
  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  200|      0|	}								\
  |  |  201|  20.3k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (201:14): [Folded, False: 20.3k]
  |  |  ------------------
  ------------------
  663|  20.3k|	error = copyin(uaddr, sa, len);
  ------------------
  |  |  569|  20.3k|# define copyin(u, k, len)	copy_from_user(k, u, len)
  ------------------
  664|  20.3k|	if (error) {
  ------------------
  |  Branch (664:6): [True: 0, False: 20.3k]
  ------------------
  665|      0|		FREE(sa, M_SONAME);
  ------------------
  |  |  191|      0|#define	FREE(addr, type) free((addr))
  ------------------
  666|  20.3k|	} else {
  667|       |#ifdef HAVE_SA_LEN
  668|       |		sa->sa_len = len;
  669|       |#endif
  670|  20.3k|		*namp = sa;
  671|  20.3k|	}
  672|  20.3k|	return (error);
  673|  20.3k|}
usrsctp_sendv:
  801|  6.17k|{
  802|  6.17k|	struct sctp_sndrcvinfo sinfo;
  803|  6.17k|	struct uio auio;
  804|  6.17k|	struct iovec iov[1];
  805|  6.17k|	int use_sinfo;
  806|  6.17k|	sctp_assoc_t *assoc_id;
  807|       |
  808|  6.17k|	if (so == NULL) {
  ------------------
  |  Branch (808:6): [True: 0, False: 6.17k]
  ------------------
  809|      0|		errno = EBADF;
  810|      0|		return (-1);
  811|      0|	}
  812|  6.17k|	if (data == NULL) {
  ------------------
  |  Branch (812:6): [True: 0, False: 6.17k]
  ------------------
  813|      0|		errno = EFAULT;
  814|      0|		return (-1);
  815|      0|	}
  816|  6.17k|	memset(&sinfo, 0, sizeof(struct sctp_sndrcvinfo));
  817|  6.17k|	assoc_id = NULL;
  818|  6.17k|	use_sinfo = 0;
  819|  6.17k|	switch (infotype) {
  820|  6.17k|	case SCTP_SENDV_NOINFO:
  ------------------
  |  |  228|  6.17k|#define SCTP_SENDV_NOINFO   0
  ------------------
  |  Branch (820:2): [True: 6.17k, False: 0]
  ------------------
  821|  6.17k|		if ((infolen != 0) || (info != NULL)) {
  ------------------
  |  Branch (821:7): [True: 0, False: 6.17k]
  |  Branch (821:25): [True: 0, False: 6.17k]
  ------------------
  822|      0|			errno = EINVAL;
  823|      0|			return (-1);
  824|      0|		}
  825|  6.17k|		break;
  826|  6.17k|	case SCTP_SENDV_SNDINFO:
  ------------------
  |  |  229|      0|#define SCTP_SENDV_SNDINFO  1
  ------------------
  |  Branch (826:2): [True: 0, False: 6.17k]
  ------------------
  827|      0|		if ((info == NULL) || (infolen != sizeof(struct sctp_sndinfo))) {
  ------------------
  |  Branch (827:7): [True: 0, False: 0]
  |  Branch (827:25): [True: 0, False: 0]
  ------------------
  828|      0|			errno = EINVAL;
  829|      0|			return (-1);
  830|      0|		}
  831|      0|		sinfo.sinfo_stream = ((struct sctp_sndinfo *)info)->snd_sid;
  832|      0|		sinfo.sinfo_flags = ((struct sctp_sndinfo *)info)->snd_flags;
  833|      0|		sinfo.sinfo_ppid = ((struct sctp_sndinfo *)info)->snd_ppid;
  834|      0|		sinfo.sinfo_context = ((struct sctp_sndinfo *)info)->snd_context;
  835|      0|		sinfo.sinfo_assoc_id = ((struct sctp_sndinfo *)info)->snd_assoc_id;
  836|      0|		assoc_id = &(((struct sctp_sndinfo *)info)->snd_assoc_id);
  837|      0|		use_sinfo = 1;
  838|      0|		break;
  839|      0|	case SCTP_SENDV_PRINFO:
  ------------------
  |  |  230|      0|#define SCTP_SENDV_PRINFO   2
  ------------------
  |  Branch (839:2): [True: 0, False: 6.17k]
  ------------------
  840|      0|		if ((info == NULL) || (infolen != sizeof(struct sctp_prinfo))) {
  ------------------
  |  Branch (840:7): [True: 0, False: 0]
  |  Branch (840:25): [True: 0, False: 0]
  ------------------
  841|      0|			errno = EINVAL;
  842|      0|			return (-1);
  843|      0|		}
  844|      0|		sinfo.sinfo_stream = 0;
  845|      0|		sinfo.sinfo_flags = PR_SCTP_POLICY(((struct sctp_prinfo *)info)->pr_policy);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
  846|      0|		sinfo.sinfo_timetolive = ((struct sctp_prinfo *)info)->pr_value;
  847|      0|		use_sinfo = 1;
  848|      0|		break;
  849|      0|	case SCTP_SENDV_AUTHINFO:
  ------------------
  |  |  231|      0|#define SCTP_SENDV_AUTHINFO 3
  ------------------
  |  Branch (849:2): [True: 0, False: 6.17k]
  ------------------
  850|      0|		errno = EINVAL;
  851|      0|		return (-1);
  852|      0|	case SCTP_SENDV_SPA:
  ------------------
  |  |  232|      0|#define SCTP_SENDV_SPA      4
  ------------------
  |  Branch (852:2): [True: 0, False: 6.17k]
  ------------------
  853|      0|		if ((info == NULL) || (infolen != sizeof(struct sctp_sendv_spa))) {
  ------------------
  |  Branch (853:7): [True: 0, False: 0]
  |  Branch (853:25): [True: 0, False: 0]
  ------------------
  854|      0|			errno = EINVAL;
  855|      0|			return (-1);
  856|      0|		}
  857|      0|		if (((struct sctp_sendv_spa *)info)->sendv_flags & SCTP_SEND_SNDINFO_VALID) {
  ------------------
  |  |  241|      0|#define SCTP_SEND_SNDINFO_VALID  0x00000001
  ------------------
  |  Branch (857:7): [True: 0, False: 0]
  ------------------
  858|      0|			sinfo.sinfo_stream = ((struct sctp_sendv_spa *)info)->sendv_sndinfo.snd_sid;
  859|      0|			sinfo.sinfo_flags = ((struct sctp_sendv_spa *)info)->sendv_sndinfo.snd_flags;
  860|      0|			sinfo.sinfo_ppid = ((struct sctp_sendv_spa *)info)->sendv_sndinfo.snd_ppid;
  861|      0|			sinfo.sinfo_context = ((struct sctp_sendv_spa *)info)->sendv_sndinfo.snd_context;
  862|      0|			sinfo.sinfo_assoc_id = ((struct sctp_sendv_spa *)info)->sendv_sndinfo.snd_assoc_id;
  863|      0|			assoc_id = &(((struct sctp_sendv_spa *)info)->sendv_sndinfo.snd_assoc_id);
  864|      0|		} else {
  865|      0|			sinfo.sinfo_flags = 0;
  866|      0|			sinfo.sinfo_stream = 0;
  867|      0|		}
  868|      0|		if (((struct sctp_sendv_spa *)info)->sendv_flags & SCTP_SEND_PRINFO_VALID) {
  ------------------
  |  |  242|      0|#define SCTP_SEND_PRINFO_VALID   0x00000002
  ------------------
  |  Branch (868:7): [True: 0, False: 0]
  ------------------
  869|      0|			sinfo.sinfo_flags |= PR_SCTP_POLICY(((struct sctp_sendv_spa *)info)->sendv_prinfo.pr_policy);
  ------------------
  |  |  280|      0|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  ------------------
  870|      0|			sinfo.sinfo_timetolive = ((struct sctp_sendv_spa *)info)->sendv_prinfo.pr_value;
  871|      0|		}
  872|      0|		if (((struct sctp_sendv_spa *)info)->sendv_flags & SCTP_SEND_AUTHINFO_VALID) {
  ------------------
  |  |  243|      0|#define SCTP_SEND_AUTHINFO_VALID 0x00000004
  ------------------
  |  Branch (872:7): [True: 0, False: 0]
  ------------------
  873|      0|			errno = EINVAL;
  874|      0|			return (-1);
  875|      0|		}
  876|      0|		use_sinfo = 1;
  877|      0|		break;
  878|      0|	default:
  ------------------
  |  Branch (878:2): [True: 0, False: 6.17k]
  ------------------
  879|      0|		errno = EINVAL;
  880|      0|		return (-1);
  881|  6.17k|	}
  882|       |
  883|       |	/* Perform error checks on destination (to) */
  884|  6.17k|	if (addrcnt > 1) {
  ------------------
  |  Branch (884:6): [True: 0, False: 6.17k]
  ------------------
  885|      0|		errno = EINVAL;
  886|      0|		return (-1);
  887|      0|	}
  888|       |
  889|  6.17k|	iov[0].iov_base = (caddr_t)data;
  890|  6.17k|	iov[0].iov_len = len;
  891|       |
  892|  6.17k|	auio.uio_iov =  iov;
  893|  6.17k|	auio.uio_iovcnt = 1;
  894|  6.17k|	auio.uio_segflg = UIO_USERSPACE;
  895|  6.17k|	auio.uio_rw = UIO_WRITE;
  896|  6.17k|	auio.uio_offset = 0;			/* XXX */
  897|  6.17k|	auio.uio_resid = len;
  898|  6.17k|	errno = sctp_lower_sosend(so, to, &auio, NULL, NULL, flags, use_sinfo ? &sinfo : NULL);
  ------------------
  |  Branch (898:62): [True: 0, False: 6.17k]
  ------------------
  899|  6.17k|	if (errno == 0) {
  ------------------
  |  Branch (899:6): [True: 5.42k, False: 749]
  ------------------
  900|  5.42k|		if ((to != NULL) && (assoc_id != NULL)) {
  ------------------
  |  Branch (900:7): [True: 0, False: 5.42k]
  |  Branch (900:23): [True: 0, False: 0]
  ------------------
  901|      0|			*assoc_id = usrsctp_getassocid(so, to);
  902|      0|		}
  903|  5.42k|		return (len - auio.uio_resid);
  904|  5.42k|	} else {
  905|    749|		return (-1);
  906|    749|	}
  907|  6.17k|}
usrsctp_recvv:
 1075|   499k|{
 1076|   499k|	struct uio auio;
 1077|   499k|	struct iovec iov[SCTP_SMALL_IOVEC_SIZE];
 1078|   499k|	struct iovec *tiov;
 1079|   499k|	int iovlen = 1;
 1080|   499k|	ssize_t ulen;
 1081|   499k|	int i;
 1082|   499k|	socklen_t fromlen;
 1083|   499k|	struct sctp_rcvinfo *rcv;
 1084|   499k|	struct sctp_recvv_rn *rn;
 1085|   499k|	struct sctp_extrcvinfo seinfo;
 1086|       |
 1087|   499k|	if (so == NULL) {
  ------------------
  |  Branch (1087:6): [True: 0, False: 499k]
  ------------------
 1088|      0|		errno = EBADF;
 1089|      0|		return (-1);
 1090|      0|	}
 1091|   499k|	iov[0].iov_base = dbuf;
 1092|   499k|	iov[0].iov_len = len;
 1093|       |
 1094|   499k|	auio.uio_iov = iov;
 1095|   499k|	auio.uio_iovcnt = iovlen;
 1096|   499k|	auio.uio_segflg = UIO_USERSPACE;
 1097|   499k|	auio.uio_rw = UIO_READ;
 1098|   499k|	auio.uio_offset = 0;			/* XXX */
 1099|   499k|	auio.uio_resid = 0;
 1100|   499k|	tiov = iov;
 1101|   998k|	for (i = 0; i <iovlen; i++, tiov++) {
  ------------------
  |  Branch (1101:14): [True: 499k, False: 499k]
  ------------------
 1102|   499k|		if ((auio.uio_resid += tiov->iov_len) < 0) {
  ------------------
  |  Branch (1102:7): [True: 0, False: 499k]
  ------------------
 1103|      0|			errno = EINVAL;
 1104|      0|			return (-1);
 1105|      0|		}
 1106|   499k|	}
 1107|   499k|	ulen = auio.uio_resid;
 1108|   499k|	if (fromlenp != NULL) {
  ------------------
  |  Branch (1108:6): [True: 499k, False: 0]
  ------------------
 1109|   499k|		fromlen = *fromlenp;
 1110|   499k|	} else {
 1111|      0|		fromlen = 0;
 1112|      0|	}
 1113|   499k|	errno = sctp_sorecvmsg(so, &auio, (struct mbuf **)NULL,
 1114|   499k|		    from, fromlen, msg_flags,
 1115|   499k|		    (struct sctp_sndrcvinfo *)&seinfo, 1);
 1116|   499k|	if (errno) {
  ------------------
  |  Branch (1116:6): [True: 1.66k, False: 497k]
  ------------------
 1117|  1.66k|		if ((auio.uio_resid != ulen) &&
  ------------------
  |  Branch (1117:7): [True: 0, False: 1.66k]
  ------------------
 1118|      0|		    (errno == EINTR ||
  ------------------
  |  Branch (1118:8): [True: 0, False: 0]
  ------------------
 1119|      0|#if !defined(__NetBSD__)
 1120|      0|		     errno == ERESTART ||
  ------------------
  |  Branch (1120:8): [True: 0, False: 0]
  ------------------
 1121|      0|#endif
 1122|      0|		     errno == EWOULDBLOCK)) {
  ------------------
  |  Branch (1122:8): [True: 0, False: 0]
  ------------------
 1123|      0|			errno = 0;
 1124|      0|		}
 1125|  1.66k|	}
 1126|   499k|	if (errno != 0) {
  ------------------
  |  Branch (1126:6): [True: 1.66k, False: 497k]
  ------------------
 1127|  1.66k|		goto out;
 1128|  1.66k|	}
 1129|   497k|	if ((*msg_flags & MSG_NOTIFICATION) == 0) {
  ------------------
  |  |   50|   497k|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
  |  Branch (1129:6): [True: 1.00k, False: 496k]
  ------------------
 1130|  1.00k|		struct sctp_inpcb *inp;
 1131|       |
 1132|  1.00k|		inp = (struct sctp_inpcb *)so->so_pcb;
 1133|  1.00k|		if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO) &&
  ------------------
  |  |   52|  2.00k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 1.00k, False: 0]
  |  |  ------------------
  ------------------
 1134|  1.00k|		    sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVRCVINFO) &&
  ------------------
  |  |   52|  2.00k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 1.00k, False: 0]
  |  |  ------------------
  ------------------
 1135|  1.00k|		    *infolen >= (socklen_t)sizeof(struct sctp_recvv_rn) &&
  ------------------
  |  Branch (1135:7): [True: 1.00k, False: 0]
  ------------------
 1136|  1.00k|		    seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_AVAIL) {
  ------------------
  |  |  164|  1.00k|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              		    seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_AVAIL) {
  ------------------
  |  |  213|  1.00k|#define SCTP_NEXT_MSG_AVAIL        0x0001
  ------------------
  |  Branch (1136:7): [True: 449, False: 551]
  ------------------
 1137|    449|			rn = (struct sctp_recvv_rn *)info;
 1138|    449|			rn->recvv_rcvinfo.rcv_sid = seinfo.sinfo_stream;
 1139|    449|			rn->recvv_rcvinfo.rcv_ssn = seinfo.sinfo_ssn;
 1140|    449|			rn->recvv_rcvinfo.rcv_flags = seinfo.sinfo_flags;
 1141|    449|			rn->recvv_rcvinfo.rcv_ppid = seinfo.sinfo_ppid;
 1142|    449|			rn->recvv_rcvinfo.rcv_context = seinfo.sinfo_context;
 1143|    449|			rn->recvv_rcvinfo.rcv_tsn = seinfo.sinfo_tsn;
 1144|    449|			rn->recvv_rcvinfo.rcv_cumtsn = seinfo.sinfo_cumtsn;
 1145|    449|			rn->recvv_rcvinfo.rcv_assoc_id = seinfo.sinfo_assoc_id;
 1146|    449|			rn->recvv_nxtinfo.nxt_sid = seinfo.sreinfo_next_stream;
  ------------------
  |  |  165|    449|#define sreinfo_next_stream serinfo_next_stream
  ------------------
 1147|    449|			rn->recvv_nxtinfo.nxt_flags = 0;
 1148|    449|			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_UNORDERED) {
  ------------------
  |  |  164|    449|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_UNORDERED) {
  ------------------
  |  |  215|    449|#define SCTP_NEXT_MSG_IS_UNORDERED 0x0004
  ------------------
  |  Branch (1148:8): [True: 283, False: 166]
  ------------------
 1149|    283|				rn->recvv_nxtinfo.nxt_flags |= SCTP_UNORDERED;
  ------------------
  |  |  259|    283|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
 1150|    283|			}
 1151|    449|			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_NOTIFICATION) {
  ------------------
  |  |  164|    449|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_NOTIFICATION) {
  ------------------
  |  |  216|    449|#define SCTP_NEXT_MSG_IS_NOTIFICATION 0x0008
  ------------------
  |  Branch (1151:8): [True: 62, False: 387]
  ------------------
 1152|     62|				rn->recvv_nxtinfo.nxt_flags |= SCTP_NOTIFICATION;
  ------------------
  |  |  255|     62|#define SCTP_NOTIFICATION     0x0010 /* next message is a notification */
  ------------------
 1153|     62|			}
 1154|    449|			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_ISCOMPLETE) {
  ------------------
  |  |  164|    449|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_ISCOMPLETE) {
  ------------------
  |  |  214|    449|#define SCTP_NEXT_MSG_ISCOMPLETE   0x0002
  ------------------
  |  Branch (1154:8): [True: 449, False: 0]
  ------------------
 1155|    449|				rn->recvv_nxtinfo.nxt_flags |= SCTP_COMPLETE;
  ------------------
  |  |  256|    449|#define SCTP_COMPLETE         0x0020 /* next message is complete */
  ------------------
 1156|    449|			}
 1157|    449|			rn->recvv_nxtinfo.nxt_ppid = seinfo.sreinfo_next_ppid;
  ------------------
  |  |  168|    449|#define sreinfo_next_ppid serinfo_next_ppid
  ------------------
 1158|    449|			rn->recvv_nxtinfo.nxt_length = seinfo.sreinfo_next_length;
  ------------------
  |  |  167|    449|#define sreinfo_next_length serinfo_next_length
  ------------------
 1159|    449|			rn->recvv_nxtinfo.nxt_assoc_id = seinfo.sreinfo_next_aid;
  ------------------
  |  |  166|    449|#define sreinfo_next_aid serinfo_next_aid
  ------------------
 1160|    449|			*infolen = (socklen_t)sizeof(struct sctp_recvv_rn);
 1161|    449|			*infotype = SCTP_RECVV_RN;
  ------------------
  |  |  226|    449|#define SCTP_RECVV_RN      3
  ------------------
 1162|    551|		} else if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVRCVINFO) &&
  ------------------
  |  |   52|  1.10k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 551, False: 0]
  |  |  ------------------
  ------------------
 1163|    551|		           *infolen >= (socklen_t)sizeof(struct sctp_rcvinfo)) {
  ------------------
  |  Branch (1163:14): [True: 551, False: 0]
  ------------------
 1164|    551|			rcv = (struct sctp_rcvinfo *)info;
 1165|    551|			rcv->rcv_sid = seinfo.sinfo_stream;
 1166|    551|			rcv->rcv_ssn = seinfo.sinfo_ssn;
 1167|    551|			rcv->rcv_flags = seinfo.sinfo_flags;
 1168|    551|			rcv->rcv_ppid = seinfo.sinfo_ppid;
 1169|    551|			rcv->rcv_context = seinfo.sinfo_context;
 1170|    551|			rcv->rcv_tsn = seinfo.sinfo_tsn;
 1171|    551|			rcv->rcv_cumtsn = seinfo.sinfo_cumtsn;
 1172|    551|			rcv->rcv_assoc_id = seinfo.sinfo_assoc_id;
 1173|    551|			*infolen = (socklen_t)sizeof(struct sctp_rcvinfo);
 1174|    551|			*infotype = SCTP_RECVV_RCVINFO;
  ------------------
  |  |  224|    551|#define SCTP_RECVV_RCVINFO 1
  ------------------
 1175|    551|		} else {
 1176|      0|			*infotype = SCTP_RECVV_NOINFO;
  ------------------
  |  |  223|      0|#define SCTP_RECVV_NOINFO  0
  ------------------
 1177|      0|			*infolen = 0;
 1178|      0|		}
 1179|  1.00k|	}
 1180|   497k|	if ((fromlenp != NULL) &&
  ------------------
  |  Branch (1180:6): [True: 497k, False: 0]
  ------------------
 1181|   497k|	    (fromlen > 0) &&
  ------------------
  |  Branch (1181:6): [True: 497k, False: 0]
  ------------------
 1182|   497k|	    (from != NULL) &&
  ------------------
  |  Branch (1182:6): [True: 497k, False: 0]
  ------------------
 1183|   497k|	    (ulen > auio.uio_resid)) {
  ------------------
  |  Branch (1183:6): [True: 497k, False: 2]
  ------------------
 1184|   497k|		switch (from->sa_family) {
 1185|      0|#if defined(INET)
 1186|    133|		case AF_INET:
  ------------------
  |  Branch (1186:3): [True: 133, False: 497k]
  ------------------
 1187|    133|			*fromlenp = sizeof(struct sockaddr_in);
 1188|    133|			break;
 1189|      0|#endif
 1190|      0|#if defined(INET6)
 1191|  9.20k|		case AF_INET6:
  ------------------
  |  Branch (1191:3): [True: 9.20k, False: 488k]
  ------------------
 1192|  9.20k|			*fromlenp = sizeof(struct sockaddr_in6);
 1193|  9.20k|			break;
 1194|      0|#endif
 1195|   488k|		case AF_CONN:
  ------------------
  |  | 1014|   488k|#define AF_CONN 123
  ------------------
  |  Branch (1195:3): [True: 488k, False: 9.33k]
  ------------------
 1196|   488k|			*fromlenp = sizeof(struct sockaddr_conn);
 1197|   488k|			break;
 1198|      0|		default:
  ------------------
  |  Branch (1198:3): [True: 0, False: 497k]
  ------------------
 1199|      0|			*fromlenp = 0;
 1200|      0|			break;
 1201|   497k|		}
 1202|   497k|		if (*fromlenp > fromlen) {
  ------------------
  |  Branch (1202:7): [True: 9.20k, False: 488k]
  ------------------
 1203|  9.20k|			*fromlenp = fromlen;
 1204|  9.20k|		}
 1205|   497k|	}
 1206|   499k|out:
 1207|   499k|	if (errno == 0) {
  ------------------
  |  Branch (1207:6): [True: 497k, False: 1.66k]
  ------------------
 1208|       |		/* ready return value */
 1209|   497k|		return (ulen - auio.uio_resid);
 1210|   497k|	} else {
 1211|  1.66k|		return (-1);
 1212|  1.66k|	}
 1213|   499k|}
socreate:
 1225|  10.1k|{
 1226|  10.1k|	struct socket *so;
 1227|  10.1k|	int error;
 1228|       |
 1229|  10.1k|	if ((dom != AF_CONN) && (dom != AF_INET) && (dom != AF_INET6)) {
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (1229:6): [True: 0, False: 10.1k]
  |  Branch (1229:26): [True: 0, False: 0]
  |  Branch (1229:46): [True: 0, False: 0]
  ------------------
 1230|      0|		return (EINVAL);
 1231|      0|	}
 1232|  10.1k|	if ((type != SOCK_STREAM) && (type != SOCK_SEQPACKET)) {
  ------------------
  |  Branch (1232:6): [True: 0, False: 10.1k]
  |  Branch (1232:31): [True: 0, False: 0]
  ------------------
 1233|      0|		return (EINVAL);
 1234|      0|	}
 1235|  10.1k|	if (proto != IPPROTO_SCTP) {
  ------------------
  |  Branch (1235:6): [True: 0, False: 10.1k]
  ------------------
 1236|      0|		return (EINVAL);
 1237|      0|	}
 1238|       |
 1239|  10.1k|	so = soalloc();
 1240|  10.1k|	if (so == NULL) {
  ------------------
  |  Branch (1240:6): [True: 0, False: 10.1k]
  ------------------
 1241|      0|		return (ENOBUFS);
 1242|      0|	}
 1243|       |
 1244|       |	/*
 1245|       |	 * so_incomp represents a queue of connections that
 1246|       |	 * must be completed at protocol level before being
 1247|       |	 * returned. so_comp field heads a list of sockets
 1248|       |	 * that are ready to be returned to the listening process
 1249|       |	 *__Userspace__ These queues are being used at a number of places like accept etc.
 1250|       |	 */
 1251|  10.1k|	TAILQ_INIT(&so->so_incomp);
  ------------------
  |  Branch (1251:2): [Folded, False: 10.1k]
  ------------------
 1252|  10.1k|	TAILQ_INIT(&so->so_comp);
  ------------------
  |  Branch (1252:2): [Folded, False: 10.1k]
  ------------------
 1253|  10.1k|	so->so_type = type;
 1254|  10.1k|	so->so_count = 1;
 1255|  10.1k|	so->so_dom = dom;
 1256|       |	/*
 1257|       |	 * Auto-sizing of socket buffers is managed by the protocols and
 1258|       |	 * the appropriate flags must be set in the pru_attach function.
 1259|       |	 * For __Userspace__ The pru_attach function in this case is sctp_attach.
 1260|       |	 */
 1261|  10.1k|	switch (dom) {
 1262|      0|#if defined(INET)
 1263|      0|	case AF_INET:
  ------------------
  |  Branch (1263:2): [True: 0, False: 10.1k]
  ------------------
 1264|      0|		error = sctp_attach(so, proto, SCTP_DEFAULT_VRFID);
  ------------------
  |  |  650|      0|#define SCTP_DEFAULT_VRFID	0
  ------------------
 1265|      0|		break;
 1266|      0|#endif
 1267|      0|#if defined(INET6)
 1268|      0|	case AF_INET6:
  ------------------
  |  Branch (1268:2): [True: 0, False: 10.1k]
  ------------------
 1269|      0|		error = sctp6_attach(so, proto, SCTP_DEFAULT_VRFID);
  ------------------
  |  |  650|      0|#define SCTP_DEFAULT_VRFID	0
  ------------------
 1270|      0|		break;
 1271|      0|#endif
 1272|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (1272:2): [True: 10.1k, False: 0]
  ------------------
 1273|  10.1k|		error = sctpconn_attach(so, proto, SCTP_DEFAULT_VRFID);
  ------------------
  |  |  650|  10.1k|#define SCTP_DEFAULT_VRFID	0
  ------------------
 1274|  10.1k|		break;
 1275|      0|	default:
  ------------------
  |  Branch (1275:2): [True: 0, False: 10.1k]
  ------------------
 1276|      0|		error = EAFNOSUPPORT;
 1277|      0|		break;
 1278|  10.1k|	}
 1279|  10.1k|	if (error) {
  ------------------
  |  Branch (1279:6): [True: 0, False: 10.1k]
  ------------------
 1280|      0|		KASSERT(so->so_count == 1, ("socreate: so_count %d", so->so_count));
  ------------------
  |  |  112|      0|	do {                         \
  |  |  113|      0|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1281|      0|		so->so_count = 0;
 1282|      0|		sodealloc(so);
 1283|      0|		return (error);
 1284|      0|	}
 1285|  10.1k|	*aso = so;
 1286|  10.1k|	return (0);
 1287|  10.1k|}
usrsctp_socket:
 1318|  10.1k|{
 1319|  10.1k|	struct socket *so = NULL;
 1320|       |
 1321|  10.1k|	if ((protocol == IPPROTO_SCTP) && (SCTP_BASE_VAR(sctp_pcb_initialized) == 0)) {
  ------------------
  |  |  591|  10.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1321:6): [True: 10.1k, False: 0]
  |  Branch (1321:36): [True: 0, False: 10.1k]
  ------------------
 1322|      0|		errno = EPROTONOSUPPORT;
 1323|      0|		return (NULL);
 1324|      0|	}
 1325|  10.1k|	if ((receive_cb == NULL) &&
  ------------------
  |  Branch (1325:6): [True: 10.1k, False: 0]
  ------------------
 1326|  10.1k|	    ((send_cb != NULL) || (sb_threshold != 0) || (ulp_info != NULL))) {
  ------------------
  |  Branch (1326:7): [True: 0, False: 10.1k]
  |  Branch (1326:28): [True: 0, False: 10.1k]
  |  Branch (1326:51): [True: 0, False: 10.1k]
  ------------------
 1327|      0|		errno = EINVAL;
 1328|      0|		return (NULL);
 1329|      0|	}
 1330|  10.1k|	if ((domain == AF_CONN) && (SCTP_BASE_VAR(conn_output) == NULL)) {
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
              	if ((domain == AF_CONN) && (SCTP_BASE_VAR(conn_output) == NULL)) {
  ------------------
  |  |  591|  10.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1330:6): [True: 10.1k, False: 0]
  |  Branch (1330:29): [True: 0, False: 10.1k]
  ------------------
 1331|      0|		errno = EAFNOSUPPORT;
 1332|      0|		return (NULL);
 1333|      0|	}
 1334|  10.1k|	errno = socreate(domain, &so, type, protocol);
 1335|  10.1k|	if (errno) {
  ------------------
  |  Branch (1335:6): [True: 0, False: 10.1k]
  ------------------
 1336|      0|		return (NULL);
 1337|      0|	}
 1338|       |	/*
 1339|       |	 * The original socket call returns the file descriptor fd.
 1340|       |	 * td->td_retval[0] = fd.
 1341|       |	 * We are returning struct socket *so.
 1342|       |	 */
 1343|  10.1k|	register_recv_cb(so, receive_cb);
 1344|  10.1k|	register_send_cb(so, sb_threshold, send_cb);
 1345|  10.1k|	register_ulp_info(so, ulp_info);
 1346|  10.1k|	return (so);
 1347|  10.1k|}
sbreserve_locked:
 1362|  20.3k|{
 1363|  20.3k|	SOCKBUF_LOCK_ASSERT(sb);
  ------------------
  |  |  514|  20.3k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  20.3k|	do {                         \
  |  |  |  |  113|  20.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 20.3k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  20.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 20.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1364|  20.3k|	sb->sb_mbmax = (u_int)min(cc * sb_efficiency, sb_max);
  ------------------
  |  |   66|  20.3k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 20.3k, False: 0]
  |  |  ------------------
  ------------------
 1365|  20.3k|	sb->sb_hiwat = (u_int)cc;
 1366|  20.3k|	if (sb->sb_lowat > (int)sb->sb_hiwat)
  ------------------
  |  Branch (1366:6): [True: 0, False: 20.3k]
  ------------------
 1367|      0|		sb->sb_lowat = (int)sb->sb_hiwat;
 1368|  20.3k|	return (1);
 1369|  20.3k|}
soreserve:
 1384|  10.1k|{
 1385|  10.1k|	SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1386|  10.1k|	SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1387|  10.1k|	so->so_snd.sb_hiwat = (uint32_t)sndcc;
 1388|  10.1k|	so->so_rcv.sb_hiwat = (uint32_t)rcvcc;
 1389|       |
 1390|  10.1k|	if (sbreserve_locked(&so->so_snd, sndcc, so) == 0) {
  ------------------
  |  Branch (1390:6): [True: 0, False: 10.1k]
  ------------------
 1391|      0|		goto bad;
 1392|      0|	}
 1393|  10.1k|	if (sbreserve_locked(&so->so_rcv, rcvcc, so) == 0) {
  ------------------
  |  Branch (1393:6): [True: 0, False: 10.1k]
  ------------------
 1394|      0|		goto bad;
 1395|      0|	}
 1396|  10.1k|	if (so->so_rcv.sb_lowat == 0)
  ------------------
  |  Branch (1396:6): [True: 10.1k, False: 0]
  ------------------
 1397|  10.1k|		so->so_rcv.sb_lowat = 1;
 1398|  10.1k|	if (so->so_snd.sb_lowat == 0)
  ------------------
  |  Branch (1398:6): [True: 10.1k, False: 0]
  ------------------
 1399|  10.1k|		so->so_snd.sb_lowat = MCLBYTES;
  ------------------
  |  |   51|  10.1k|#define MCLBYTES 2048
  ------------------
 1400|  10.1k|	if (so->so_snd.sb_lowat > (int)so->so_snd.sb_hiwat)
  ------------------
  |  Branch (1400:6): [True: 0, False: 10.1k]
  ------------------
 1401|      0|		so->so_snd.sb_lowat = (int)so->so_snd.sb_hiwat;
 1402|  10.1k|	SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1403|  10.1k|	SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1404|  10.1k|	return (0);
 1405|       |
 1406|      0| bad:
 1407|      0|	SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1408|      0|	SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1409|      0|	return (ENOBUFS);
 1410|      0|}
sowakeup:
 1419|   530k|{
 1420|       |
 1421|   530k|	SOCKBUF_LOCK_ASSERT(sb);
  ------------------
  |  |  514|   530k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   530k|	do {                         \
  |  |  |  |  113|   530k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 530k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   530k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 530k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1422|       |
 1423|   530k|	sb->sb_flags &= ~SB_SEL;
  ------------------
  |  |  204|   530k|#define	SB_SEL		0x08		/* someone is selecting */
  ------------------
 1424|   530k|	if (sb->sb_flags & SB_WAIT) {
  ------------------
  |  |  203|   530k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  ------------------
  |  Branch (1424:6): [True: 0, False: 530k]
  ------------------
 1425|      0|		sb->sb_flags &= ~SB_WAIT;
  ------------------
  |  |  203|      0|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  ------------------
 1426|       |#if defined(_WIN32)
 1427|       |		WakeAllConditionVariable(&(sb)->sb_cond);
 1428|       |#else
 1429|      0|		pthread_cond_broadcast(&(sb)->sb_cond);
 1430|      0|#endif
 1431|      0|	}
 1432|   530k|	SOCKBUF_UNLOCK(sb);
  ------------------
  |  |  519|   530k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   530k|	do {                         \
  |  |  |  |  113|   530k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 530k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   530k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 530k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1433|   530k|}
sobind:
 1442|  10.1k|{
 1443|  10.1k|	switch (nam->sa_family) {
 1444|      0|#if defined(INET)
 1445|      0|	case AF_INET:
  ------------------
  |  Branch (1445:2): [True: 0, False: 10.1k]
  ------------------
 1446|      0|		return (sctp_bind(so, nam));
 1447|      0|#endif
 1448|      0|#if defined(INET6)
 1449|      0|	case AF_INET6:
  ------------------
  |  Branch (1449:2): [True: 0, False: 10.1k]
  ------------------
 1450|      0|		return (sctp6_bind(so, nam, NULL));
 1451|      0|#endif
 1452|  10.1k|	case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (1452:2): [True: 10.1k, False: 0]
  ------------------
 1453|  10.1k|		return (sctpconn_bind(so, nam));
 1454|      0|	default:
  ------------------
  |  Branch (1454:2): [True: 0, False: 10.1k]
  ------------------
 1455|       |		return EAFNOSUPPORT;
 1456|  10.1k|	}
 1457|  10.1k|}
usrsctp_bind:
 1465|  10.1k|{
 1466|  10.1k|	struct sockaddr *sa;
 1467|       |
 1468|  10.1k|	if (so == NULL) {
  ------------------
  |  Branch (1468:6): [True: 0, False: 10.1k]
  ------------------
 1469|      0|		errno = EBADF;
 1470|      0|		return (-1);
 1471|      0|	}
 1472|  10.1k|	if ((errno = getsockaddr(&sa, (caddr_t)name, namelen)) != 0)
  ------------------
  |  Branch (1472:6): [True: 0, False: 10.1k]
  ------------------
 1473|      0|		return (-1);
 1474|       |
 1475|  10.1k|	errno = sobind(so, sa);
 1476|  10.1k|	FREE(sa, M_SONAME);
  ------------------
  |  |  191|  10.1k|#define	FREE(addr, type) free((addr))
  ------------------
 1477|  10.1k|	if (errno) {
  ------------------
  |  Branch (1477:6): [True: 0, False: 10.1k]
  ------------------
 1478|      0|		return (-1);
 1479|  10.1k|	} else {
 1480|  10.1k|		return (0);
 1481|  10.1k|	}
 1482|  10.1k|}
usrsctp_set_non_blocking:
 1823|  10.1k|{
 1824|  10.1k|	if (so == NULL) {
  ------------------
  |  Branch (1824:6): [True: 0, False: 10.1k]
  ------------------
 1825|      0|		errno = EBADF;
 1826|      0|		return (-1);
 1827|      0|	}
 1828|  10.1k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  10.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1829|  10.1k|	if (onoff != 0) {
  ------------------
  |  Branch (1829:6): [True: 10.1k, False: 0]
  ------------------
 1830|  10.1k|		so->so_state |= SS_NBIO;
  ------------------
  |  |  343|  10.1k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  ------------------
 1831|  10.1k|	} else {
 1832|      0|		so->so_state &= ~SS_NBIO;
  ------------------
  |  |  343|      0|#define	SS_NBIO			0x0100	/* non-blocking ops */
  ------------------
 1833|      0|	}
 1834|  10.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  10.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1835|  10.1k|	return (0);
 1836|  10.1k|}
soconnect:
 1859|  10.1k|{
 1860|  10.1k|	int error;
 1861|       |
 1862|  10.1k|	if (so->so_options & SCTP_SO_ACCEPTCONN)
  ------------------
  |  |   53|  10.1k|#define SCTP_SO_ACCEPTCONN 0x0002
  ------------------
  |  Branch (1862:6): [True: 0, False: 10.1k]
  ------------------
 1863|      0|		return (EOPNOTSUPP);
 1864|       |	/*
 1865|       |	 * If protocol is connection-based, can only connect once.
 1866|       |	 * Otherwise, if connected, try to disconnect first.  This allows
 1867|       |	 * user to disconnect by connecting to, e.g., a null address.
 1868|       |	 */
 1869|  10.1k|	if (so->so_state & (SS_ISCONNECTED|SS_ISCONNECTING) && (sodisconnect(so) != 0)) {
  ------------------
  |  |  340|  10.1k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
              	if (so->so_state & (SS_ISCONNECTED|SS_ISCONNECTING) && (sodisconnect(so) != 0)) {
  ------------------
  |  |  341|  10.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1869:6): [True: 0, False: 10.1k]
  |  Branch (1869:57): [True: 0, False: 0]
  ------------------
 1870|      0|		error = EISCONN;
 1871|  10.1k|	} else {
 1872|       |		/*
 1873|       |		 * Prevent accumulated error from previous connection from
 1874|       |		 * biting us.
 1875|       |		 */
 1876|  10.1k|		so->so_error = 0;
 1877|  10.1k|		switch (nam->sa_family) {
 1878|      0|#if defined(INET)
 1879|      0|		case AF_INET:
  ------------------
  |  Branch (1879:3): [True: 0, False: 10.1k]
  ------------------
 1880|      0|			error = sctp_connect(so, nam);
 1881|      0|			break;
 1882|      0|#endif
 1883|      0|#if defined(INET6)
 1884|      0|		case AF_INET6:
  ------------------
  |  Branch (1884:3): [True: 0, False: 10.1k]
  ------------------
 1885|      0|			error = sctp6_connect(so, nam);
 1886|      0|			break;
 1887|      0|#endif
 1888|  10.1k|		case AF_CONN:
  ------------------
  |  | 1014|  10.1k|#define AF_CONN 123
  ------------------
  |  Branch (1888:3): [True: 10.1k, False: 0]
  ------------------
 1889|  10.1k|			error = sctpconn_connect(so, nam);
 1890|  10.1k|			break;
 1891|      0|		default:
  ------------------
  |  Branch (1891:3): [True: 0, False: 10.1k]
  ------------------
 1892|      0|			error = EAFNOSUPPORT;
 1893|  10.1k|		}
 1894|  10.1k|	}
 1895|       |
 1896|  10.1k|	return (error);
 1897|  10.1k|}
user_connect:
 1902|  10.1k|{
 1903|  10.1k|	int error;
 1904|  10.1k|	int interrupted = 0;
 1905|       |
 1906|  10.1k|	if (so == NULL) {
  ------------------
  |  Branch (1906:6): [True: 0, False: 10.1k]
  ------------------
 1907|      0|		error = EBADF;
 1908|      0|		goto done1;
 1909|      0|	}
 1910|  10.1k|	if (so->so_state & SS_ISCONNECTING) {
  ------------------
  |  |  341|  10.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1910:6): [True: 0, False: 10.1k]
  ------------------
 1911|      0|		error = EALREADY;
 1912|      0|		goto done1;
 1913|      0|	}
 1914|       |
 1915|  10.1k|	error = soconnect(so, sa);
 1916|  10.1k|	if (error) {
  ------------------
  |  Branch (1916:6): [True: 0, False: 10.1k]
  ------------------
 1917|      0|		goto bad;
 1918|      0|	}
 1919|  10.1k|	if ((so->so_state & SS_NBIO) && (so->so_state & SS_ISCONNECTING)) {
  ------------------
  |  |  343|  10.1k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  ------------------
              	if ((so->so_state & SS_NBIO) && (so->so_state & SS_ISCONNECTING)) {
  ------------------
  |  |  341|  10.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1919:6): [True: 10.1k, False: 0]
  |  Branch (1919:34): [True: 10.1k, False: 0]
  ------------------
 1920|  10.1k|		error = EINPROGRESS;
 1921|  10.1k|		goto done1;
 1922|  10.1k|	}
 1923|       |
 1924|      0|	SOCK_LOCK(so);
  ------------------
  |  |  527|      0|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|      0|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1925|      0|	while ((so->so_state & SS_ISCONNECTING) && so->so_error == 0) {
  ------------------
  |  |  341|      0|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1925:9): [True: 0, False: 0]
  |  Branch (1925:45): [True: 0, False: 0]
  ------------------
 1926|       |#if defined(_WIN32)
 1927|       |		if (SleepConditionVariableCS(SOCK_COND(so), SOCK_MTX(so), INFINITE))
 1928|       |			error = 0;
 1929|       |		else
 1930|       |			error = -1;
 1931|       |#else
 1932|      0|		error = pthread_cond_wait(SOCK_COND(so), SOCK_MTX(so));
  ------------------
  |  |  303|      0|#define SOCK_COND(_so) (&(_so)->timeo_cond)
  ------------------
              		error = pthread_cond_wait(SOCK_COND(so), SOCK_MTX(so));
  ------------------
  |  |  319|      0|#define	SOCK_MTX(_so)			SOCKBUF_MTX(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  274|      0|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  ------------------
 1933|      0|#endif
 1934|      0|		if (error) {
  ------------------
  |  Branch (1934:7): [True: 0, False: 0]
  ------------------
 1935|       |#if defined(__NetBSD__)
 1936|       |			if (error == EINTR) {
 1937|       |#else
 1938|      0|			if (error == EINTR || error == ERESTART) {
  ------------------
  |  Branch (1938:8): [True: 0, False: 0]
  |  Branch (1938:26): [True: 0, False: 0]
  ------------------
 1939|      0|#endif
 1940|      0|				interrupted = 1;
 1941|      0|			}
 1942|      0|			break;
 1943|      0|		}
 1944|      0|	}
 1945|      0|	if (error == 0) {
  ------------------
  |  Branch (1945:6): [True: 0, False: 0]
  ------------------
 1946|      0|		error = so->so_error;
 1947|      0|		so->so_error = 0;
 1948|      0|	}
 1949|      0|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1950|       |
 1951|      0|bad:
 1952|      0|	if (!interrupted) {
  ------------------
  |  Branch (1952:6): [True: 0, False: 0]
  ------------------
 1953|      0|		so->so_state &= ~SS_ISCONNECTING;
  ------------------
  |  |  341|      0|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
 1954|      0|	}
 1955|      0|#if !defined(__NetBSD__)
 1956|      0|	if (error == ERESTART) {
  ------------------
  |  Branch (1956:6): [True: 0, False: 0]
  ------------------
 1957|      0|		error = EINTR;
 1958|      0|	}
 1959|      0|#endif
 1960|  10.1k|done1:
 1961|  10.1k|	return (error);
 1962|      0|}
usrsctp_connect:
 1965|  10.1k|{
 1966|  10.1k|	struct sockaddr *sa = NULL;
 1967|       |
 1968|  10.1k|	errno = getsockaddr(&sa, (caddr_t)name, namelen);
 1969|  10.1k|	if (errno)
  ------------------
  |  Branch (1969:6): [True: 0, False: 10.1k]
  ------------------
 1970|      0|		return (-1);
 1971|       |
 1972|  10.1k|	errno = user_connect(so, sa);
 1973|  10.1k|	FREE(sa, M_SONAME);
  ------------------
  |  |  191|  10.1k|#define	FREE(addr, type) free((addr))
  ------------------
 1974|  10.1k|	if (errno) {
  ------------------
  |  Branch (1974:6): [True: 10.1k, False: 0]
  ------------------
 1975|  10.1k|		return (-1);
 1976|  10.1k|	} else {
 1977|      0|		return (0);
 1978|      0|	}
 1979|  10.1k|}
usrsctp_close:
 1989|  10.1k|usrsctp_close(struct socket *so) {
 1990|  10.1k|	if (so != NULL) {
  ------------------
  |  Branch (1990:6): [True: 10.1k, False: 0]
  ------------------
 1991|  10.1k|		if (so->so_options & SCTP_SO_ACCEPTCONN) {
  ------------------
  |  |   53|  10.1k|#define SCTP_SO_ACCEPTCONN 0x0002
  ------------------
  |  Branch (1991:7): [True: 0, False: 10.1k]
  ------------------
 1992|      0|			struct socket *sp;
 1993|       |
 1994|      0|			ACCEPT_LOCK();
  ------------------
  |  |  256|      0|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1995|      0|			while ((sp = TAILQ_FIRST(&so->so_comp)) != NULL) {
  ------------------
  |  Branch (1995:11): [True: 0, False: 0]
  ------------------
 1996|      0|				TAILQ_REMOVE(&so->so_comp, sp, so_list);
  ------------------
  |  Branch (1996:5): [True: 0, False: 0]
  |  Branch (1996:5): [Folded, False: 0]
  ------------------
 1997|      0|				so->so_qlen--;
 1998|      0|				sp->so_qstate &= ~SQ_COMP;
  ------------------
  |  |  367|      0|#define	SQ_COMP			0x1000	/* unaccepted, complete connection */
  ------------------
 1999|      0|				sp->so_head = NULL;
 2000|      0|				ACCEPT_UNLOCK();
  ------------------
  |  |  257|      0|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2001|      0|				soabort(sp);
 2002|      0|				ACCEPT_LOCK();
  ------------------
  |  |  256|      0|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2003|      0|			}
 2004|      0|			ACCEPT_UNLOCK();
  ------------------
  |  |  257|      0|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2005|      0|		}
 2006|  10.1k|		ACCEPT_LOCK();
  ------------------
  |  |  256|  10.1k|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2007|  10.1k|		SOCK_LOCK(so);
  ------------------
  |  |  527|  10.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2008|  10.1k|		sorele(so);
  ------------------
  |  |  412|  10.1k|#define	sorele(so) do {							\
  |  |  413|  10.1k|	ACCEPT_LOCK_ASSERT();						\
  |  |  ------------------
  |  |  |  |  263|  10.1k|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  414|  10.1k|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|  10.1k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  10.1k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  415|  10.1k|	KASSERT((so)->so_count > 0, ("sorele"));			\
  |  |  ------------------
  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  416|  10.1k|	if (--(so)->so_count == 0) {					\
  |  |  ------------------
  |  |  |  Branch (416:6): [True: 10.1k, False: 0]
  |  |  ------------------
  |  |  417|  10.1k|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  418|  10.1k|			(so), (so)->so_count,				\
  |  |  419|  10.1k|			__func__, __FILE__, __LINE__)			\
  |  |  420|  10.1k|		sofree(so);						\
  |  |  421|  10.1k|	}								\
  |  |  422|  10.1k|	else {								\
  |  |  423|      0|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  424|      0|			(so), (so)->so_count,				\
  |  |  425|      0|			__func__, __FILE__, __LINE__)			\
  |  |  426|      0|		SOCK_UNLOCK(so);					\
  |  |  ------------------
  |  |  |  |  529|      0|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|      0|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  427|      0|		ACCEPT_UNLOCK();					\
  |  |  ------------------
  |  |  |  |  257|      0|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|	do {                         \
  |  |  |  |  |  |  113|      0|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|      0|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  428|      0|	}								\
  |  |  429|  10.1k|} while (0)
  |  |  ------------------
  |  |  |  Branch (429:10): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
 2009|  10.1k|	}
 2010|  10.1k|}
usrsctp_setsockopt:
 2091|   216k|{
 2092|   216k|	if (so == NULL) {
  ------------------
  |  Branch (2092:6): [True: 0, False: 216k]
  ------------------
 2093|      0|		errno = EBADF;
 2094|      0|		return (-1);
 2095|      0|	}
 2096|   216k|	switch (level) {
 2097|  10.1k|	case SOL_SOCKET:
  ------------------
  |  Branch (2097:2): [True: 10.1k, False: 206k]
  ------------------
 2098|  10.1k|	{
 2099|  10.1k|		switch (option_name) {
 2100|      0|		case SO_RCVBUF:
  ------------------
  |  Branch (2100:3): [True: 0, False: 10.1k]
  ------------------
 2101|      0|			if (option_len < (socklen_t)sizeof(int)) {
  ------------------
  |  Branch (2101:8): [True: 0, False: 0]
  ------------------
 2102|      0|				errno = EINVAL;
 2103|      0|				return (-1);
 2104|      0|			} else {
 2105|      0|				int *buf_size;
 2106|       |
 2107|      0|				buf_size = (int *)option_value;
 2108|      0|				if (*buf_size < 1) {
  ------------------
  |  Branch (2108:9): [True: 0, False: 0]
  ------------------
 2109|      0|					errno = EINVAL;
 2110|      0|					return (-1);
 2111|      0|				}
 2112|      0|				sbreserve(&so->so_rcv, (u_long)*buf_size, so);
 2113|      0|				return (0);
 2114|      0|			}
 2115|      0|			break;
 2116|      0|		case SO_SNDBUF:
  ------------------
  |  Branch (2116:3): [True: 0, False: 10.1k]
  ------------------
 2117|      0|			if (option_len < (socklen_t)sizeof(int)) {
  ------------------
  |  Branch (2117:8): [True: 0, False: 0]
  ------------------
 2118|      0|				errno = EINVAL;
 2119|      0|				return (-1);
 2120|      0|			} else {
 2121|      0|				int *buf_size;
 2122|       |
 2123|      0|				buf_size = (int *)option_value;
 2124|      0|				if (*buf_size < 1) {
  ------------------
  |  Branch (2124:9): [True: 0, False: 0]
  ------------------
 2125|      0|					errno = EINVAL;
 2126|      0|					return (-1);
 2127|      0|				}
 2128|      0|				sbreserve(&so->so_snd, (u_long)*buf_size, so);
 2129|      0|				return (0);
 2130|      0|			}
 2131|      0|			break;
 2132|  10.1k|		case SO_LINGER:
  ------------------
  |  Branch (2132:3): [True: 10.1k, False: 0]
  ------------------
 2133|  10.1k|			if (option_len < (socklen_t)sizeof(struct linger)) {
  ------------------
  |  Branch (2133:8): [True: 0, False: 10.1k]
  ------------------
 2134|      0|				errno = EINVAL;
 2135|      0|				return (-1);
 2136|  10.1k|			} else {
 2137|  10.1k|				struct linger *l;
 2138|       |
 2139|  10.1k|				l = (struct linger *)option_value;
 2140|  10.1k|				so->so_linger = l->l_linger;
 2141|  10.1k|				if (l->l_onoff) {
  ------------------
  |  Branch (2141:9): [True: 10.1k, False: 0]
  ------------------
 2142|  10.1k|					so->so_options |= SCTP_SO_LINGER;
  ------------------
  |  |   52|  10.1k|#define SCTP_SO_LINGER     0x0001
  ------------------
 2143|  10.1k|				} else {
 2144|      0|					so->so_options &= ~SCTP_SO_LINGER;
  ------------------
  |  |   52|      0|#define SCTP_SO_LINGER     0x0001
  ------------------
 2145|      0|				}
 2146|  10.1k|				return (0);
 2147|  10.1k|			}
 2148|      0|		default:
  ------------------
  |  Branch (2148:3): [True: 0, False: 10.1k]
  ------------------
 2149|      0|			errno = EINVAL;
 2150|      0|			return (-1);
 2151|  10.1k|		}
 2152|  10.1k|	}
 2153|   206k|	case IPPROTO_SCTP:
  ------------------
  |  Branch (2153:2): [True: 206k, False: 10.1k]
  ------------------
 2154|   206k|		errno = sctp_setopt(so, option_name, (void *) option_value, (size_t)option_len, NULL);
 2155|   206k|		if (errno) {
  ------------------
  |  Branch (2155:7): [True: 0, False: 206k]
  ------------------
 2156|      0|			return (-1);
 2157|   206k|		} else {
 2158|   206k|			return (0);
 2159|   206k|		}
 2160|      0|	default:
  ------------------
  |  Branch (2160:2): [True: 0, False: 216k]
  ------------------
 2161|      0|		errno = ENOPROTOOPT;
 2162|      0|		return (-1);
 2163|   216k|	}
 2164|   216k|}
usrsctp_register_address:
 3125|      1|{
 3126|      1|	struct sockaddr_conn sconn;
 3127|       |
 3128|      1|	memset(&sconn, 0, sizeof(struct sockaddr_conn));
 3129|      1|	sconn.sconn_family = AF_CONN;
  ------------------
  |  | 1014|      1|#define AF_CONN 123
  ------------------
 3130|       |#ifdef HAVE_SCONN_LEN
 3131|       |	sconn.sconn_len = sizeof(struct sockaddr_conn);
 3132|       |#endif
 3133|      1|	sconn.sconn_port = 0;
 3134|      1|	sconn.sconn_addr = addr;
 3135|      1|	sctp_add_addr_to_vrf(SCTP_DEFAULT_VRFID,
  ------------------
  |  |  650|      1|#define SCTP_DEFAULT_VRFID	0
  ------------------
 3136|      1|	                     NULL,
 3137|      1|	                     0xffffffff,
 3138|      1|	                     0,
 3139|      1|	                     "conn",
 3140|       |	                     NULL,
 3141|      1|	                     (struct sockaddr *)&sconn,
 3142|      1|	                     0,
 3143|      1|	                     0);
 3144|      1|}
usrsctp_enable_crc32c_offload:
 3253|      1|{
 3254|      1|	SCTP_BASE_VAR(crc32c_offloaded) = 1;
  ------------------
  |  |  591|      1|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 3255|      1|}
usrsctp_conninput:
 3276|  23.7k|{
 3277|  23.7k|	struct sockaddr_conn src, dst;
 3278|  23.7k|	struct mbuf *m, *mm;
 3279|  23.7k|	struct sctphdr *sh;
 3280|  23.7k|	struct sctp_chunkhdr *ch;
 3281|  23.7k|	int remaining, offset;
 3282|       |
 3283|  23.7k|	SCTP_STAT_INCR(sctps_recvpackets);
  ------------------
  |  | 1112|  23.7k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  23.7k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  23.7k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3284|  23.7k|	SCTP_STAT_INCR_COUNTER64(sctps_inpackets);
  ------------------
  |  | 1128|  23.7k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  23.7k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  23.7k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  23.7k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3285|  23.7k|	memset(&src, 0, sizeof(struct sockaddr_conn));
 3286|  23.7k|	src.sconn_family = AF_CONN;
  ------------------
  |  | 1014|  23.7k|#define AF_CONN 123
  ------------------
 3287|       |#ifdef HAVE_SCONN_LEN
 3288|       |	src.sconn_len = sizeof(struct sockaddr_conn);
 3289|       |#endif
 3290|  23.7k|	src.sconn_addr = addr;
 3291|  23.7k|	memset(&dst, 0, sizeof(struct sockaddr_conn));
 3292|  23.7k|	dst.sconn_family = AF_CONN;
  ------------------
  |  | 1014|  23.7k|#define AF_CONN 123
  ------------------
 3293|       |#ifdef HAVE_SCONN_LEN
 3294|       |	dst.sconn_len = sizeof(struct sockaddr_conn);
 3295|       |#endif
 3296|  23.7k|	dst.sconn_addr = addr;
 3297|  23.7k|	if ((m = sctp_get_mbuf_for_msg((unsigned int)length, 1, M_NOWAIT, 0, MT_DATA)) == NULL) {
  ------------------
  |  |   60|  23.7k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	if ((m = sctp_get_mbuf_for_msg((unsigned int)length, 1, M_NOWAIT, 0, MT_DATA)) == NULL) {
  ------------------
  |  |  287|  23.7k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  |  Branch (3297:6): [True: 0, False: 23.7k]
  ------------------
 3298|      0|		return;
 3299|      0|	}
 3300|       |	/* Set the lengths fields of the mbuf chain.
 3301|       |	 * This is expected by m_copyback().
 3302|       |	 */
 3303|  23.7k|	remaining = (int)length;
 3304|  74.0k|	for (mm = m; mm != NULL; mm = mm->m_next) {
  ------------------
  |  |  217|  50.2k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (3304:15): [True: 50.2k, False: 23.7k]
  ------------------
 3305|  50.2k|		mm->m_len = min((int)M_SIZE(mm), remaining);
  ------------------
  |  |  218|  50.2k|#define	m_len		m_hdr.mh_len
  ------------------
              		mm->m_len = min((int)M_SIZE(mm), remaining);
  ------------------
  |  |   66|   187k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 23.7k, False: 26.5k]
  |  |  |  Branch (66:21): [True: 22.4k, False: 20.8k]
  |  |  |  Branch (66:21): [True: 6.94k, False: 43.3k]
  |  |  |  Branch (66:34): [True: 10.8k, False: 9.55k]
  |  |  |  Branch (66:34): [True: 6.15k, False: 20.3k]
  |  |  ------------------
  ------------------
 3306|  50.2k|		m->m_pkthdr.len += mm->m_len;
  ------------------
  |  |  224|  50.2k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
              		m->m_pkthdr.len += mm->m_len;
  ------------------
  |  |  218|  50.2k|#define	m_len		m_hdr.mh_len
  ------------------
 3307|  50.2k|		remaining -= mm->m_len;
  ------------------
  |  |  218|  50.2k|#define	m_len		m_hdr.mh_len
  ------------------
 3308|  50.2k|	}
 3309|  23.7k|	KASSERT(remaining == 0, ("usrsctp_conninput: %zu bytes left", remaining));
  ------------------
  |  |  112|  23.7k|	do {                         \
  |  |  113|  23.7k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 23.7k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  23.7k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 23.7k]
  |  |  ------------------
  ------------------
 3310|  23.7k|	m_copyback(m, 0, (int)length, (caddr_t)buffer);
 3311|  23.7k|	offset = sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr);
 3312|  23.7k|	if (SCTP_BUF_LEN(m) < offset) {
  ------------------
  |  |  801|  23.7k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  23.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3312:6): [True: 0, False: 23.7k]
  ------------------
 3313|      0|		if ((m = m_pullup(m, offset)) == NULL) {
  ------------------
  |  Branch (3313:7): [True: 0, False: 0]
  ------------------
 3314|      0|			SCTP_STAT_INCR(sctps_hdrops);
  ------------------
  |  | 1112|      0|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|      0|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|      0|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3315|      0|			return;
 3316|      0|		}
 3317|      0|	}
 3318|  23.7k|	sh = mtod(m, struct sctphdr *);
  ------------------
  |  |   96|  23.7k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  23.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3319|  23.7k|	ch = (struct sctp_chunkhdr *)((caddr_t)sh + sizeof(struct sctphdr));
 3320|  23.7k|	offset -= sizeof(struct sctp_chunkhdr);
 3321|  23.7k|	src.sconn_port = sh->src_port;
 3322|  23.7k|	dst.sconn_port = sh->dest_port;
 3323|  23.7k|	sctp_common_input_processing(&m, 0, offset, (int)length,
 3324|  23.7k|	                             (struct sockaddr *)&src,
 3325|  23.7k|	                             (struct sockaddr *)&dst,
 3326|  23.7k|	                             sh, ch,
 3327|  23.7k|	                             SCTP_BASE_VAR(crc32c_offloaded) == 1 ? 0 : 1,
  ------------------
  |  |  591|  23.7k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (3327:31): [True: 23.7k, False: 0]
  ------------------
 3328|  23.7k|	                             ecn_bits,
 3329|  23.7k|	                             SCTP_DEFAULT_VRFID, 0);
  ------------------
  |  |  650|  23.7k|#define SCTP_DEFAULT_VRFID	0
  ------------------
 3330|  23.7k|	if (m) {
  ------------------
  |  Branch (3330:6): [True: 23.5k, False: 177]
  ------------------
 3331|  23.5k|		sctp_m_freem(m);
  ------------------
  |  |   52|  23.5k|#define sctp_m_freem m_freem
  ------------------
 3332|  23.5k|	}
 3333|  23.7k|	return;
 3334|  23.7k|}
usrsctp_get_events:
 3343|   509k|{
 3344|   509k|	int events = 0;
 3345|       |
 3346|   509k|	if (so == NULL) {
  ------------------
  |  Branch (3346:6): [True: 0, False: 509k]
  ------------------
 3347|      0|		errno = EBADF;
 3348|      0|		return -1;
 3349|      0|	}
 3350|       |
 3351|   509k|	SOCK_LOCK(so);
  ------------------
  |  |  527|   509k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|   509k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   509k|	do {                         \
  |  |  |  |  |  |  113|   509k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 509k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   509k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 509k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3352|   509k|	if (soreadable(so)) {
  ------------------
  |  |  443|   509k|    ((int)((so)->so_rcv.sb_cc) >= (so)->so_rcv.sb_lowat || \
  |  |  ------------------
  |  |  |  Branch (443:6): [True: 497k, False: 12.2k]
  |  |  ------------------
  |  |  444|   509k|	((so)->so_rcv.sb_state & SBS_CANTRCVMORE) || \
  |  |  ------------------
  |  |  |  |  360|  12.2k|#define	SBS_CANTRCVMORE		0x0020	/* can't receive more data from peer */
  |  |  ------------------
  |  |  |  Branch (444:2): [True: 1.66k, False: 10.6k]
  |  |  ------------------
  |  |  445|   509k|	!TAILQ_EMPTY(&(so)->so_comp) || (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (445:2): [True: 0, False: 10.6k]
  |  |  |  Branch (445:34): [True: 0, False: 10.6k]
  |  |  ------------------
  ------------------
 3353|   499k|		events |= SCTP_EVENT_READ;
  ------------------
  |  |  372|   499k|#define SCTP_EVENT_READ		0x0001	/* socket is readable */
  ------------------
 3354|   499k|	}
 3355|   509k|	if (sowriteable(so)) {
  ------------------
  |  |  458|   509k|    ((sbspace(&(so)->so_snd) >= (so)->so_snd.sb_lowat && \
  |  |  ------------------
  |  |  |  |  434|   509k|    ((long) min((int)((sb)->sb_hiwat - (sb)->sb_cc), \
  |  |  |  |  ------------------
  |  |  |  |  |  |   66|   509k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (66:19): [True: 0, False: 509k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  435|   509k|	 (int)((sb)->sb_mbmax - (sb)->sb_mbcnt)))
  |  |  ------------------
  |  |  |  Branch (458:7): [True: 509k, False: 0]
  |  |  ------------------
  |  |  459|   509k|      (((so)->so_state&SS_ISCONNECTED))) ||              \
  |  |  ------------------
  |  |  |  |  340|   509k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  |  |  ------------------
  |  |  |  Branch (459:7): [True: 333k, False: 176k]
  |  |  ------------------
  |  |  460|   509k|     ((so)->so_snd.sb_state & SBS_CANTSENDMORE) || \
  |  |  ------------------
  |  |  |  |  359|   176k|#define	SBS_CANTSENDMORE	0x0010	/* can't send more data to peer */
  |  |  ------------------
  |  |  |  Branch (460:6): [True: 110k, False: 65.6k]
  |  |  ------------------
  |  |  461|   509k|     (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (461:6): [True: 2.32k, False: 63.3k]
  |  |  ------------------
  ------------------
 3356|   446k|		events |= SCTP_EVENT_WRITE;
  ------------------
  |  |  373|   446k|#define SCTP_EVENT_WRITE	0x0002	/* socket is writeable */
  ------------------
 3357|   446k|	}
 3358|   509k|	if (so->so_error) {
  ------------------
  |  Branch (3358:6): [True: 116k, False: 392k]
  ------------------
 3359|   116k|		events |= SCTP_EVENT_ERROR;
  ------------------
  |  |  374|   116k|#define SCTP_EVENT_ERROR	0x0004	/* socket has an error state */
  ------------------
 3360|   116k|	}
 3361|   509k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|   509k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|   509k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   509k|	do {                         \
  |  |  |  |  |  |  113|   509k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 509k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   509k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 509k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3362|       |
 3363|   509k|	return events;
 3364|   509k|}
usrsctp_set_upcall:
 3368|  10.1k|{
 3369|  10.1k|	if (so == NULL) {
  ------------------
  |  Branch (3369:6): [True: 0, False: 10.1k]
  ------------------
 3370|      0|		errno = EBADF;
 3371|      0|		return (-1);
 3372|      0|	}
 3373|       |
 3374|  10.1k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  10.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  10.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3375|  10.1k|	so->so_upcall = upcall;
 3376|  10.1k|	so->so_upcallarg = arg;
 3377|  10.1k|	so->so_snd.sb_flags |= SB_UPCALL;
  ------------------
  |  |  206|  10.1k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  ------------------
 3378|  10.1k|	so->so_rcv.sb_flags |= SB_UPCALL;
  ------------------
  |  |  206|  10.1k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  ------------------
 3379|  10.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  10.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  10.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  10.1k|	do {                         \
  |  |  |  |  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|  10.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3380|       |
 3381|  10.1k|	return (0);
 3382|  10.1k|}
user_socket.c:init_sync:
   84|      1|static void init_sync(void) {
   85|       |#if defined(_WIN32)
   86|       |#if defined(INET) || defined(INET6)
   87|       |	WSADATA wsaData;
   88|       |
   89|       |	if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {
   90|       |		SCTP_PRINTF("WSAStartup failed\n");
   91|       |		exit (-1);
   92|       |	}
   93|       |#endif
   94|       |	InitializeConditionVariable(&accept_cond);
   95|       |	InitializeCriticalSection(&accept_mtx);
   96|       |#else
   97|      1|	pthread_mutexattr_t mutex_attr;
   98|       |
   99|      1|	pthread_mutexattr_init(&mutex_attr);
  100|      1|#ifdef INVARIANTS
  101|      1|	pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_ERRORCHECK);
  102|      1|#endif
  103|      1|	pthread_mutex_init(&accept_mtx, &mutex_attr);
  104|      1|	pthread_mutexattr_destroy(&mutex_attr);
  105|       |	pthread_cond_init(&accept_cond, NULL);
  106|      1|#endif
  107|      1|}
user_socket.c:sodealloc:
  231|  10.1k|{
  232|       |
  233|  10.1k|	KASSERT(so->so_count == 0, ("sodealloc(): so_count %d", so->so_count));
  ------------------
  |  |  112|  10.1k|	do {                         \
  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
  234|  10.1k|	KASSERT(so->so_pcb == NULL, ("sodealloc(): so_pcb != NULL"));
  ------------------
  |  |  112|  10.1k|	do {                         \
  |  |  113|  10.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 10.1k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  10.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
  235|       |
  236|  10.1k|	SOCKBUF_COND_DESTROY(&so->so_snd);
  ------------------
  |  |  300|  10.1k|#define SOCKBUF_COND_DESTROY(_sb) pthread_cond_destroy((&(_sb)->sb_cond))
  ------------------
  237|  10.1k|	SOCKBUF_COND_DESTROY(&so->so_rcv);
  ------------------
  |  |  300|  10.1k|#define SOCKBUF_COND_DESTROY(_sb) pthread_cond_destroy((&(_sb)->sb_cond))
  ------------------
  238|       |
  239|  10.1k|	SOCK_COND_DESTROY(so);
  ------------------
  |  |  302|  10.1k|#define SOCK_COND_DESTROY(_so) pthread_cond_destroy((&(_so)->timeo_cond))
  ------------------
  240|       |
  241|  10.1k|	SOCKBUF_LOCK_DESTROY(&so->so_snd);
  ------------------
  |  |  298|  10.1k|#define SOCKBUF_LOCK_DESTROY(_sb) pthread_mutex_destroy(SOCKBUF_MTX(_sb))
  |  |  ------------------
  |  |  |  |  274|  10.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  ------------------
  242|  10.1k|	SOCKBUF_LOCK_DESTROY(&so->so_rcv);
  ------------------
  |  |  298|  10.1k|#define SOCKBUF_LOCK_DESTROY(_sb) pthread_mutex_destroy(SOCKBUF_MTX(_sb))
  |  |  ------------------
  |  |  |  |  274|  10.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  ------------------
  243|       |
  244|  10.1k|	free(so);
  245|  10.1k|}
user_socket.c:soalloc:
  196|  10.1k|{
  197|  10.1k|	struct socket *so;
  198|       |
  199|       |	/*
  200|       |	 * soalloc() sets of socket layer state for a socket,
  201|       |	 * called only by socreate() and sonewconn().
  202|       |	 *
  203|       |	 * sodealloc() tears down socket layer state for a socket,
  204|       |	 * called only by sofree() and sonewconn().
  205|       |	 * __Userspace__ TODO : Make sure so is properly deallocated
  206|       |	 * when tearing down the connection.
  207|       |	 */
  208|       |
  209|  10.1k|	so = (struct socket *)malloc(sizeof(struct socket));
  210|       |
  211|  10.1k|	if (so == NULL) {
  ------------------
  |  Branch (211:6): [True: 0, False: 10.1k]
  ------------------
  212|      0|		return (NULL);
  213|      0|	}
  214|  10.1k|	memset(so, 0, sizeof(struct socket));
  215|       |
  216|       |	/* __Userspace__ Initializing the socket locks here */
  217|  10.1k|	SOCKBUF_LOCK_INIT(&so->so_snd, "so_snd");
  ------------------
  |  |  286|  10.1k|#define SOCKBUF_LOCK_INIT(_sb, _name) do {                                 \
  |  |  287|  10.1k|	pthread_mutexattr_t mutex_attr;                                    \
  |  |  288|  10.1k|	                                                                   \
  |  |  289|  10.1k|	pthread_mutexattr_init(&mutex_attr);                               \
  |  |  290|  10.1k|	pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_ERRORCHECK);  \
  |  |  291|  10.1k|	pthread_mutex_init(SOCKBUF_MTX(_sb), &mutex_attr);                 \
  |  |  ------------------
  |  |  |  |  274|  10.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  |  |  292|  10.1k|	pthread_mutexattr_destroy(&mutex_attr);                            \
  |  |  293|  10.1k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
  218|  10.1k|	SOCKBUF_LOCK_INIT(&so->so_rcv, "so_rcv");
  ------------------
  |  |  286|  10.1k|#define SOCKBUF_LOCK_INIT(_sb, _name) do {                                 \
  |  |  287|  10.1k|	pthread_mutexattr_t mutex_attr;                                    \
  |  |  288|  10.1k|	                                                                   \
  |  |  289|  10.1k|	pthread_mutexattr_init(&mutex_attr);                               \
  |  |  290|  10.1k|	pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_ERRORCHECK);  \
  |  |  291|  10.1k|	pthread_mutex_init(SOCKBUF_MTX(_sb), &mutex_attr);                 \
  |  |  ------------------
  |  |  |  |  274|  10.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  |  |  292|  10.1k|	pthread_mutexattr_destroy(&mutex_attr);                            \
  |  |  293|  10.1k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 10.1k]
  |  |  ------------------
  ------------------
  219|  10.1k|	SOCKBUF_COND_INIT(&so->so_snd);
  ------------------
  |  |  299|  10.1k|#define SOCKBUF_COND_INIT(_sb) pthread_cond_init((&(_sb)->sb_cond), NULL)
  ------------------
  220|  10.1k|	SOCKBUF_COND_INIT(&so->so_rcv);
  ------------------
  |  |  299|  10.1k|#define SOCKBUF_COND_INIT(_sb) pthread_cond_init((&(_sb)->sb_cond), NULL)
  ------------------
  221|  10.1k|	SOCK_COND_INIT(so); /* timeo_cond */
  ------------------
  |  |  301|  10.1k|#define SOCK_COND_INIT(_so) pthread_cond_init((&(_so)->timeo_cond), NULL)
  ------------------
  222|       |
  223|       |	/* __Userspace__ Any ref counting required here? Will we have any use for aiojobq?
  224|       |	   What about gencnt and numopensockets?*/
  225|       |	TAILQ_INIT(&so->so_aiojobq);
  ------------------
  |  Branch (225:2): [Folded, False: 10.1k]
  ------------------
  226|  10.1k|	return (so);
  227|  10.1k|}
user_socket.c:copy_from_user:
  558|  25.7k|copy_from_user(void *dst, void *src, size_t len) {
  559|  25.7k|	memcpy(dst, src, len);
  560|  25.7k|	return 0;
  561|  25.7k|}
user_socket.c:copy_to_user:
  552|   499k|copy_to_user(void *dst, void *src, size_t len) {
  553|   499k|	memcpy(dst, src, len);
  554|   499k|	return 0;
  555|   499k|}

